autemaliquam
Version:
A simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps
564 lines • 471 kB
JavaScript
(window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([[4],{
/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzPzNjOTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function 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\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\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\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9jOTczIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/construct.js":
/*!**********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/construct.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzP2IxN2MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsaUZBQWtCOztBQUUvQywrQkFBK0IsbUJBQU8sQ0FBQyxxR0FBNEI7O0FBRW5FO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NvbnN0cnVjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuL3NldFByb3RvdHlwZU9mXCIpO1xuXG52YXIgaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gcmVxdWlyZShcIi4vaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0XCIpO1xuXG5mdW5jdGlvbiBfY29uc3RydWN0KFBhcmVudCwgYXJncywgQ2xhc3MpIHtcbiAgaWYgKGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gUmVmbGVjdC5jb25zdHJ1Y3Q7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/construct.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nmodule.exports = _defineProperty;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/OTUyMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/defineProperty.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2YuanM/MzZjNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO1xuICB9O1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9nZXRQcm90b3R5cGVPZjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/inheritsLoose.js":
/*!**************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/inheritsLoose.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHNMb29zZS5qcz81NWI1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0c0xvb3NlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7XG4gIHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzO1xuICBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0c0xvb3NlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/inheritsLoose.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0LmpzPzRlYTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js":
/*!***********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/interopRequireWildcard.js ***!
\***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var _typeof = __webpack_require__(/*! ../helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZC5qcz9kYmNlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQU8sQ0FBQywwRUFBbUI7O0FBRXpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7XG4gIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTtcblxuICBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7XG4gICAgcmV0dXJuIGNhY2hlO1xuICB9O1xuXG4gIHJldHVybiBjYWNoZTtcbn1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gIGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFwiZGVmYXVsdFwiOiBvYmpcbiAgICB9O1xuICB9XG5cbiAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7XG5cbiAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICB9XG5cbiAgdmFyIG5ld09iaiA9IHt9O1xuICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcblxuICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqO1xuXG4gIGlmIChjYWNoZSkge1xuICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gIH1cblxuICByZXR1cm4gbmV3T2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVGdW5jdGlvbi5qcz9jNWY3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeFunction.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js":
/*!*************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzZmOGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2V0UHJvdG90eXBlT2YuanM/NGE0YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gICAgby5fX3Byb3RvX18gPSBwO1xuICAgIHJldHVybiBvO1xuICB9O1xuXG4gIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzPzcwMzciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvd3JhcE5hdGl2ZVN1cGVyLmpzP2ExMjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsaUZBQWtCOztBQUUvQyxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBa0I7O0FBRS9DLHVCQUF1QixtQkFBTyxDQUFDLHFGQUFvQjs7QUFFbkQsZ0JBQWdCLG1CQUFPLENBQUMsdUVBQWE7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZlwiKTtcblxudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2ZcIik7XG5cbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvblwiKTtcblxudmFyIGNvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2NvbnN0cnVjdFwiKTtcblxuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykge1xuICB2YXIgX2NhY2hlID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIWlzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7XG5cbiAgICBpZiAodHlwZW9mIENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKF9jYWNoZS5oYXMoQ2xhc3MpKSByZXR1cm4gX2NhY2hlLmdldChDbGFzcyk7XG5cbiAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2V0UHJvdG90eXBlT2YoV3JhcHBlciwgQ2xhc3MpO1xuICB9O1xuXG4gIHJldHVybiBfd3JhcE5hdGl2ZVN1cGVyKENsYXNzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfd3JhcE5hdGl2ZVN1cGVyOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
!*** ./node_modules/@babel/runtime/regenerator/index.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzP2EzNGEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCLG1CQUFPLENBQUMsMEVBQXFCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZVwiKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n");
/***/ }),
/***/ "./node_modules/regenerator-runtime/runtime.js":
/*!*****************************************************!*\
!*** ./node_modules/regenerator-runtime/runtime.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\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\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\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\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(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 &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(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 (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : undefined\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcz85NmNmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkLEtBQUs7QUFDTCxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUMsa0JBQWtCO0FBQ25EO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpQkFBaUI7QUFDekM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSxXQUFXO0FBQ1g7QUFDQTtBQUNBOztBQUVBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7O0FBRUEsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDhDQUE4QyxRQUFRO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0EsOENBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsOENBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLEtBQTBCLG9CQUFvQixTQUFFO0FBQ2xEOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciBydW50aW1lID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBPcCA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd24gPSBPcC5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuXG4gIHZhciAkU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sIDoge307XG4gIHZhciBpdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCI7XG4gIHZhciBhc3luY0l0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5hc3luY0l0ZXJhdG9yIHx8IFwiQEBhc3luY0l0ZXJhdG9yXCI7XG4gIHZhciB0b1N0cmluZ1RhZ1N5bWJvbCA9ICRTeW1ib2wudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG5cbiAgZnVuY3Rpb24gZGVmaW5lKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIG9ialtrZXldO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gSUUgOCBoYXMgYSBicm9rZW4gT2JqZWN0LmRlZmluZVByb3BlcnR5IHRoYXQgb25seSB3b3JrcyBvbiBET00gb2JqZWN0cy5cbiAgICBkZWZpbmUoe30sIFwiXCIpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbihvYmosIGtleSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSB7XG4gICAgLy8gSWYgb3V0ZXJGbiBwcm92aWRlZCBhbmQgb3V0ZXJGbi5wcm90b3R5cGUgaXMgYSBHZW5lcmF0b3IsIHRoZW4gb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IuXG4gICAgdmFyIHByb3RvR2VuZXJhdG9yID0gb3V0ZXJGbiAmJiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IG91dGVyRm4gOiBHZW5lcmF0b3I7XG4gICAgdmFyIGdlbmVyYXRvciA9IE9iamVjdC5jcmVhdGUocHJvdG9HZW5lcmF0b3IucHJvdG90eXBlKTtcbiAgICB2YXIgY29udGV4dCA9IG5ldyBDb250ZXh0KHRyeUxvY3NMaXN0IHx8IFtdKTtcblxuICAgIC8vIFRoZSAuX2ludm9rZSBtZXRob2QgdW5pZmllcyB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSAubmV4dCxcbiAgICAvLyAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMuXG4gICAgZ2VuZXJhdG9yLl9pbnZva2UgPSBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfVxuICBleHBvcnRzLndyYXAgPSB3cmFwO1xuXG4gIC8vIFRyeS9jYXRjaCBoZWxwZXIgdG8gbWluaW1pemUgZGVvcHRpbWl6YXRpb25zLiBSZXR1cm5zIGEgY29tcGxldGlvblxuICAvLyByZWNvcmQgbGlrZSBjb250ZXh0LnRyeUVudHJpZXNbaV0uY29tcGxldGlvbi4gVGhpcyBpbnRlcmZhY2UgY291bGRcbiAgLy8gaGF2ZSBiZWVuIChhbmQgd2FzIHByZXZpb3VzbHkpIGRlc2lnbmVkIHRvIHRha2UgYSBjbG9zdXJlIHRvIGJlXG4gIC8vIGludm9rZWQgd2l0aG91dCBhcmd1bWVudHMsIGJ1dCBpbiBhbGwgdGhlIGNhc2VzIHdlIGNhcmUgYWJvdXQgd2VcbiAgLy8gYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1ldGhvZCB3ZSB3YW50IHRvIGNhbGwsIHNvIHRoZXJlJ3Mgbm8gbmVlZFxuICAvLyB0byBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gb2JqZWN0LiBXZSBjYW4gZXZlbiBnZXQgYXdheSB3aXRoIGFzc3VtaW5nXG4gIC8vIHRoZSBtZXRob2QgdGFrZXMgZXhhY3RseSBvbmUgYXJndW1lbnQsIHNpbmNlIHRoYXQgaGFwcGVucyB0byBiZSB0cnVlXG4gIC8vIGluIGV2ZXJ5IGNhc2UsIHNvIHdlIGRvbid0IGhhdmUgdG8gdG91Y2ggdGhlIGFyZ3VtZW50cyBvYmplY3QuIFRoZVxuICAvLyBvbmx5IGFkZGl0aW9uYWwgYWxsb2NhdGlvbiByZXF1aXJlZCBpcyB0aGUgY29tcGxldGlvbiByZWNvcmQsIHdoaWNoXG4gIC8vIGhhcyBhIHN0YWJsZSBzaGFwZSBhbmQgc28gaG9wZWZ1bGx5IHNob3VsZCBiZSBjaGVhcCB0byBhbGxvY2F0ZS5cbiAgZnVuY3Rpb24gdHJ5Q2F0Y2goZm4sIG9iaiwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwibm9ybWFsXCIsIGFyZzogZm4uY2FsbChvYmosIGFyZykgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwidGhyb3dcIiwgYXJnOiBlcnIgfTtcbiAgICB9XG4gIH1cblxuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRTdGFydCA9IFwic3VzcGVuZGVkU3RhcnRcIjtcbiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkWWllbGQgPSBcInN1c3BlbmRlZFlpZWxkXCI7XG4gIHZhciBHZW5TdGF0ZUV4ZWN1dGluZyA9IFwiZXhlY3V0aW5nXCI7XG4gIHZhciBHZW5TdGF0ZUNvbXBsZXRlZCA9IFwiY29tcGxldGVkXCI7XG5cbiAgLy8gUmV0dXJuaW5nIHRoaXMgb2JqZWN0IGZyb20gdGhlIGlubmVyRm4gaGFzIHRoZSBzYW1lIGVmZmVjdCBhc1xuICAvLyBicmVha2luZyBvdXQgb2YgdGhlIGRpc3BhdGNoIHN3aXRjaCBzdGF0ZW1lbnQuXG4gIHZhciBDb250aW51ZVNlbnRpbmVsID0ge307XG5cbiAgLy8gRHVtbXkgY29uc3RydWN0b3IgZnVuY3Rpb25zIHRoYXQgd2UgdXNlIGFzIHRoZSAuY29uc3RydWN0b3IgYW5kXG4gIC8vIC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgcHJvcGVydGllcyBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIEdlbmVyYXRvclxuICAvLyBvYmplY3RzLiBGb3IgZnVsbCBzcGVjIGNvbXBsaWFuY2UsIHlvdSBtYXkgd2lzaCB0byBjb25maWd1cmUgeW91clxuICAvLyBtaW5pZmllciBub3QgdG8gbWFuZ2xlIHRoZSBuYW1lcyBvZiB0aGVzZSB0d28gZnVuY3Rpb25zLlxuICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKCkge31cblxuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yICVJdGVyYXRvclByb3RvdHlwZSUgZm9yIGVudmlyb25tZW50cyB0aGF0XG4gIC8vIGRvbid0IG5hdGl2ZWx5IHN1cHBvcnQgaXQuXG4gIHZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuICBJdGVyYXRvclByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgdmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuICB2YXIgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90byAmJiBnZXRQcm90byhnZXRQcm90byh2YWx1ZXMoW10pKSk7XG4gIGlmIChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAmJlxuICAgICAgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgIT09IE9wICYmXG4gICAgICBoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSwgaXRlcmF0b3JTeW1ib2wpKSB7XG4gICAgLy8gVGhpcyBlbnZpcm9ubWVudCBoYXMgYSBuYXRpdmUgJUl0ZXJhdG9yUHJvdG90eXBlJTsgdXNlIGl0IGluc3RlYWRcbiAgICAvLyBvZiB0aGUgcG9seWZpbGwuXG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBOYXRpdmVJdGVyYXRvclByb3RvdHlwZTtcbiAgfVxuXG4gIHZhciBHcCA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9XG4gICAgR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5wcm90b3R5cGUgPSBHcC5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlO1xuICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9IGRlZmluZShcbiAgICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICB0b1N0cmluZ1RhZ1N5bWJvbCxcbiAgICBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgKTtcblxuICAvLyBIZWxwZXIgZm9yIGRlZmluaW5nIHRoZSAubmV4dCwgLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzIG9mIHRoZVxuICAvLyBJdGVyYXRvciBpbnRlcmZhY2UgaW4gdGVybXMgb2YgYSBzaW5nbGUgLl9pbnZva2UgbWV0aG9kLlxuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBkZWZpbmUocHJvdG90eXBlLCBtZXRob2QsIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBkZWZpbmUoZ2VuRnVuLCB0b1N0cmluZ1RhZ1N5bWJvbCwgXCJHZW5lcmF0b3JGdW5jdGlvblwiKTtcbiAgICB9XG4gICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApO1xuICAgIHJldHVybiBnZW5GdW47XG4gIH07XG5cbiAgLy8gV2l0aGluIHRoZSBib2R5IG9mIGFueSBhc3luYyBmdW5jdGlvbiwgYGF3YWl0IHhgIGlzIHRyYW5zZm9ybWVkIHRvXG4gIC8vIGB5aWVsZCByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoeClgLCBzbyB0aGF0IHRoZSBydW50aW1lIGNhbiB0ZXN0XG4gIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpYCB0byBkZXRlcm1pbmUgaWYgdGhlIHlpZWxkZWQgdmFsdWUgaXNcbiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC5cbiAgZXhwb3J0cy5hd3JhcCA9IGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiB7IF9fYXdhaXQ6IGFyZyB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IoZ2VuZXJhdG9yLCBQcm9taXNlSW1wbCkge1xuICAgIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goZ2VuZXJhdG9yW21ldGhvZF0sIGdlbmVyYXRvciwgYXJnKTtcbiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWNvcmQuYXJnO1xuICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgIGludm9rZShcInRocm93XCIsIGVyciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkge1xuICAgICAgICAgIC8vIFdoZW4gYSB5aWVsZGVkIFByb21pc2UgaXMgcmVzb2x2ZWQsIGl0cyBmaW5hbCB2YWx1ZSBiZWNvbWVzXG4gICAgICAgICAgLy8gdGhlIC52YWx1ZSBvZiB0aGUgUHJvbWlzZTx7dmFsdWUsZG9uZX0+IHJlc3VsdCBmb3IgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uXG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdW53cmFwcGVkO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAvLyBJZiBhIHJlamVjdGVkIFByb21pc2Ugd2FzIHlpZWxkZWQsIHRocm93IHRoZSByZWplY3Rpb24gYmFja1xuICAgICAgICAgIC8vIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgaGFuZGxlZCB0aGVyZS5cbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgZXJyb3IsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcmV2aW91c1Byb21pc2U7XG5cbiAgICBmdW5jdGlvbiBlbnF1ZXVlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJldmlvdXNQcm9taXNlID1cbiAgICAgICAgLy8gSWYgZW5xdWV1ZSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gd2FpdCB1bnRpbFxuICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSxcbiAgICAgICAgLy8gc28gdGhhdCByZXN1bHRzIGFyZSBhbHdheXMgZGVsaXZlcmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBJZlxuICAgICAgICAvLyBlbnF1ZXVlIGhhcyBub3QgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIGl0IGlzIGltcG9ydGFudCB0b1xuICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG9cbiAgICAgICAgLy8gYW55IG5lY2Vzc2FyeSBzZXR1cCBpbiBhIHByZWRpY3RhYmxlIHdheS4gVGhpcyBwcmVkaWN0YWJpbGl0eVxuICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0c1xuICAgICAgICAvLyBleGVjdXRvciBjYWxsYmFjaywgYW5kIHdoeSBhc3luYyBmdW5jdGlvbnMgc3luY2hyb25vdXNseVxuICAgICAgICAvLyBleGVjdXRlIGNvZGUgYmVmb3JlIHRoZSBmaXJzdCBhd2FpdC4gU2luY2Ugd2UgaW1wbGVtZW50IHNpbXBsZVxuICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseVxuICAgICAgICAvLyBpbXBvcnRhbnQgdG8gZ2V0IHRoaXMgcmlnaHQsIGV2ZW4gdGhvdWdoIGl0IHJlcXVpcmVzIGNhcmUuXG4gICAgICAgIHByZXZpb3VzUHJvbWlzZSA/IHByZXZpb3VzUHJvbWlzZS50aGVuKFxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLFxuICAgICAgICAgIC8vIEF2b2lkIHByb3BhZ2F0aW5nIGZhaWx1cmVzIHRvIFByb21pc2VzIHJldHVybmVkIGJ5IGxhdGVyXG4gICAgICAgICAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnXG4gICAgICAgICkgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgdW5pZmllZCBoZWxwZXIgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiAoc2VlIGRlZmluZUl0ZXJhdG9yTWV0aG9kcykuXG4gICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTtcbiAgfVxuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7XG4gIEFzeW5jSXRlcmF0b3IucHJvdG90eXBlW2FzeW5jSXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBleHBvcnRzLkFzeW5jSXRlcmF0b3IgPSBBc3luY0l0ZXJhdG9yO1xuXG4gIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2ZcbiAgLy8gQXN5bmNJdGVyYXRvciBvYmplY3RzOyB0aGV5IGp1c3QgcmV0dXJuIGEgUHJvbWlzZSBmb3IgdGhlIHZhbHVlIG9mXG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLlxuICBleHBvcnRzLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QsIFByb21pc2VJbXBsKSB7XG4gICAgaWYgKFByb21pc2VJbXBsID09PSB2b2lkIDApIFByb21pc2VJbXBsID0gUHJvbWlzZTtcblxuICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoXG4gICAgICB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSxcbiAgICAgIFByb21pc2VJbXBsXG4gICAgKTtcblxuICAgIHJldHVybiBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbilcbiAgICAgID8gaXRlciAvLyBJZiBvdXRlckZuIGlzIGEgZ2VuZXJhdG9yLCByZXR1cm4gdGhlIGZ1bGwgaXRlcmF0b3IuXG4gICAgICA6IGl0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCkge1xuICAgIHZhciBzdGF0ZSA9IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQ7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlRXhlY3V0aW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgdGhyb3cgYXJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzpcbiAgICAgICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWdlbmVyYXRvcnJlc3VtZVxuICAgICAgICByZXR1cm4gZG9uZVJlc3VsdCgpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgIGNvbnRleHQuYXJnID0gYXJnO1xuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgICAgICB2YXIgZGVsZWdhdGVSZXN1bHQgPSBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCA9PT0gQ29udGludWVTZW50aW5lbCkgY29udGludWU7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcIm5leHRcIikge1xuICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwnc1xuICAgICAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgY29udGV4dC5zZW50ID0gY29udGV4dC5fc2VudCA9IGNvbnRleHQuYXJnO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydCkge1xuICAgICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgICBjb250ZXh0LmFicnVwdChcInJldHVyblwiLCBjb250ZXh0LmFyZyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZSA9IEdlblN0YXRlRXhlY3V0aW5nO1xuXG4gICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiKSB7XG4gICAgICAgICAgLy8gSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBmcm9tIGlubmVyRm4sIHdlIGxlYXZlIHN0YXRlID09PVxuICAgICAgICAgIC8vIEdlblN0YXRlRXhlY3V0aW5nIGFuZCBsb29wIGJhY2sgZm9yIGFub3RoZXIgaW52b2NhdGlvbi5cbiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZVxuICAgICAgICAgICAgPyBHZW5TdGF0ZUNvbXBsZXRlZFxuICAgICAgICAgICAgOiBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkO1xuXG4gICAgICAgICAgaWYgKHJlY29yZC5hcmcgPT09IENvbnRpbnVlU2VudGluZWwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZyxcbiAgICAgICAgICAgIGRvbmU6IGNvbnRleHQuZG9uZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXhjZXB0aW9uIGJ5IGxvb3BpbmcgYmFjayBhcm91bmQgdG8gdGhlXG4gICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gQ2FsbCBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF0oY29udGV4dC5hcmcpIGFuZCBoYW5kbGUgdGhlXG4gIC8vIHJlc3VsdCwgZWl0aGVyIGJ5IHJldHVybmluZyBhIHsgdmFsdWUsIGRvbmUgfSByZXN1bHQgZnJvbSB0aGVcbiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsXG4gIC8vIHNldHRpbmcgY29udGV4dC5kZWxlZ2F0ZSB0byBudWxsLCBhbmQgcmV0dXJuaW5nIHRoZSBDb250aW51ZVNlbnRpbmVsLlxuICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KSB7XG4gICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTtcbiAgICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEEgLnRocm93IG9yIC5yZXR1cm4gd2hlbiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIG5vIC50aHJvd1xuICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC5cbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAvLyBOb3RlOiBbXCJyZXR1cm5cIl0gbXVzdCBiZSB1c2VkIGZvciBFUzMgcGFyc2luZyBjb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3JbXCJyZXR1cm5cIl0pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhXG4gICAgICAgICAgLy8gY2hhbmNlIHRvIGNsZWFuIHVwLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJyZXR1cm5cIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICAvLyBJZiBtYXliZUludm9rZURlbGVnYXRlKGNvbnRleHQpIGNoYW5nZWQgY29udGV4dC5tZXRob2QgZnJvbVxuICAgICAgICAgICAgLy8gXCJyZXR1cm5cIiB0byBcInRocm93XCIsIGxldCB0aGF0IG92ZXJyaWRlIHRoZSBUeXBlRXJyb3IgYmVsb3cuXG4gICAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTtcblxuICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIGluZm8gPSByZWNvcmQuYXJnO1xuXG4gICAgaWYgKCEgaW5mbykge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnlcbiAgICAgIC8vIHZhcmlhYmxlIHNwZWNpZmllZCBieSBkZWxlZ2F0ZS5yZXN1bHROYW1lIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdID0gaW5mby52YWx1ZTtcblxuICAgICAgLy8gUmVzdW1lIGV4ZWN1dGlvbiBhdCB0aGUgZGVzaXJlZCBsb2NhdGlvbiAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dC5uZXh0ID0gZGVsZWdhdGUubmV4dExvYztcblxuICAgICAgLy8gSWYgY29udGV4dC5tZXRob2Qgd2FzIFwidGhyb3dcIiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlXG4gICAgICAvLyBleGNlcHRpb24sIGxldCB0aGUgb3V0ZXIgZ2VuZXJhdG9yIHByb2NlZWQgbm9ybWFsbHkuIElmXG4gICAgICAvLyBjb250ZXh0Lm1ldGhvZCB3YXMgXCJuZXh0XCIsIGZvcmdldCBjb250ZXh0LmFyZyBzaW5jZSBpdCBoYXMgYmVlblxuICAgICAgLy8gXCJjb25zdW1lZFwiIGJ5IHRoZSBkZWxlZ2F0ZSBpdGVyYXRvci4gSWYgY29udGV4dC5tZXRob2Qgd2FzXG4gICAgICAvLyBcInJldHVyblwiLCBhbGxvdyB0aGUgb3JpZ2luYWwgLnJldHVybiBjYWxsIHRvIGNvbnRpbnVlIGluIHRoZVxuICAgICAgLy8gb3V0ZXIgZ2VuZXJhdG9yLlxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSBcInJldHVyblwiKSB7XG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLXlpZWxkIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGRlbGVnYXRlIG1ldGhvZC5cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cblxuICAgIC8vIFRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBpcyBmaW5pc2hlZCwgc28gZm9yZ2V0IGl0IGFuZCBjb250aW51ZSB3aXRoXG4gICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci5cbiAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgfVxuXG4gIC8vIERlZmluZSBHZW5lcmF0b3IucHJvdG90eXBlLntuZXh0LHRocm93LHJldHVybn0gaW4gdGVybXMgb2YgdGhlXG4gIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEdwKTtcblxuICBkZWZpbmUoR3AsIHRvU3RyaW5nVGFnU3ltYm9sLCBcIkdlbmVyYXRvclwiKTtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/blockchain.js":
/*!*****************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/blockchain.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval(" // blockchain events\n\nexports.__esModule = true;\nexports.NOTIFICATION = exports.BLOCK = exports.CONNECT = exports.ERROR = void 0;\nvar ERROR = 'blockchain-error';\nexports.ERROR = ERROR;\nvar CONNECT = 'blockchain-connect';\nexports.CONNECT = CONNECT;\nvar BLOCK = 'blockchain-block';\nexports.BLOCK = BLOCK;\nvar NOTIFICATION = 'blockchain-notification';\nexports.NOTIFICATION = NOTIFICATION;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvYmxvY2tjaGFpbi5qcz9lMWE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvYmxvY2tjaGFpbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JzsgLy8gYmxvY2tjaGFpbiBldmVudHNcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuTk9USUZJQ0FUSU9OID0gZXhwb3J0cy5CTE9DSyA9IGV4cG9ydHMuQ09OTkVDVCA9IGV4cG9ydHMuRVJST1IgPSB2b2lkIDA7XG52YXIgRVJST1IgPSAnYmxvY2tjaGFpbi1lcnJvcic7XG5leHBvcnRzLkVSUk9SID0gRVJST1I7XG52YXIgQ09OTkVDVCA9ICdibG9ja2NoYWluLWNvbm5lY3QnO1xuZXhwb3J0cy5DT05ORUNUID0gQ09OTkVDVDtcbnZhciBCTE9DSyA9ICdibG9ja2NoYWluLWJsb2NrJztcbmV4cG9ydHMuQkxPQ0sgPSBCTE9DSztcbnZhciBOT1RJRklDQVRJT04gPSAnYmxvY2tjaGFpbi1ub3RpZmljYXRpb24nO1xuZXhwb3J0cy5OT1RJRklDQVRJT04gPSBOT1RJRklDQVRJT047Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/blockchain.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/device.js":
/*!*************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/device.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval(" // device list events\n\nexports.__esModule = true;\nexports.UNREADABLE = exports.WAIT_FOR_SELECTION = exports.WORD = exports.PASSPHRASE_ON_DEVICE = exports.PASSPHRASE = exports.PIN = exports.BUTTON = exports.LOADING = exports.USED_ELSEWHERE = exports.RELEASED = exports.ACQUIRED = exports.RELEASE = exports.ACQUIRE = exports.CHANGED = exports.DISCONNECT = exports.CONNECT_UNACQUIRED = exports.CONNECT = void 0;\nvar CONNECT = 'device-connect';\nexports.CONNECT = CONNECT;\nvar CONNECT_UNACQUIRED = 'device-connect_unacquired';\nexports.CONNECT_UNACQUIRED = CONNECT_UNACQUIRED;\nvar DISCONNECT = 'device-disconnect';\nexports.DISCONNECT = DISCONNECT;\nvar CHANGED = 'device-changed';\nexports.CHANGED = CHANGED;\nvar ACQUIRE = 'device-acquire';\nexports.ACQUIRE = ACQUIRE;\nvar RELEASE = 'device-release';\nexports.RELEASE = RELEASE;\nvar ACQUIRED = 'device-acquired';\nexports.ACQUIRED = ACQUIRED;\nvar RELEASED = 'device-released';\nexports.RELEASED = RELEASED;\nvar USED_ELSEWHERE = 'device-used_elsewhere';\nexports.USED_ELSEWHERE = USED_ELSEWHERE;\nvar LOADING = 'device-loading'; // trezor-link events in protobuf format\n\nexports.LOADING = LOADING;\nvar BUTTON = 'button';\nexports.BUTTON = BUTTON;\nvar PIN = 'pin';\nexports.PIN = PIN;\nvar PASSPHRASE = 'passphrase';\nexports.PASSPHRASE = PASSPHRASE;\nvar PASSPHRASE_ON_DEVICE = 'passphrase_on_device';\nexports.PASSPHRASE_ON_DEVICE = PASSPHRASE_ON_DEVICE;\nvar WORD = 'word'; // custom\n\nexports.WORD = WORD;\nvar WAIT_FOR_SELECTION = 'device-wait_for_selection'; // this string has different prefix than other constants and it's used as device path\n\nexports.WAIT_FOR_SELECTION = WAIT_FOR_SELECTION;\nvar UNREADABLE = 'unreadable-device';\nexports.UNREADABLE = UNREADABLE;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvZGV2aWNlLmpzP2I4NGUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCOztBQUVsQjtBQUNBLHFEQUFxRDs7QUFFckQ7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvZGV2aWNlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnOyAvLyBkZXZpY2UgbGlzdCBldmVudHNcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuVU5SRUFEQUJMRSA9IGV4cG9ydHMuV0FJVF9GT1JfU0VMRUNUSU9OID0gZXhwb3J0cy5XT1JEID0gZXhwb3J0cy5QQVNTUEhSQVNFX09OX0RFVklDRSA9IGV4cG9ydHMuUEFTU1BIUkFTRSA9IGV4cG9ydHMuUElOID0gZXhwb3J0cy5CVVRUT04gPSBleHBvcnRzLkxPQURJTkcgPSBleHBvcnRzLlVTRURfRUxTRVdIRVJFID0gZXhwb3J0cy5SRUxFQVNFRCA9IGV4cG9ydHMuQUNRVUlSRUQgPSBleHBvcnRzLlJFTEVBU0UgPSBleHBvcnRzLkFDUVVJUkUgPSBleHBvcnRzLkNIQU5HRUQgPSBleHBvcnRzLkRJU0NPTk5FQ1QgPSBleHBvcnRzLkNPTk5FQ1RfVU5BQ1FVSVJFRCA9IGV4cG9ydHMuQ09OTkVDVCA9IHZvaWQgMDtcbnZhciBDT05ORUNUID0gJ2RldmljZS1jb25uZWN0JztcbmV4cG9ydHMuQ09OTkVDVCA9IENPTk5FQ1Q7XG52YXIgQ09OTkVDVF9VTkFDUVVJUkVEID0gJ2RldmljZS1jb25uZWN0X3VuYWNxdWlyZWQnO1xuZXhwb3J0cy5DT05ORUNUX1VOQUNRVUlSRUQgPSBDT05ORUNUX1VOQUNRVUlSRUQ7XG52YXIgRElTQ09OTkVDVCA9ICdkZXZpY2UtZGlzY29ubmVjdCc7XG5leHBvcnRzLkRJU0NPTk5FQ1QgPSBESVNDT05ORUNUO1xudmFyIENIQU5HRUQgPSAnZGV2aWNlLWNoYW5nZWQnO1xuZXhwb3J0cy5DSEFOR0VEID0gQ0hBTkdFRDtcbnZhciBBQ1FVSVJFID0gJ2RldmljZS1hY3F1aXJlJztcbmV4cG9ydHMuQUNRVUlSRSA9IEFDUVVJUkU7XG52YXIgUkVMRUFTRSA9ICdkZXZpY2UtcmVsZWFzZSc7XG5leHBvcnRzLlJFTEVBU0UgPSBSRUxFQVNFO1xudmFyIEFDUVVJUkVEID0gJ2RldmljZS1hY3F1aXJlZCc7XG5leHBvcnRzLkFDUVVJUkVEID0gQUNRVUlSRUQ7XG52YXIgUkVMRUFTRUQgPSAnZGV2aWNlLXJlbGVhc2VkJztcbmV4cG9ydHMuUkVMRUFTRUQgPSBSRUxFQVNFRDtcbnZhciBVU0VEX0VMU0VXSEVSRSA9ICdkZXZpY2UtdXNlZF9lbHNld2hlcmUnO1xuZXhwb3J0cy5VU0VEX0VMU0VXSEVSRSA9IFVTRURfRUxTRVdIRVJFO1xudmFyIExPQURJTkcgPSAnZGV2aWNlLWxvYWRpbmcnOyAvLyB0cmV6b3ItbGluayBldmVudHMgaW4gcHJvdG9idWYgZm9ybWF0XG5cbmV4cG9ydHMuTE9BRElORyA9IExPQURJTkc7XG52YXIgQlVUVE9OID0gJ2J1dHRvbic7XG5leHBvcnRzLkJVVFRPTiA9IEJVVFRPTjtcbnZhciBQSU4gPSAncGluJztcbmV4cG9ydHMuUElOID0gUElOO1xudmFyIFBBU1NQSFJBU0UgPSAncGFzc3BocmFzZSc7XG5leHBvcnRzLlBBU1NQSFJBU0UgPSBQQVNTUEhSQVNFO1xudmFyIFBBU1NQSFJBU0VfT05fREVWSUNFID0gJ3Bhc3NwaHJhc2Vfb25fZGV2aWNlJztcbmV4cG9ydHMuUEFTU1BIUkFTRV9PTl9ERVZJQ0UgPSBQQVNTUEhSQVNFX09OX0RFVklDRTtcbnZhciBXT1JEID0gJ3dvcmQnOyAvLyBjdXN0b21cblxuZXhwb3J0cy5XT1JEID0gV09SRDtcbnZhciBXQUlUX0ZPUl9TRUxFQ1RJT04gPSAnZGV2aWNlLXdhaXRfZm9yX3NlbGVjdGlvbic7IC8vIHRoaXMgc3RyaW5nIGhhcyBkaWZmZXJlbnQgcHJlZml4IHRoYW4gb3RoZXIgY29uc3RhbnRzIGFuZCBpdCdzIHVzZWQgYXMgZGV2aWNlIHBhdGhcblxuZXhwb3J0cy5XQUlUX0ZPUl9TRUxFQ1RJT04gPSBXQUlUX0ZPUl9TRUxFQ1RJT047XG52YXIgVU5SRUFEQUJMRSA9ICd1bnJlYWRhYmxlLWRldmljZSc7XG5leHBvcnRzLlVOUkVBREFCTEUgPSBVTlJFQURBQkxFOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/device.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/errors.js":
/*!*************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/errors.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.NO_COIN_INFO = exports.BACKEND_NO_URL = exports.WEBUSB_ERROR_MESSAGE = exports.INVALID_PIN_ERROR_MESSAGE = exports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = exports.INVALID_STATE = exports.CALL_OVERRIDE = exports.INITIALIZATION_FAILED = exports.DEVICE_USED_ELSEWHERE = exports.PERMISSIONS_NOT_GRANTED = exports.POPUP_CLOSED = exports.INVALID_PARAMETERS = exports.DEVICE_CALL_IN_PROGRESS = exports.DEVICE_NOT_FOUND = exports.WRONG_TRANSPORT_CONFIG = exports.NO_TRANSPORT = exports.MANAGEMENT_NOT_ALLOWED = exports.MANIFEST_NOT_SET = exports.BROWSER_NOT_SUPPORTED = exports.POPUP_TIMEOUT = exports.IFRAME_TIMEOUT = exports.IFRAME_INITIALIZED = exports.IFRAME_BLOCKED = exports.NO_IFRAME = exports.invalidParameter = exports.TrezorError = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/inheritsLoose.js\"));\n\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\n\nvar TrezorError =\n/*#__PURE__*/\nfunction (_Error) {\n (0, _inheritsLoose2[\"default\"])(TrezorError, _Error);\n\n function TrezorError(code, message) {\n var _this;\n\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.message = message;\n return _this;\n }\n\n return TrezorError;\n}((0, _wrapNativeSuper2[\"default\"])(Error));\n\nexports.TrezorError = TrezorError;\n\nvar invalidParameter = function invalidParameter(message) {\n return new TrezorError('Connect_InvalidParameter', message);\n}; // level 100 error during initialization\n\n\nexports.invalidParameter = invalidParameter;\nvar NO_IFRAME = new TrezorError(100, 'TrezorConnect not yet initialized');\nexports.NO_IFRAME = NO_IFRAME;\nvar IFRAME_BLOCKED = new TrezorError('iframe_blocked', 'TrezorConnect iframe was blocked');\nexports.IFRAME_BLOCKED = IFRAME_BLOCKED;\nvar IFRAME_INITIALIZED = new TrezorError(101, 'TrezorConnect has been already initialized');\nexports.IFRAME_INITIALIZED = IFRAME_INITIALIZED;\nvar IFRAME_TIMEOUT = new TrezorError(102, 'Iframe timeout');\nexports.IFRAME_TIMEOUT = IFRAME_TIMEOUT;\nvar POPUP_TIMEOUT = new TrezorError(103, 'Popup timeout');\nexports.POPUP_TIMEOUT = POPUP_TIMEOUT;\nvar BROWSER_NOT_SUPPORTED = new TrezorError(104, 'Browser not supported');\nexports.BROWSER_NOT_SUPPORTED = BROWSER_NOT_SUPPORTED;\nvar MANIFEST_NOT_SET = new TrezorError(105, 'Manifest not set. Read more at https://github.com/trezor/connect/blob/develop/docs/index.md');\nexports.MANIFEST_NOT_SET = MANIFEST_NOT_SET;\nvar MANAGEMENT_NOT_ALLOWED = new TrezorError(105, 'Management method not allowed for this configuration');\nexports.MANAGEMENT_NOT_ALLOWED = MANAGEMENT_NOT_ALLOWED;\nvar NO_TRANSPORT = new TrezorError(500, 'Transport is missing');\nexports.NO_TRANSPORT = NO_TRANSPORT;\nvar WRONG_TRANSPORT_CONFIG = new TrezorError(5002, 'Wrong config response'); // config_signed\n\nexports.WRONG_TRANSPORT_CONFIG = WRONG_TRANSPORT_CONFIG;\nvar DEVICE_NOT_FOUND = new TrezorError(501, 'Device not found'); // export const DEVICE_CALL_IN_PROGRESS: TrezorError = new TrezorError(502, \"Device call in progress.\");\n\nexports.DEVICE_NOT_FOUND = DEVICE_NOT_FOUND;\nvar DEVICE_CALL_IN_PROGRESS = new TrezorError(503, 'Device call in progress');\nexports.DEVICE_CALL_IN_PROGRESS = DEVICE_CALL_IN_PROGRESS;\nvar INVALID_PARAMETERS = new TrezorError(504, 'Invalid parameters');\nexports.INVALID_PARAMETERS = INVALID_PARAMETERS;\nvar POPUP_CLOSED = new Error('Popup closed');\nexports.POPUP_CLOSED = POPUP_CLOSED;\nvar PERMISSIONS_NOT_GRANTED = new TrezorError(403, 'Permissions not granted');\nexports.PERMISSIONS_NOT_GRANTED = PERMISSIONS_NOT_GRANTED;\nvar DEVICE_USED_ELSEWHERE = new TrezorError(700, 'Device is used in another window');\nexports.DEVICE_USED_ELSEWHERE = DEVICE_USED_ELSEWHERE;\nvar INITIALIZATION_FAILED = new TrezorError('Failure_Initialize', 'Initialization failed');\nexports.INITIALIZATION_FAILED = INITIALIZATION_FAILED;\nvar CALL_OVERRIDE = new TrezorError('Failure_ActionOverride', 'override');\nexports.CALL_OVERRIDE = CALL_OVERRIDE;\nvar INVALID_STATE = new TrezorError('Failure_PassphraseState', 'Passphrase is incorrect'); // a slight hack\n// this error string is hard-coded\n// in both bridge and extension\n\nexports.INVALID_STATE = INVALID_STATE;\nvar WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = 'wrong previous session';\nexports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = WRONG_PREVIOUS_SESSION_ERROR_MESSAGE;\nvar INVALID_PIN_ERROR_MESSAGE = 'PIN invalid';\nexports.INVALID_PIN_ERROR_MESSAGE = INVALID_PIN_ERROR_MESSAGE;\nvar WEBUSB_ERROR_MESSAGE = 'NetworkError: Unable to claim interface.'; // BlockBook\n\nexports.WEBUSB_ERROR_MESSAGE = WEBUSB_ERROR_MESSAGE;\nvar BACKEND_NO_URL = new TrezorError('Backend_init', 'Url not found');\nexports.BACKEND_NO_URL = BACKEND_NO_URL;\nvar NO_COIN_INFO = invalidParameter('Coin not found.');\nexports.NO_COIN_INFO = NO_COIN_INFO;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvZXJyb3JzLmpzPzM2NGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsb0hBQThDOztBQUVuRjtBQUNBOztBQUVBLDZDQUE2QyxtQkFBTyxDQUFDLG9HQUFzQzs7QUFFM0YsK0NBQStDLG1CQUFPLENBQUMsd0dBQXdDOztBQUUvRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRFQUE0RTs7QUFFNUU7QUFDQSxnRUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBGQUEwRjtBQUMxRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRUFBc0U7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL2NvbnN0YW50cy9lcnJvcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5OT19DT0lOX0lORk8gPSBleHBvcnRzLkJBQ0tFTkRfTk9fVVJMID0gZXhwb3J0cy5XRUJVU0JfRVJST1JfTUVTU0FHRSA9IGV4cG9ydHMuSU5WQUxJRF9QSU5fRVJST1JfTUVTU0FHRSA9IGV4cG9ydHMuV1JPTkdfUFJFVklPVVNfU0VTU0lPTl9FUlJPUl9NRVNTQUdFID0gZXhwb3J0cy5JTlZBTElEX1NUQVRFID0gZXhwb3J0cy5DQUxMX09WRVJSSURFID0gZXhwb3J0cy5JTklUSUFMSVpBVElPTl9GQUlMRUQgPSBleHBvcnRzLkRFVklDRV9VU0VEX0VMU0VXSEVSRSA9IGV4cG9ydHMuUEVSTUlTU0lPTlNfTk9UX0dSQU5URUQgPSBleHBvcnRzLlBPUFVQX0NMT1NFRCA9IGV4cG9ydHMuSU5WQUxJRF9QQVJBTUVURVJTID0gZXhwb3J0cy5ERVZJQ0VfQ0FMTF9JTl9QUk9HUkVTUyA9IGV4cG9ydHMuREVWSUNFX05PVF9GT1VORCA9IGV4cG9ydHMuV1JPTkdfVFJBTlNQT1JUX0NPTkZJRyA9IGV4cG9ydHMuTk9fVFJBTlNQT1JUID0gZXhwb3J0cy5NQU5BR0VNRU5UX05PVF9BTExPV0VEID0gZXhwb3J0cy5NQU5JRkVTVF9OT1RfU0VUID0gZXhwb3J0cy5CUk9XU0VSX05PVF9TVVBQT1JURUQgPSBleHBvcnRzLlBPUFVQX1RJTUVPVVQgPSBleHBvcnRzLklGUkFNRV9USU1FT1VUID0gZXhwb3J0cy5JRlJBTUVfSU5JVElBTElaRUQgPSBleHBvcnRzLklGUkFNRV9CTE9DS0VEID0gZXhwb3J0cy5OT19JRlJBTUUgPSBleHBvcnRzLmludmFsaWRQYXJhbWV0ZXIgPSBleHBvcnRzLlRyZXpvckVycm9yID0gdm9pZCAwO1xuXG52YXIgX2luaGVyaXRzTG9vc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0c0xvb3NlXCIpKTtcblxudmFyIF93cmFwTmF0aXZlU3VwZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXJcIikpO1xuXG52YXIgVHJlem9yRXJyb3IgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKF9FcnJvcikge1xuICAoMCwgX2luaGVyaXRzTG9vc2UyW1wiZGVmYXVsdFwiXSkoVHJlem9yRXJyb3IsIF9FcnJvcik7XG5cbiAgZnVuY3Rpb24gVHJlem9yRXJyb3IoY29kZSwgbWVzc2FnZSkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX0Vycm9yLmNhbGwodGhpcywgbWVzc2FnZSkgfHwgdGhpcztcbiAgICBfdGhpcy5jb2RlID0gY29kZTtcbiAgICBfdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICByZXR1cm4gVHJlem9yRXJyb3I7XG59KCgwLCBfd3JhcE5hdGl2ZVN1cGVyMltcImRlZmF1bHRcIl0pKEVycm9yKSk7XG5cbmV4cG9ydHMuVHJlem9yRXJyb3IgPSBUcmV6b3JFcnJvcjtcblxudmFyIGludmFsaWRQYXJhbWV0ZXIgPSBmdW5jdGlvbiBpbnZhbGlkUGFyYW1ldGVyKG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBUcmV6b3JFcnJvcignQ29ubmVjdF9JbnZhbGlkUGFyYW1ldGVyJywgbWVzc2FnZSk7XG59OyAvLyBsZXZlbCAxMDAgZXJyb3IgZHVyaW5nIGluaXRpYWxpemF0aW9uXG5cblxuZXhwb3J0cy5pbnZhbGlkUGFyYW1ldGVyID0gaW52YWxpZFBhcmFtZXRlcjtcbnZhciBOT19JRlJBTUUgPSBuZXcgVHJlem9yRXJyb3IoMTAwLCAnVHJlem9yQ29ubmVjdCBub3QgeWV0IGluaXRpYWxpemVkJyk7XG5leHBvcnRzLk5PX0lGUkFNRSA9IE5PX0lGUkFNRTtcbnZhciBJRlJBTUVfQkxPQ0tFRCA9IG5ldyBUcmV6b3JFcnJvcignaWZyYW1lX2Jsb2NrZWQnLCAnVHJlem9yQ29ubmVjdCBpZnJhbWUgd2FzIGJsb2NrZWQnKTtcbmV4cG9ydHMuSUZSQU1FX0JMT0NLRUQgPSBJRlJBTUVfQkxPQ0tFRDtcbnZhciBJRlJBTUVfSU5JVElBTElaRUQgPSBuZXcgVHJlem9yRXJyb3IoMTAxLCAnVHJlem9yQ29ubmVjdCBoYXMgYmVlbiBhbHJlYWR5IGluaXRpYWxpemVkJyk7XG5leHBvcnRzLklGUkFNRV9JTklUSUFMSVpFRCA9IElGUkFNRV9JTklUSUFMSVpFRDtcbnZhciBJRlJBTUVfVElNRU9VVCA9IG5ldyBUcmV6b3JFcnJvcigxMDIsICdJZnJhbWUgdGltZW91dCcpO1xuZXhwb3J0cy5JRlJBTUVfVElNRU9VVCA9IElGUkFNRV9USU1FT1VUO1xudmFyIFBPUFVQX1RJTUVPVVQgPSBuZXcgVHJlem9yRXJyb3IoMTAzLCAnUG9wdXAgdGltZW91dCcpO1xuZXhwb3J0cy5QT1BVUF9USU1FT1VUID0gUE9QVVBfVElNRU9VVDtcbnZhciBCUk9XU0VSX05PVF9TVVBQT1JURUQgPSBuZXcgVHJlem9yRXJyb3IoMTA0LCAnQnJvd3NlciBub3Qgc3VwcG9ydGVkJyk7XG5leHBvcnRzLkJST1dTRVJfTk9UX1NVUFBPUlRFRCA9IEJST1dTRVJfTk9UX1NVUFBPUlRFRDtcbnZhciBNQU5JRkVTVF9OT1RfU0VUID0gbmV3IFRyZXpvckVycm9yKDEwNSwgJ01hbmlmZXN0IG5vdCBzZXQuIFJlYWQgbW9yZSBhdCBodHRwczovL2dpdGh1Yi5jb20vdHJlem9yL2Nvbm5lY3QvYmxvYi9kZXZlbG9wL2RvY3MvaW5kZXgubWQnKTtcbmV4cG9ydHMuTUFOSUZFU1RfTk9UX1NFVCA9IE1BTklGRVNUX05PVF9TRVQ7XG52YXIgTUFOQUdFTUVOVF9OT1RfQUxMT1dFRCA9IG5ldyBUcmV6b3JFcnJvcigxMDUsICdNYW5hZ2VtZW50IG1ldGhvZCBub3QgYWxsb3dlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uJyk7XG5leHBvcnRzLk1BTkFHRU1FTlRfTk9UX0FMTE9XRUQgPSBNQU5BR0VNRU5UX05PVF9BTExPV0VEO1xudmFyIE5PX1RSQU5TUE9SVCA9IG5ldyBUcmV6b3JFcnJvcig1MDAsICdUcmFuc3BvcnQgaXMgbWlzc2luZycpO1xuZXhwb3J0cy5OT19UUkFOU1BPUlQgPSBOT19UUkFOU1BPUlQ7XG52YXIgV1JPTkdfVFJBTlNQT1JUX0NPTkZJRyA9IG5ldyBUcmV6b3JFcnJvcig1MDAyLCAnV3JvbmcgY29uZmlnIHJlc3BvbnNlJyk7IC8vIGNvbmZpZ19zaWduZWRcblxuZXhwb3J0cy5XUk9OR19UUkFOU1BPUlRfQ09ORklHID0gV1JPTkdfVFJBTlNQT1JUX0NPTkZJRztcbnZhciBERVZJQ0VfTk9UX0ZPVU5EID0gbmV3IFRyZXpvckVycm9yKDUwMSwgJ0RldmljZSBub3QgZm91bmQnKTsgLy8gZXhwb3J0IGNvbnN0IERFVklDRV9DQUxMX0lOX1BST0dSRVNTOiBUcmV6b3JFcnJvciA9IG5ldyBUcmV6b3JFcnJvcig1MDIsIFwiRGV2aWNlIGNhbGwgaW4gcHJvZ3Jlc3MuXCIpO1xuXG5leHBvcnRzLkRFVklDRV9OT1RfRk9VTkQgPSBERVZJQ0VfTk9UX0ZPVU5EO1xudmFyIERFVklDRV9DQUxMX0lOX1BST0dSRVNTID0gbmV3IFRyZXpvckVycm9yKDUwMywgJ0RldmljZSBjYWxsIGluIHByb2dyZXNzJyk7XG5leHBvcnRzLkRFVklDRV9DQUxMX0lOX1BST0dSRVNTID0gREVWSUNFX0NBTExfSU5fUFJPR1JFU1M7XG52YXIgSU5WQUxJRF9QQVJBTUVURVJTID0gbmV3IFRyZXpvckVycm9yKDUwNCwgJ0ludmFsaWQgcGFyYW1ldGVycycpO1xuZXhwb3J0cy5JTlZBTElEX1BBUkFNRVRFUlMgPSBJTlZBTElEX1BBUkFNRVRFUlM7XG52YXIgUE9QVVBfQ0xPU0VEID0gbmV3IEVycm9yKCdQb3B1cCBjbG9zZWQnKTtcbmV4cG9ydHMuUE9QVVBfQ0xPU0VEID0gUE9QVVBfQ0xPU0VEO1xudmFyIFBFUk1JU1NJT05TX05PVF9HUkFOVEVEID0gbmV3IFRyZXpvckVycm9yKDQwMywgJ1Blcm1pc3Npb25zIG5vdCBncmFudGVkJyk7XG5leHBvcnRzLlBFUk1JU1NJT05TX05PVF9HUkFOVEVEID0gUEVSTUlTU0lPTlNfTk9UX0dSQU5URUQ7XG52YXIgREVWSUNFX1VTRURfRUxTRVdIRVJFID0gbmV3IFRyZXpvckVycm9yKDcwMCwgJ0RldmljZSBpcyB1c2VkIGluIGFub3RoZXIgd2luZG93Jyk7XG5leHBvcnRzLkRFVklDRV9VU0VEX0VMU0VXSEVSRSA9IERFVklDRV9VU0VEX0VMU0VXSEVSRTtcbnZhciBJTklUSUFMSVpBVElPTl9GQUlMRUQgPSBuZXcgVHJlem9yRXJyb3IoJ0ZhaWx1cmVfSW5pdGlhbGl6ZScsICdJbml0aWFsaXphdGlvbiBmYWlsZWQnKTtcbmV4cG9ydHMuSU5JVElBTElaQVRJT05fRkFJTEVEID0gSU5JVElBTElaQVRJT05fRkFJTEVEO1xudmFyIENBTExfT1ZFUlJJREUgPSBuZXcgVHJlem9yRXJyb3IoJ0ZhaWx1cmVfQWN0aW9uT3ZlcnJpZGUnLCAnb3ZlcnJpZGUnKTtcbmV4cG9ydHMuQ0FMTF9PVkVSUklERSA9IENBTExfT1ZFUlJJREU7XG52YXIgSU5WQUxJRF9TVEFURSA9IG5ldyBUcmV6b3JFcnJvcignRmFpbHVyZV9QYXNzcGhyYXNlU3RhdGUnLCAnUGFzc3BocmFzZSBpcyBpbmNvcnJlY3QnKTsgLy8gYSBzbGlnaHQgaGFja1xuLy8gdGhpcyBlcnJvciBzdHJpbmcgaXMgaGFyZC1jb2RlZFxuLy8gaW4gYm90aCBicmlkZ2UgYW5kIGV4dGVuc2lvblxuXG5leHBvcnRzLklOVkFMSURfU1RBVEUgPSBJTlZBTElEX1NUQVRFO1xudmFyIFdST05HX1BSRVZJT1VTX1NFU1NJT05fRVJST1JfTUVTU0FHRSA9ICd3cm9uZyBwcmV2aW91cyBzZXNzaW9uJztcbmV4cG9ydHMuV1JPTkdfUFJFVklPVVNfU0VTU0lPTl9FUlJPUl9NRVNTQUdFID0gV1JPTkdfUFJFVklPVVNfU0VTU0lPTl9FUlJPUl9NRVNTQUdFO1xudmFyIElOVkFMSURfUElOX0VSUk9SX01FU1NBR0UgPSAnUElOIGludmFsaWQnO1xuZXhwb3J0cy5JTlZBTElEX1BJTl9FUlJPUl9NRVNTQUdFID0gSU5WQUxJRF9QSU5fRVJST1JfTUVTU0FHRTtcbnZhciBXRUJVU0JfRVJST1JfTUVTU0FHRSA9ICdOZXR3b3JrRXJyb3I6IFVuYWJsZSB0byBjbGFpbSBpbnRlcmZhY2UuJzsgLy8gQmxvY2tCb29rXG5cbmV4cG9ydHMuV0VCVVNCX0VSUk9SX01FU1NBR0UgPSBXRUJVU0JfRVJST1JfTUVTU0FHRTtcbnZhciBCQUNLRU5EX05PX1VSTCA9IG5ldyBUcmV6b3JFcnJvcignQmFja2VuZF9pbml0JywgJ1VybCBub3QgZm91bmQnKTtcbmV4cG9ydHMuQkFDS0VORF9OT19VUkwgPSBCQUNLRU5EX05PX1VSTDtcbnZhciBOT19DT0lOX0lORk8gPSBpbnZhbGlkUGFyYW1ldGVyKCdDb2luIG5vdCBmb3VuZC4nKTtcbmV4cG9ydHMuTk9fQ09JTl9JTkZPID0gTk9fQ09JTl9JTkZPOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/errors.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/iframe.js":
/*!*************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/iframe.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.RESPONSE = exports.CALL = exports.ERROR = exports.BOOTSTRAP = void 0;\nvar BOOTSTRAP = 'iframe-bootstrap';\nexports.BOOTSTRAP = BOOTSTRAP;\nvar ERROR = 'iframe-error';\nexports.ERROR = ERROR;\nvar CALL = 'iframe-call';\nexports.CALL = CALL;\nvar RESPONSE = 'iframe-response';\nexports.RESPONSE = RESPONSE;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvaWZyYW1lLmpzPzM1ZWYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL2NvbnN0YW50cy9pZnJhbWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlJFU1BPTlNFID0gZXhwb3J0cy5DQUxMID0gZXhwb3J0cy5FUlJPUiA9IGV4cG9ydHMuQk9PVFNUUkFQID0gdm9pZCAwO1xudmFyIEJPT1RTVFJBUCA9ICdpZnJhbWUtYm9vdHN0cmFwJztcbmV4cG9ydHMuQk9PVFNUUkFQID0gQk9PVFNUUkFQO1xudmFyIEVSUk9SID0gJ2lmcmFtZS1lcnJvcic7XG5leHBvcnRzLkVSUk9SID0gRVJST1I7XG52YXIgQ0FMTCA9ICdpZnJhbWUtY2FsbCc7XG5leHBvcnRzLkNBTEwgPSBDQUxMO1xudmFyIFJFU1BPTlNFID0gJ2lmcmFtZS1yZXNwb25zZSc7XG5leHBvcnRzLlJFU1BPTlNFID0gUkVTUE9OU0U7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/iframe.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/index.js":
/*!************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/index.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.BLOCKCHAIN_EVENT = exports.RESPONSE_EVENT = exports.TRANSPORT_EVENT = exports.DEVICE_EVENT = exports.UI_EVENT = exports.CORE_EVENT = void 0;\nvar CORE_EVENT = 'CORE_EVENT';\nexports.CORE_EVENT = CORE_EVENT;\nvar UI_EVENT = 'UI_EVENT';\nexports.UI_EVENT = UI_EVENT;\nvar DEVICE_EVENT = 'DEVICE_EVENT';\nexports.DEVICE_EVENT = DEVICE_EVENT;\nvar TRANSPORT_EVENT = 'TRANSPORT_EVENT';\nexports.TRANSPORT_EVENT = TRANSPORT_EVENT;\nvar RESPONSE_EVENT = 'RESPONSE_EVENT';\nexports.RESPONSE_EVENT = RESPONSE_EVENT;\nvar BLOCKCHAIN_EVENT = 'BLOCKCHAIN_EVENT';\nexports.BLOCKCHAIN_EVENT = BLOCKCHAIN_EVENT;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvaW5kZXguanM/YjE1YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkJMT0NLQ0hBSU5fRVZFTlQgPSBleHBvcnRzLlJFU1BPTlNFX0VWRU5UID0gZXhwb3J0cy5UUkFOU1BPUlRfRVZFTlQgPSBleHBvcnRzLkRFVklDRV9FVkVOVCA9IGV4cG9ydHMuVUlfRVZFTlQgPSBleHBvcnRzLkNPUkVfRVZFTlQgPSB2b2lkIDA7XG52YXIgQ09SRV9FVkVOVCA9ICdDT1JFX0VWRU5UJztcbmV4cG9ydHMuQ09SRV9FVkVOVCA9IENPUkVfRVZFTlQ7XG52YXIgVUlfRVZFTlQgPSAnVUlfRVZFTlQnO1xuZXhwb3J0cy5VSV9FVkVOVCA9IFVJX0VWRU5UO1xudmFyIERFVklDRV9FVkVOVCA9ICdERVZJQ0VfRVZFTlQnO1xuZXhwb3J0cy5ERVZJQ0VfRVZFTlQgPSBERVZJQ0VfRVZFTlQ7XG52YXIgVFJBTlNQT1JUX0VWRU5UID0gJ1RSQU5TUE9SVF9FVkVOVCc7XG5leHBvcnRzLlRSQU5TUE9SVF9FVkVOVCA9IFRSQU5TUE9SVF9FVkVOVDtcbnZhciBSRVNQT05TRV9FVkVOVCA9ICdSRVNQT05TRV9FVkVOVCc7XG5leHBvcnRzLlJFU1BPTlNFX0VWRU5UID0gUkVTUE9OU0VfRVZFTlQ7XG52YXIgQkxPQ0tDSEFJTl9FVkVOVCA9ICdCTE9DS0NIQUlOX0VWRU5UJztcbmV4cG9ydHMuQkxPQ0tDSEFJTl9FVkVOVCA9IEJMT0NLQ0hBSU5fRVZFTlQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/index.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/popup.js":
/*!************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/popup.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.CLOSE_WINDOW = exports.CANCEL_POPUP_REQUEST = exports.CLOSED = exports.CLOSE = exports.HANDSHAKE = exports.OPEN_TIMEOUT = exports.OPENED = exports.LOG = exports.EXTENSION_USB_PERMISSIONS = exports.EXTENSION_REQUEST = exports.BOOTSTRAP = exports.INIT = void 0;\nvar INIT = 'popup-init';\nexports.INIT = INIT;\nvar BOOTSTRAP = 'popup-bootstrap';\nexports.BOOTSTRAP = BOOTSTRAP;\nvar EXTENSION_REQUEST = 'popup-extension_request';\nexports.EXTENSION_REQUEST = EXTENSION_REQUEST;\nvar EXTENSION_USB_PERMISSIONS = 'open-usb-permissions';\nexports.EXTENSION_USB_PERMISSIONS = EXTENSION_USB_PERMISSIONS;\nvar LOG = 'popup-log';\nexports.LOG = LOG;\nvar OPENED = 'popup-opened';\nexports.OPENED = OPENED;\nvar OPEN_TIMEOUT = 'popup-open_timeout';\nexports.OPEN_TIMEOUT = OPEN_TIMEOUT;\nvar HANDSHAKE = 'popup-handshake';\nexports.HANDSHAKE = HANDSHAKE;\nvar CLOSE = 'popup-close';\nexports.CLOSE = CLOSE;\nvar CLOSED = 'popup-closed';\nexports.CLOSED = CLOSED;\nvar CANCEL_POPUP_REQUEST = 'ui-cancel-popup-request';\nexports.CANCEL_POPUP_REQUEST = CANCEL_POPUP_REQUEST;\nvar CLOSE_WINDOW = 'window.close';\nexports.CLOSE_WINDOW = CLOSE_WINDOW;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvcG9wdXAuanM/OGQxNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvcG9wdXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkNMT1NFX1dJTkRPVyA9IGV4cG9ydHMuQ0FOQ0VMX1BPUFVQX1JFUVVFU1QgPSBleHBvcnRzLkNMT1NFRCA9IGV4cG9ydHMuQ0xPU0UgPSBleHBvcnRzLkhBTkRTSEFLRSA9IGV4cG9ydHMuT1BFTl9USU1FT1VUID0gZXhwb3J0cy5PUEVORUQgPSBleHBvcnRzLkxPRyA9IGV4cG9ydHMuRVhURU5TSU9OX1VTQl9QRVJNSVNTSU9OUyA9IGV4cG9ydHMuRVhURU5TSU9OX1JFUVVFU1QgPSBleHBvcnRzLkJPT1RTVFJBUCA9IGV4cG9ydHMuSU5JVCA9IHZvaWQgMDtcbnZhciBJTklUID0gJ3BvcHVwLWluaXQnO1xuZXhwb3J0cy5JTklUID0gSU5JVDtcbnZhciBCT09UU1RSQVAgPSAncG9wdXAtYm9vdHN0cmFwJztcbmV4cG9ydHMuQk9PVFNUUkFQID0gQk9PVFNUUkFQO1xudmFyIEVYVEVOU0lPTl9SRVFVRVNUID0gJ3BvcHVwLWV4dGVuc2lvbl9yZXF1ZXN0JztcbmV4cG9ydHMuRVhURU5TSU9OX1JFUVVFU1QgPSBFWFRFTlNJT05fUkVRVUVTVDtcbnZhciBFWFRFTlNJT05fVVNCX1BFUk1JU1NJT05TID0gJ29wZW4tdXNiLXBlcm1pc3Npb25zJztcbmV4cG9ydHMuRVhURU5TSU9OX1VTQl9QRVJNSVNTSU9OUyA9IEVYVEVOU0lPTl9VU0JfUEVSTUlTU0lPTlM7XG52YXIgTE9HID0gJ3BvcHVwLWxvZyc7XG5leHBvcnRzLkxPRyA9IExPRztcbnZhciBPUEVORUQgPSAncG9wdXAtb3BlbmVkJztcbmV4cG9ydHMuT1BFTkVEID0gT1BFTkVEO1xudmFyIE9QRU5fVElNRU9VVCA9ICdwb3B1cC1vcGVuX3RpbWVvdXQnO1xuZXhwb3J0cy5PUEVOX1RJTUVPVVQgPSBPUEVOX1RJTUVPVVQ7XG52YXIgSEFORFNIQUtFID0gJ3BvcHVwLWhhbmRzaGFrZSc7XG5leHBvcnRzLkhBTkRTSEFLRSA9IEhBTkRTSEFLRTtcbnZhciBDTE9TRSA9ICdwb3B1cC1jbG9zZSc7XG5leHBvcnRzLkNMT1NFID0gQ0xPU0U7XG52YXIgQ0xPU0VEID0gJ3BvcHVwLWNsb3NlZCc7XG5leHBvcnRzLkNMT1NFRCA9IENMT1NFRDtcbnZhciBDQU5DRUxfUE9QVVBfUkVRVUVTVCA9ICd1aS1jYW5jZWwtcG9wdXAtcmVxdWVzdCc7XG5leHBvcnRzLkNBTkNFTF9QT1BVUF9SRVFVRVNUID0gQ0FOQ0VMX1BPUFVQX1JFUVVFU1Q7XG52YXIgQ0xPU0VfV0lORE9XID0gJ3dpbmRvdy5jbG9zZSc7XG5leHBvcnRzLkNMT1NFX1dJTkRPVyA9IENMT1NFX1dJTkRPVzsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/popup.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/transport.js":
/*!****************************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/transport.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.START_PENDING = exports.RECONNECT = exports.REQUEST = exports.STREAM = exports.UPDATE = exports.ERROR = exports.START = void 0;\nvar START = 'transport-start';\nexports.START = START;\nvar ERROR = 'transport-error';\nexports.ERROR = ERROR;\nvar UPDATE = 'transport-update';\nexports.UPDATE = UPDATE;\nvar STREAM = 'transport-stream';\nexports.STREAM = STREAM;\nvar REQUEST = 'transport-request_device';\nexports.REQUEST = REQUEST;\nvar RECONNECT = 'transport-reconnect';\nexports.RECONNECT = RECONNECT;\nvar START_PENDING = 'transport-start_pending';\nexports.START_PENDING = START_PENDING;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvdHJhbnNwb3J0LmpzP2I0Y2YiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL2NvbnN0YW50cy90cmFuc3BvcnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlNUQVJUX1BFTkRJTkcgPSBleHBvcnRzLlJFQ09OTkVDVCA9IGV4cG9ydHMuUkVRVUVTVCA9IGV4cG9ydHMuU1RSRUFNID0gZXhwb3J0cy5VUERBVEUgPSBleHBvcnRzLkVSUk9SID0gZXhwb3J0cy5TVEFSVCA9IHZvaWQgMDtcbnZhciBTVEFSVCA9ICd0cmFuc3BvcnQtc3RhcnQnO1xuZXhwb3J0cy5TVEFSVCA9IFNUQVJUO1xudmFyIEVSUk9SID0gJ3RyYW5zcG9ydC1lcnJvcic7XG5leHBvcnRzLkVSUk9SID0gRVJST1I7XG52YXIgVVBEQVRFID0gJ3RyYW5zcG9ydC11cGRhdGUnO1xuZXhwb3J0cy5VUERBVEUgPSBVUERBVEU7XG52YXIgU1RSRUFNID0gJ3RyYW5zcG9ydC1zdHJlYW0nO1xuZXhwb3J0cy5TVFJFQU0gPSBTVFJFQU07XG52YXIgUkVRVUVTVCA9ICd0cmFuc3BvcnQtcmVxdWVzdF9kZXZpY2UnO1xuZXhwb3J0cy5SRVFVRVNUID0gUkVRVUVTVDtcbnZhciBSRUNPTk5FQ1QgPSAndHJhbnNwb3J0LXJlY29ubmVjdCc7XG5leHBvcnRzLlJFQ09OTkVDVCA9IFJFQ09OTkVDVDtcbnZhciBTVEFSVF9QRU5ESU5HID0gJ3RyYW5zcG9ydC1zdGFydF9wZW5kaW5nJztcbmV4cG9ydHMuU1RBUlRfUEVORElORyA9IFNUQVJUX1BFTkRJTkc7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/transport.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/constants/ui.js":
/*!*********************************************************!*\
!*** ./node_modules/trezor-connect/lib/constants/ui.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.ADDRESS_VALIDATION = exports.BUNDLE_PROGRESS = exports.LOGIN_CHALLENGE_RESPONSE = exports.LOGIN_CHALLENGE_REQUEST = exports.CUSTOM_MESSAGE_RESPONSE = exports.CUSTOM_MESSAGE_REQUEST = exports.CHANGE_SETTINGS = exports.RECEIVE_WORD = exports.RECEIVE_FEE = exports.RECEIVE_ACCOUNT = exports.CHANGE_ACCOUNT = exports.RECEIVE_DEVICE = exports.RECEIVE_PASSPHRASE = exports.RECEIVE_PIN = exports.RECEIVE_CONFIRMATION = exports.RECEIVE_PERMISSION = exports.REQUEST_WORD = exports.REQUEST_BUTTON = exports.INSUFFICIENT_FUNDS = exports.UPDATE_CUSTOM_FEE = exports.SELECT_FEE = exports.SELECT_ACCOUNT = exports.SELECT_DEVICE = exports.SET_OPERATION = exports.LOADING = exports.CONNECT = exports.INVALID_PASSPHRASE_ACTION = exports.INVALID_PASSPHRASE = exports.REQUEST_PASSPHRASE_ON_DEVICE = exports.REQUEST_PASSPHRASE = exports.INVALID_PIN = exports.REQUEST_PIN = exports.REQUEST_CONFIRMATION = exports.REQUEST_PERMISSION = exports.CLOSE_UI_WINDOW = exports.REQUEST_UI_WINDOW = exports.RECEIVE_BROWSER = exports.BROWSER_OUTDATED = exports.BROWSER_NOT_SUPPORTED = exports.DEVICE_NEEDS_BACKUP = exports.FIRMWARE_NOT_INSTALLED = exports.FIRMWARE_NOT_COMPATIBLE = exports.FIRMWARE_NOT_SUPPORTED = exports.FIRMWARE_OUTDATED = exports.FIRMWARE_OLD = exports.SEEDLESS = exports.INITIALIZE = exports.REQUIRE_MODE = exports.NOT_IN_BOOTLOADER = exports.BOOTLOADER = exports.TRANSPORT = exports.IFRAME_HANDSHAKE = void 0;\nvar IFRAME_HANDSHAKE = 'iframe-handshake';\nexports.IFRAME_HANDSHAKE = IFRAME_HANDSHAKE;\nvar TRANSPORT = 'ui-no_transport';\nexports.TRANSPORT = TRANSPORT;\nvar BOOTLOADER = 'ui-device_bootloader_mode';\nexports.BOOTLOADER = BOOTLOADER;\nvar NOT_IN_BOOTLOADER = 'ui-device_not_in_bootloader_mode';\nexports.NOT_IN_BOOTLOADER = NOT_IN_BOOTLOADER;\nvar REQUIRE_MODE = 'ui-device_require_mode';\nexports.REQUIRE_MODE = REQUIRE_MODE;\nvar INITIALIZE = 'ui-device_not_initialized';\nexports.INITIALIZE = INITIALIZE;\nvar SEEDLESS = 'ui-device_seedless';\nexports.SEEDLESS = SEEDLESS;\nvar FIRMWARE_OLD = 'ui-device_firmware_old';\nexports.FIRMWARE_OLD = FIRMWARE_OLD;\nvar FIRMWARE_OUTDATED = 'ui-device_firmware_outdated';\nexports.FIRMWARE_OUTDATED = FIRMWARE_OUTDATED;\nvar FIRMWARE_NOT_SUPPORTED = 'ui-device_firmware_unsupported';\nexports.FIRMWARE_NOT_SUPPORTED = FIRMWARE_NOT_SUPPORTED;\nvar FIRMWARE_NOT_COMPATIBLE = 'ui-device_firmware_not_compatible';\nexports.FIRMWARE_NOT_COMPATIBLE = FIRMWARE_NOT_COMPATIBLE;\nvar FIRMWARE_NOT_INSTALLED = 'ui-device_firmware_not_installed';\nexports.FIRMWARE_NOT_INSTALLED = FIRMWARE_NOT_INSTALLED;\nvar DEVICE_NEEDS_BACKUP = 'ui-device_needs_backup';\nexports.DEVICE_NEEDS_BACKUP = DEVICE_NEEDS_BACKUP;\nvar BROWSER_NOT_SUPPORTED = 'ui-browser_not_supported';\nexports.BROWSER_NOT_SUPPORTED = BROWSER_NOT_SUPPORTED;\nvar BROWSER_OUTDATED = 'ui-browser_outdated';\nexports.BROWSER_OUTDATED = BROWSER_OUTDATED;\nvar RECEIVE_BROWSER = 'ui-receive_browser';\nexports.RECEIVE_BROWSER = RECEIVE_BROWSER;\nvar REQUEST_UI_WINDOW = 'ui-request_window';\nexports.REQUEST_UI_WINDOW = REQUEST_UI_WINDOW;\nvar CLOSE_UI_WINDOW = 'ui-close_window';\nexports.CLOSE_UI_WINDOW = CLOSE_UI_WINDOW;\nvar REQUEST_PERMISSION = 'ui-request_permission';\nexports.REQUEST_PERMISSION = REQUEST_PERMISSION;\nvar REQUEST_CONFIRMATION = 'ui-request_confirmation';\nexports.REQUEST_CONFIRMATION = REQUEST_CONFIRMATION;\nvar REQUEST_PIN = 'ui-request_pin';\nexports.REQUEST_PIN = REQUEST_PIN;\nvar INVALID_PIN = 'ui-invalid_pin';\nexports.INVALID_PIN = INVALID_PIN;\nvar REQUEST_PASSPHRASE = 'ui-request_passphrase';\nexports.REQUEST_PASSPHRASE = REQUEST_PASSPHRASE;\nvar REQUEST_PASSPHRASE_ON_DEVICE = 'ui-request_passphrase_on_device';\nexports.REQUEST_PASSPHRASE_ON_DEVICE = REQUEST_PASSPHRASE_ON_DEVICE;\nvar INVALID_PASSPHRASE = 'ui-invalid_passphrase';\nexports.INVALID_PASSPHRASE = INVALID_PASSPHRASE;\nvar INVALID_PASSPHRASE_ACTION = 'ui-invalid_passphrase_action';\nexports.INVALID_PASSPHRASE_ACTION = INVALID_PASSPHRASE_ACTION;\nvar CONNECT = 'ui-connect';\nexports.CONNECT = CONNECT;\nvar LOADING = 'ui-loading';\nexports.LOADING = LOADING;\nvar SET_OPERATION = 'ui-set_operation';\nexports.SET_OPERATION = SET_OPERATION;\nvar SELECT_DEVICE = 'ui-select_device';\nexports.SELECT_DEVICE = SELECT_DEVICE;\nvar SELECT_ACCOUNT = 'ui-select_account';\nexports.SELECT_ACCOUNT = SELECT_ACCOUNT;\nvar SELECT_FEE = 'ui-select_fee';\nexports.SELECT_FEE = SELECT_FEE;\nvar UPDATE_CUSTOM_FEE = 'ui-update_custom_fee';\nexports.UPDATE_CUSTOM_FEE = UPDATE_CUSTOM_FEE;\nvar INSUFFICIENT_FUNDS = 'ui-insufficient_funds';\nexports.INSUFFICIENT_FUNDS = INSUFFICIENT_FUNDS;\nvar REQUEST_BUTTON = 'ui-button';\nexports.REQUEST_BUTTON = REQUEST_BUTTON;\nvar REQUEST_WORD = 'ui-request_word';\nexports.REQUEST_WORD = REQUEST_WORD;\nvar RECEIVE_PERMISSION = 'ui-receive_permission';\nexports.RECEIVE_PERMISSION = RECEIVE_PERMISSION;\nvar RECEIVE_CONFIRMATION = 'ui-receive_confirmation';\nexports.RECEIVE_CONFIRMATION = RECEIVE_CONFIRMATION;\nvar RECEIVE_PIN = 'ui-receive_pin';\nexports.RECEIVE_PIN = RECEIVE_PIN;\nvar RECEIVE_PASSPHRASE = 'ui-receive_passphrase';\nexports.RECEIVE_PASSPHRASE = RECEIVE_PASSPHRASE;\nvar RECEIVE_DEVICE = 'ui-receive_device';\nexports.RECEIVE_DEVICE = RECEIVE_DEVICE;\nvar CHANGE_ACCOUNT = 'ui-change_account';\nexports.CHANGE_ACCOUNT = CHANGE_ACCOUNT;\nvar RECEIVE_ACCOUNT = 'ui-receive_account';\nexports.RECEIVE_ACCOUNT = RECEIVE_ACCOUNT;\nvar RECEIVE_FEE = 'ui-receive_fee';\nexports.RECEIVE_FEE = RECEIVE_FEE;\nvar RECEIVE_WORD = 'ui-receive_word';\nexports.RECEIVE_WORD = RECEIVE_WORD;\nvar CHANGE_SETTINGS = 'ui-change_settings';\nexports.CHANGE_SETTINGS = CHANGE_SETTINGS;\nvar CUSTOM_MESSAGE_REQUEST = 'ui-custom_request';\nexports.CUSTOM_MESSAGE_REQUEST = CUSTOM_MESSAGE_REQUEST;\nvar CUSTOM_MESSAGE_RESPONSE = 'ui-custom_response';\nexports.CUSTOM_MESSAGE_RESPONSE = CUSTOM_MESSAGE_RESPONSE;\nvar LOGIN_CHALLENGE_REQUEST = 'ui-login_challenge_request';\nexports.LOGIN_CHALLENGE_REQUEST = LOGIN_CHALLENGE_REQUEST;\nvar LOGIN_CHALLENGE_RESPONSE = 'ui-login_challenge_response';\nexports.LOGIN_CHALLENGE_RESPONSE = LOGIN_CHALLENGE_RESPONSE;\nvar BUNDLE_PROGRESS = 'ui-bundle_progress';\nexports.BUNDLE_PROGRESS = BUNDLE_PROGRESS;\nvar ADDRESS_VALIDATION = 'ui-address_validation';\nexports.ADDRESS_VALIDATION = ADDRESS_VALIDATION;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9jb25zdGFudHMvdWkuanM/MjI1NyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvY29uc3RhbnRzL3VpLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5BRERSRVNTX1ZBTElEQVRJT04gPSBleHBvcnRzLkJVTkRMRV9QUk9HUkVTUyA9IGV4cG9ydHMuTE9HSU5fQ0hBTExFTkdFX1JFU1BPTlNFID0gZXhwb3J0cy5MT0dJTl9DSEFMTEVOR0VfUkVRVUVTVCA9IGV4cG9ydHMuQ1VTVE9NX01FU1NBR0VfUkVTUE9OU0UgPSBleHBvcnRzLkNVU1RPTV9NRVNTQUdFX1JFUVVFU1QgPSBleHBvcnRzLkNIQU5HRV9TRVRUSU5HUyA9IGV4cG9ydHMuUkVDRUlWRV9XT1JEID0gZXhwb3J0cy5SRUNFSVZFX0ZFRSA9IGV4cG9ydHMuUkVDRUlWRV9BQ0NPVU5UID0gZXhwb3J0cy5DSEFOR0VfQUNDT1VOVCA9IGV4cG9ydHMuUkVDRUlWRV9ERVZJQ0UgPSBleHBvcnRzLlJFQ0VJVkVfUEFTU1BIUkFTRSA9IGV4cG9ydHMuUkVDRUlWRV9QSU4gPSBleHBvcnRzLlJFQ0VJVkVfQ09ORklSTUFUSU9OID0gZXhwb3J0cy5SRUNFSVZFX1BFUk1JU1NJT04gPSBleHBvcnRzLlJFUVVFU1RfV09SRCA9IGV4cG9ydHMuUkVRVUVTVF9CVVRUT04gPSBleHBvcnRzLklOU1VGRklDSUVOVF9GVU5EUyA9IGV4cG9ydHMuVVBEQVRFX0NVU1RPTV9GRUUgPSBleHBvcnRzLlNFTEVDVF9GRUUgPSBleHBvcnRzLlNFTEVDVF9BQ0NPVU5UID0gZXhwb3J0cy5TRUxFQ1RfREVWSUNFID0gZXhwb3J0cy5TRVRfT1BFUkFUSU9OID0gZXhwb3J0cy5MT0FESU5HID0gZXhwb3J0cy5DT05ORUNUID0gZXhwb3J0cy5JTlZBTElEX1BBU1NQSFJBU0VfQUNUSU9OID0gZXhwb3J0cy5JTlZBTElEX1BBU1NQSFJBU0UgPSBleHBvcnRzLlJFUVVFU1RfUEFTU1BIUkFTRV9PTl9ERVZJQ0UgPSBleHBvcnRzLlJFUVVFU1RfUEFTU1BIUkFTRSA9IGV4cG9ydHMuSU5WQUxJRF9QSU4gPSBleHBvcnRzLlJFUVVFU1RfUElOID0gZXhwb3J0cy5SRVFVRVNUX0NPTkZJUk1BVElPTiA9IGV4cG9ydHMuUkVRVUVTVF9QRVJNSVNTSU9OID0gZXhwb3J0cy5DTE9TRV9VSV9XSU5ET1cgPSBleHBvcnRzLlJFUVVFU1RfVUlfV0lORE9XID0gZXhwb3J0cy5SRUNFSVZFX0JST1dTRVIgPSBleHBvcnRzLkJST1dTRVJfT1VUREFURUQgPSBleHBvcnRzLkJST1dTRVJfTk9UX1NVUFBPUlRFRCA9IGV4cG9ydHMuREVWSUNFX05FRURTX0JBQ0tVUCA9IGV4cG9ydHMuRklSTVdBUkVfTk9UX0lOU1RBTExFRCA9IGV4cG9ydHMuRklSTVdBUkVfTk9UX0NPTVBBVElCTEUgPSBleHBvcnRzLkZJUk1XQVJFX05PVF9TVVBQT1JURUQgPSBleHBvcnRzLkZJUk1XQVJFX09VVERBVEVEID0gZXhwb3J0cy5GSVJNV0FSRV9PTEQgPSBleHBvcnRzLlNFRURMRVNTID0gZXhwb3J0cy5JTklUSUFMSVpFID0gZXhwb3J0cy5SRVFVSVJFX01PREUgPSBleHBvcnRzLk5PVF9JTl9CT09UTE9BREVSID0gZXhwb3J0cy5CT09UTE9BREVSID0gZXhwb3J0cy5UUkFOU1BPUlQgPSBleHBvcnRzLklGUkFNRV9IQU5EU0hBS0UgPSB2b2lkIDA7XG52YXIgSUZSQU1FX0hBTkRTSEFLRSA9ICdpZnJhbWUtaGFuZHNoYWtlJztcbmV4cG9ydHMuSUZSQU1FX0hBTkRTSEFLRSA9IElGUkFNRV9IQU5EU0hBS0U7XG52YXIgVFJBTlNQT1JUID0gJ3VpLW5vX3RyYW5zcG9ydCc7XG5leHBvcnRzLlRSQU5TUE9SVCA9IFRSQU5TUE9SVDtcbnZhciBCT09UTE9BREVSID0gJ3VpLWRldmljZV9ib290bG9hZGVyX21vZGUnO1xuZXhwb3J0cy5CT09UTE9BREVSID0gQk9PVExPQURFUjtcbnZhciBOT1RfSU5fQk9PVExPQURFUiA9ICd1aS1kZXZpY2Vfbm90X2luX2Jvb3Rsb2FkZXJfbW9kZSc7XG5leHBvcnRzLk5PVF9JTl9CT09UTE9BREVSID0gTk9UX0lOX0JPT1RMT0FERVI7XG52YXIgUkVRVUlSRV9NT0RFID0gJ3VpLWRldmljZV9yZXF1aXJlX21vZGUnO1xuZXhwb3J0cy5SRVFVSVJFX01PREUgPSBSRVFVSVJFX01PREU7XG52YXIgSU5JVElBTElaRSA9ICd1aS1kZXZpY2Vfbm90X2luaXRpYWxpemVkJztcbmV4cG9ydHMuSU5JVElBTElaRSA9IElOSVRJQUxJWkU7XG52YXIgU0VFRExFU1MgPSAndWktZGV2aWNlX3NlZWRsZXNzJztcbmV4cG9ydHMuU0VFRExFU1MgPSBTRUVETEVTUztcbnZhciBGSVJNV0FSRV9PTEQgPSAndWktZGV2aWNlX2Zpcm13YXJlX29sZCc7XG5leHBvcnRzLkZJUk1XQVJFX09MRCA9IEZJUk1XQVJFX09MRDtcbnZhciBGSVJNV0FSRV9PVVREQVRFRCA9ICd1aS1kZXZpY2VfZmlybXdhcmVfb3V0ZGF0ZWQnO1xuZXhwb3J0cy5GSVJNV0FSRV9PVVREQVRFRCA9IEZJUk1XQVJFX09VVERBVEVEO1xudmFyIEZJUk1XQVJFX05PVF9TVVBQT1JURUQgPSAndWktZGV2aWNlX2Zpcm13YXJlX3Vuc3VwcG9ydGVkJztcbmV4cG9ydHMuRklSTVdBUkVfTk9UX1NVUFBPUlRFRCA9IEZJUk1XQVJFX05PVF9TVVBQT1JURUQ7XG52YXIgRklSTVdBUkVfTk9UX0NPTVBBVElCTEUgPSAndWktZGV2aWNlX2Zpcm13YXJlX25vdF9jb21wYXRpYmxlJztcbmV4cG9ydHMuRklSTVdBUkVfTk9UX0NPTVBBVElCTEUgPSBGSVJNV0FSRV9OT1RfQ09NUEFUSUJMRTtcbnZhciBGSVJNV0FSRV9OT1RfSU5TVEFMTEVEID0gJ3VpLWRldmljZV9maXJtd2FyZV9ub3RfaW5zdGFsbGVkJztcbmV4cG9ydHMuRklSTVdBUkVfTk9UX0lOU1RBTExFRCA9IEZJUk1XQVJFX05PVF9JTlNUQUxMRUQ7XG52YXIgREVWSUNFX05FRURTX0JBQ0tVUCA9ICd1aS1kZXZpY2VfbmVlZHNfYmFja3VwJztcbmV4cG9ydHMuREVWSUNFX05FRURTX0JBQ0tVUCA9IERFVklDRV9ORUVEU19CQUNLVVA7XG52YXIgQlJPV1NFUl9OT1RfU1VQUE9SVEVEID0gJ3VpLWJyb3dzZXJfbm90X3N1cHBvcnRlZCc7XG5leHBvcnRzLkJST1dTRVJfTk9UX1NVUFBPUlRFRCA9IEJST1dTRVJfTk9UX1NVUFBPUlRFRDtcbnZhciBCUk9XU0VSX09VVERBVEVEID0gJ3VpLWJyb3dzZXJfb3V0ZGF0ZWQnO1xuZXhwb3J0cy5CUk9XU0VSX09VVERBVEVEID0gQlJPV1NFUl9PVVREQVRFRDtcbnZhciBSRUNFSVZFX0JST1dTRVIgPSAndWktcmVjZWl2ZV9icm93c2VyJztcbmV4cG9ydHMuUkVDRUlWRV9CUk9XU0VSID0gUkVDRUlWRV9CUk9XU0VSO1xudmFyIFJFUVVFU1RfVUlfV0lORE9XID0gJ3VpLXJlcXVlc3Rfd2luZG93JztcbmV4cG9ydHMuUkVRVUVTVF9VSV9XSU5ET1cgPSBSRVFVRVNUX1VJX1dJTkRPVztcbnZhciBDTE9TRV9VSV9XSU5ET1cgPSAndWktY2xvc2Vfd2luZG93JztcbmV4cG9ydHMuQ0xPU0VfVUlfV0lORE9XID0gQ0xPU0VfVUlfV0lORE9XO1xudmFyIFJFUVVFU1RfUEVSTUlTU0lPTiA9ICd1aS1yZXF1ZXN0X3Blcm1pc3Npb24nO1xuZXhwb3J0cy5SRVFVRVNUX1BFUk1JU1NJT04gPSBSRVFVRVNUX1BFUk1JU1NJT047XG52YXIgUkVRVUVTVF9DT05GSVJNQVRJT04gPSAndWktcmVxdWVzdF9jb25maXJtYXRpb24nO1xuZXhwb3J0cy5SRVFVRVNUX0NPTkZJUk1BVElPTiA9IFJFUVVFU1RfQ09ORklSTUFUSU9OO1xudmFyIFJFUVVFU1RfUElOID0gJ3VpLXJlcXVlc3RfcGluJztcbmV4cG9ydHMuUkVRVUVTVF9QSU4gPSBSRVFVRVNUX1BJTjtcbnZhciBJTlZBTElEX1BJTiA9ICd1aS1pbnZhbGlkX3Bpbic7XG5leHBvcnRzLklOVkFMSURfUElOID0gSU5WQUxJRF9QSU47XG52YXIgUkVRVUVTVF9QQVNTUEhSQVNFID0gJ3VpLXJlcXVlc3RfcGFzc3BocmFzZSc7XG5leHBvcnRzLlJFUVVFU1RfUEFTU1BIUkFTRSA9IFJFUVVFU1RfUEFTU1BIUkFTRTtcbnZhciBSRVFVRVNUX1BBU1NQSFJBU0VfT05fREVWSUNFID0gJ3VpLXJlcXVlc3RfcGFzc3BocmFzZV9vbl9kZXZpY2UnO1xuZXhwb3J0cy5SRVFVRVNUX1BBU1NQSFJBU0VfT05fREVWSUNFID0gUkVRVUVTVF9QQVNTUEhSQVNFX09OX0RFVklDRTtcbnZhciBJTlZBTElEX1BBU1NQSFJBU0UgPSAndWktaW52YWxpZF9wYXNzcGhyYXNlJztcbmV4cG9ydHMuSU5WQUxJRF9QQVNTUEhSQVNFID0gSU5WQUxJRF9QQVNTUEhSQVNFO1xudmFyIElOVkFMSURfUEFTU1BIUkFTRV9BQ1RJT04gPSAndWktaW52YWxpZF9wYXNzcGhyYXNlX2FjdGlvbic7XG5leHBvcnRzLklOVkFMSURfUEFTU1BIUkFTRV9BQ1RJT04gPSBJTlZBTElEX1BBU1NQSFJBU0VfQUNUSU9OO1xudmFyIENPTk5FQ1QgPSAndWktY29ubmVjdCc7XG5leHBvcnRzLkNPTk5FQ1QgPSBDT05ORUNUO1xudmFyIExPQURJTkcgPSAndWktbG9hZGluZyc7XG5leHBvcnRzLkxPQURJTkcgPSBMT0FESU5HO1xudmFyIFNFVF9PUEVSQVRJT04gPSAndWktc2V0X29wZXJhdGlvbic7XG5leHBvcnRzLlNFVF9PUEVSQVRJT04gPSBTRVRfT1BFUkFUSU9OO1xudmFyIFNFTEVDVF9ERVZJQ0UgPSAndWktc2VsZWN0X2RldmljZSc7XG5leHBvcnRzLlNFTEVDVF9ERVZJQ0UgPSBTRUxFQ1RfREVWSUNFO1xudmFyIFNFTEVDVF9BQ0NPVU5UID0gJ3VpLXNlbGVjdF9hY2NvdW50JztcbmV4cG9ydHMuU0VMRUNUX0FDQ09VTlQgPSBTRUxFQ1RfQUNDT1VOVDtcbnZhciBTRUxFQ1RfRkVFID0gJ3VpLXNlbGVjdF9mZWUnO1xuZXhwb3J0cy5TRUxFQ1RfRkVFID0gU0VMRUNUX0ZFRTtcbnZhciBVUERBVEVfQ1VTVE9NX0ZFRSA9ICd1aS11cGRhdGVfY3VzdG9tX2ZlZSc7XG5leHBvcnRzLlVQREFURV9DVVNUT01fRkVFID0gVVBEQVRFX0NVU1RPTV9GRUU7XG52YXIgSU5TVUZGSUNJRU5UX0ZVTkRTID0gJ3VpLWluc3VmZmljaWVudF9mdW5kcyc7XG5leHBvcnRzLklOU1VGRklDSUVOVF9GVU5EUyA9IElOU1VGRklDSUVOVF9GVU5EUztcbnZhciBSRVFVRVNUX0JVVFRPTiA9ICd1aS1idXR0b24nO1xuZXhwb3J0cy5SRVFVRVNUX0JVVFRPTiA9IFJFUVVFU1RfQlVUVE9OO1xudmFyIFJFUVVFU1RfV09SRCA9ICd1aS1yZXF1ZXN0X3dvcmQnO1xuZXhwb3J0cy5SRVFVRVNUX1dPUkQgPSBSRVFVRVNUX1dPUkQ7XG52YXIgUkVDRUlWRV9QRVJNSVNTSU9OID0gJ3VpLXJlY2VpdmVfcGVybWlzc2lvbic7XG5leHBvcnRzLlJFQ0VJVkVfUEVSTUlTU0lPTiA9IFJFQ0VJVkVfUEVSTUlTU0lPTjtcbnZhciBSRUNFSVZFX0NPTkZJUk1BVElPTiA9ICd1aS1yZWNlaXZlX2NvbmZpcm1hdGlvbic7XG5leHBvcnRzLlJFQ0VJVkVfQ09ORklSTUFUSU9OID0gUkVDRUlWRV9DT05GSVJNQVRJT047XG52YXIgUkVDRUlWRV9QSU4gPSAndWktcmVjZWl2ZV9waW4nO1xuZXhwb3J0cy5SRUNFSVZFX1BJTiA9IFJFQ0VJVkVfUElOO1xudmFyIFJFQ0VJVkVfUEFTU1BIUkFTRSA9ICd1aS1yZWNlaXZlX3Bhc3NwaHJhc2UnO1xuZXhwb3J0cy5SRUNFSVZFX1BBU1NQSFJBU0UgPSBSRUNFSVZFX1BBU1NQSFJBU0U7XG52YXIgUkVDRUlWRV9ERVZJQ0UgPSAndWktcmVjZWl2ZV9kZXZpY2UnO1xuZXhwb3J0cy5SRUNFSVZFX0RFVklDRSA9IFJFQ0VJVkVfREVWSUNFO1xudmFyIENIQU5HRV9BQ0NPVU5UID0gJ3VpLWNoYW5nZV9hY2NvdW50JztcbmV4cG9ydHMuQ0hBTkdFX0FDQ09VTlQgPSBDSEFOR0VfQUNDT1VOVDtcbnZhciBSRUNFSVZFX0FDQ09VTlQgPSAndWktcmVjZWl2ZV9hY2NvdW50JztcbmV4cG9ydHMuUkVDRUlWRV9BQ0NPVU5UID0gUkVDRUlWRV9BQ0NPVU5UO1xudmFyIFJFQ0VJVkVfRkVFID0gJ3VpLXJlY2VpdmVfZmVlJztcbmV4cG9ydHMuUkVDRUlWRV9GRUUgPSBSRUNFSVZFX0ZFRTtcbnZhciBSRUNFSVZFX1dPUkQgPSAndWktcmVjZWl2ZV93b3JkJztcbmV4cG9ydHMuUkVDRUlWRV9XT1JEID0gUkVDRUlWRV9XT1JEO1xudmFyIENIQU5HRV9TRVRUSU5HUyA9ICd1aS1jaGFuZ2Vfc2V0dGluZ3MnO1xuZXhwb3J0cy5DSEFOR0VfU0VUVElOR1MgPSBDSEFOR0VfU0VUVElOR1M7XG52YXIgQ1VTVE9NX01FU1NBR0VfUkVRVUVTVCA9ICd1aS1jdXN0b21fcmVxdWVzdCc7XG5leHBvcnRzLkNVU1RPTV9NRVNTQUdFX1JFUVVFU1QgPSBDVVNUT01fTUVTU0FHRV9SRVFVRVNUO1xudmFyIENVU1RPTV9NRVNTQUdFX1JFU1BPTlNFID0gJ3VpLWN1c3RvbV9yZXNwb25zZSc7XG5leHBvcnRzLkNVU1RPTV9NRVNTQUdFX1JFU1BPTlNFID0gQ1VTVE9NX01FU1NBR0VfUkVTUE9OU0U7XG52YXIgTE9HSU5fQ0hBTExFTkdFX1JFUVVFU1QgPSAndWktbG9naW5fY2hhbGxlbmdlX3JlcXVlc3QnO1xuZXhwb3J0cy5MT0dJTl9DSEFMTEVOR0VfUkVRVUVTVCA9IExPR0lOX0NIQUxMRU5HRV9SRVFVRVNUO1xudmFyIExPR0lOX0NIQUxMRU5HRV9SRVNQT05TRSA9ICd1aS1sb2dpbl9jaGFsbGVuZ2VfcmVzcG9uc2UnO1xuZXhwb3J0cy5MT0dJTl9DSEFMTEVOR0VfUkVTUE9OU0UgPSBMT0dJTl9DSEFMTEVOR0VfUkVTUE9OU0U7XG52YXIgQlVORExFX1BST0dSRVNTID0gJ3VpLWJ1bmRsZV9wcm9ncmVzcyc7XG5leHBvcnRzLkJVTkRMRV9QUk9HUkVTUyA9IEJVTkRMRV9QUk9HUkVTUztcbnZhciBBRERSRVNTX1ZBTElEQVRJT04gPSAndWktYWRkcmVzc192YWxpZGF0aW9uJztcbmV4cG9ydHMuQUREUkVTU19WQUxJREFUSU9OID0gQUREUkVTU19WQUxJREFUSU9OOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/constants/ui.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/data/ConnectSettings.js":
/*!*****************************************************************!*\
!*** ./node_modules/trezor-connect/lib/data/ConnectSettings.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.parse = exports.DEFAULT_PRIORITY = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\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(source, true).forEach(function (key) { (0, _defineProperty2[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/*\n * Initial settings for connect.\n * It could be changed by passing values into TrezorConnect.init(...) method\n */\nvar VERSION = '7.0.5';\nvar versionN = VERSION.split('.').map(function (s) {\n return parseInt(s);\n});\nvar DIRECTORY = \"\" + versionN[0] + (versionN[1] > 0 ? \".\" + versionN[1] : '') + \"/\";\nvar DEFAULT_DOMAIN = \"https://connect.trezor.io/\" + DIRECTORY;\nvar DEFAULT_PRIORITY = 2;\nexports.DEFAULT_PRIORITY = DEFAULT_PRIORITY;\nvar initialSettings = {\n configSrc: 'data/config.json',\n // constant\n version: VERSION,\n // constant\n debug: false,\n origin: null,\n priority: DEFAULT_PRIORITY,\n trustedHost: false,\n connectSrc: DEFAULT_DOMAIN,\n iframeSrc: DEFAULT_DOMAIN + \"iframe.html\",\n popup: true,\n popupSrc: DEFAULT_DOMAIN + \"popup.html\",\n webusbSrc: DEFAULT_DOMAIN + \"webusb.html\",\n transportReconnect: false,\n webusb: true,\n pendingTransportEvent: true,\n supportedBrowser: typeof navigator !== 'undefined' ? !/Trident|MSIE/.test(navigator.userAgent) : true,\n extension: null,\n manifest: null\n};\nvar currentSettings = initialSettings;\n\nvar parseManifest = function parseManifest(manifest) {\n if (typeof manifest.email !== 'string') {\n return null;\n }\n\n if (typeof manifest.appUrl !== 'string') {\n return null;\n }\n\n return {\n email: manifest.email,\n appUrl: manifest.appUrl\n };\n};\n\nvar parse = function parse(input) {\n if (!input) return currentSettings;\n\n var settings = _objectSpread({}, currentSettings);\n\n if (input.hasOwnProperty('debug')) {\n if (Array.isArray(input)) {// enable log with prefix\n }\n\n if (typeof input.debug === 'boolean') {\n settings.debug = input.debug;\n } else if (typeof input.debug === 'string') {\n settings.debug = input.debug === 'true';\n }\n }\n\n if (typeof input.connectSrc === 'string') {\n // TODO: escape string, validate url\n settings.connectSrc = input.connectSrc;\n } else if (typeof window !== 'undefined' && typeof window.__TREZOR_CONNECT_SRC === 'string') {\n settings.connectSrc = window.__TREZOR_CONNECT_SRC;\n }\n\n settings.iframeSrc = settings.connectSrc + \"iframe.html\";\n settings.popupSrc = settings.connectSrc + \"popup.html\";\n settings.webusbSrc = settings.connectSrc + \"webusb.html\";\n\n if (typeof input.transportReconnect === 'boolean') {\n settings.transportReconnect = input.transportReconnect;\n }\n\n if (typeof input.webusb === 'boolean') {\n settings.webusb = input.webusb;\n }\n\n if (typeof input.popup === 'boolean') {\n settings.popup = input.popup;\n }\n\n if (typeof input.pendingTransportEvent === 'boolean') {\n settings.pendingTransportEvent = input.pendingTransportEvent;\n } // local files\n\n\n if (typeof window !== 'undefined' && window.location.protocol === 'file:') {\n settings.origin = \"file://\" + window.location.pathname;\n settings.webusb = false;\n }\n\n if (typeof input.extension === 'string') {\n settings.extension = input.extension;\n }\n\n if (typeof input.manifest === 'object') {\n settings.manifest = parseManifest(input.manifest);\n }\n\n currentSettings = settings;\n return currentSettings;\n};\n\nexports.parse = parse;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9kYXRhL0Nvbm5lY3RTZXR0aW5ncy5qcz8zNDYwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkY7QUFDQTs7QUFFQSw4Q0FBOEMsbUJBQU8sQ0FBQyxzR0FBdUM7O0FBRTdGLDBDQUEwQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsZ0VBQWdFLEVBQUUsRUFBRSxnQ0FBZ0MsRUFBRSxhQUFhOztBQUVuVixnQ0FBZ0MsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLCtDQUErQyw0REFBNEQsRUFBRSxFQUFFLEVBQUUsNkNBQTZDLDJFQUEyRSxFQUFFLE9BQU8seUNBQXlDLGtGQUFrRixFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWU7O0FBRXJoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsaUNBQWlDOztBQUVqQztBQUNBLCtCQUErQjtBQUMvQjs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7OztBQUdIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9kYXRhL0Nvbm5lY3RTZXR0aW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMucGFyc2UgPSBleHBvcnRzLkRFRkFVTFRfUFJJT1JJVFkgPSB2b2lkIDA7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhzb3VyY2UsIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG4vKlxuICogSW5pdGlhbCBzZXR0aW5ncyBmb3IgY29ubmVjdC5cbiAqIEl0IGNvdWxkIGJlIGNoYW5nZWQgYnkgcGFzc2luZyB2YWx1ZXMgaW50byBUcmV6b3JDb25uZWN0LmluaXQoLi4uKSBtZXRob2RcbiAqL1xudmFyIFZFUlNJT04gPSAnNy4wLjUnO1xudmFyIHZlcnNpb25OID0gVkVSU0lPTi5zcGxpdCgnLicpLm1hcChmdW5jdGlvbiAocykge1xuICByZXR1cm4gcGFyc2VJbnQocyk7XG59KTtcbnZhciBESVJFQ1RPUlkgPSBcIlwiICsgdmVyc2lvbk5bMF0gKyAodmVyc2lvbk5bMV0gPiAwID8gXCIuXCIgKyB2ZXJzaW9uTlsxXSA6ICcnKSArIFwiL1wiO1xudmFyIERFRkFVTFRfRE9NQUlOID0gXCJodHRwczovL2Nvbm5lY3QudHJlem9yLmlvL1wiICsgRElSRUNUT1JZO1xudmFyIERFRkFVTFRfUFJJT1JJVFkgPSAyO1xuZXhwb3J0cy5ERUZBVUxUX1BSSU9SSVRZID0gREVGQVVMVF9QUklPUklUWTtcbnZhciBpbml0aWFsU2V0dGluZ3MgPSB7XG4gIGNvbmZpZ1NyYzogJ2RhdGEvY29uZmlnLmpzb24nLFxuICAvLyBjb25zdGFudFxuICB2ZXJzaW9uOiBWRVJTSU9OLFxuICAvLyBjb25zdGFudFxuICBkZWJ1ZzogZmFsc2UsXG4gIG9yaWdpbjogbnVsbCxcbiAgcHJpb3JpdHk6IERFRkFVTFRfUFJJT1JJVFksXG4gIHRydXN0ZWRIb3N0OiBmYWxzZSxcbiAgY29ubmVjdFNyYzogREVGQVVMVF9ET01BSU4sXG4gIGlmcmFtZVNyYzogREVGQVVMVF9ET01BSU4gKyBcImlmcmFtZS5odG1sXCIsXG4gIHBvcHVwOiB0cnVlLFxuICBwb3B1cFNyYzogREVGQVVMVF9ET01BSU4gKyBcInBvcHVwLmh0bWxcIixcbiAgd2VidXNiU3JjOiBERUZBVUxUX0RPTUFJTiArIFwid2VidXNiLmh0bWxcIixcbiAgdHJhbnNwb3J0UmVjb25uZWN0OiBmYWxzZSxcbiAgd2VidXNiOiB0cnVlLFxuICBwZW5kaW5nVHJhbnNwb3J0RXZlbnQ6IHRydWUsXG4gIHN1cHBvcnRlZEJyb3dzZXI6IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gIS9UcmlkZW50fE1TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB0cnVlLFxuICBleHRlbnNpb246IG51bGwsXG4gIG1hbmlmZXN0OiBudWxsXG59O1xudmFyIGN1cnJlbnRTZXR0aW5ncyA9IGluaXRpYWxTZXR0aW5ncztcblxudmFyIHBhcnNlTWFuaWZlc3QgPSBmdW5jdGlvbiBwYXJzZU1hbmlmZXN0KG1hbmlmZXN0KSB7XG4gIGlmICh0eXBlb2YgbWFuaWZlc3QuZW1haWwgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIG1hbmlmZXN0LmFwcFVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW1haWw6IG1hbmlmZXN0LmVtYWlsLFxuICAgIGFwcFVybDogbWFuaWZlc3QuYXBwVXJsXG4gIH07XG59O1xuXG52YXIgcGFyc2UgPSBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICBpZiAoIWlucHV0KSByZXR1cm4gY3VycmVudFNldHRpbmdzO1xuXG4gIHZhciBzZXR0aW5ncyA9IF9vYmplY3RTcHJlYWQoe30sIGN1cnJlbnRTZXR0aW5ncyk7XG5cbiAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdkZWJ1ZycpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7Ly8gZW5hYmxlIGxvZyB3aXRoIHByZWZpeFxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5wdXQuZGVidWcgPT09ICdib29sZWFuJykge1xuICAgICAgc2V0dGluZ3MuZGVidWcgPSBpbnB1dC5kZWJ1ZztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dC5kZWJ1ZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNldHRpbmdzLmRlYnVnID0gaW5wdXQuZGVidWcgPT09ICd0cnVlJztcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGlucHV0LmNvbm5lY3RTcmMgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gVE9ETzogZXNjYXBlIHN0cmluZywgdmFsaWRhdGUgdXJsXG4gICAgc2V0dGluZ3MuY29ubmVjdFNyYyA9IGlucHV0LmNvbm5lY3RTcmM7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5fX1RSRVpPUl9DT05ORUNUX1NSQyA9PT0gJ3N0cmluZycpIHtcbiAgICBzZXR0aW5ncy5jb25uZWN0U3JjID0gd2luZG93Ll9fVFJFWk9SX0NPTk5FQ1RfU1JDO1xuICB9XG5cbiAgc2V0dGluZ3MuaWZyYW1lU3JjID0gc2V0dGluZ3MuY29ubmVjdFNyYyArIFwiaWZyYW1lLmh0bWxcIjtcbiAgc2V0dGluZ3MucG9wdXBTcmMgPSBzZXR0aW5ncy5jb25uZWN0U3JjICsgXCJwb3B1cC5odG1sXCI7XG4gIHNldHRpbmdzLndlYnVzYlNyYyA9IHNldHRpbmdzLmNvbm5lY3RTcmMgKyBcIndlYnVzYi5odG1sXCI7XG5cbiAgaWYgKHR5cGVvZiBpbnB1dC50cmFuc3BvcnRSZWNvbm5lY3QgPT09ICdib29sZWFuJykge1xuICAgIHNldHRpbmdzLnRyYW5zcG9ydFJlY29ubmVjdCA9IGlucHV0LnRyYW5zcG9ydFJlY29ubmVjdDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5wdXQud2VidXNiID09PSAnYm9vbGVhbicpIHtcbiAgICBzZXR0aW5ncy53ZWJ1c2IgPSBpbnB1dC53ZWJ1c2I7XG4gIH1cblxuICBpZiAodHlwZW9mIGlucHV0LnBvcHVwID09PSAnYm9vbGVhbicpIHtcbiAgICBzZXR0aW5ncy5wb3B1cCA9IGlucHV0LnBvcHVwO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBpbnB1dC5wZW5kaW5nVHJhbnNwb3J0RXZlbnQgPT09ICdib29sZWFuJykge1xuICAgIHNldHRpbmdzLnBlbmRpbmdUcmFuc3BvcnRFdmVudCA9IGlucHV0LnBlbmRpbmdUcmFuc3BvcnRFdmVudDtcbiAgfSAvLyBsb2NhbCBmaWxlc1xuXG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2ZpbGU6Jykge1xuICAgIHNldHRpbmdzLm9yaWdpbiA9IFwiZmlsZTovL1wiICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgIHNldHRpbmdzLndlYnVzYiA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBpbnB1dC5leHRlbnNpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgc2V0dGluZ3MuZXh0ZW5zaW9uID0gaW5wdXQuZXh0ZW5zaW9uO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBpbnB1dC5tYW5pZmVzdCA9PT0gJ29iamVjdCcpIHtcbiAgICBzZXR0aW5ncy5tYW5pZmVzdCA9IHBhcnNlTWFuaWZlc3QoaW5wdXQubWFuaWZlc3QpO1xuICB9XG5cbiAgY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3M7XG4gIHJldHVybiBjdXJyZW50U2V0dGluZ3M7XG59O1xuXG5leHBvcnRzLnBhcnNlID0gcGFyc2U7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/data/ConnectSettings.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/iframe/builder.js":
/*!***********************************************************!*\
!*** ./node_modules/trezor-connect/lib/iframe/builder.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.clearTimeout = exports.dispose = exports.postMessage = exports.init = exports.messagePromises = exports.error = exports.timeout = exports.initPromise = exports.origin = exports.instance = void 0;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _deferred = __webpack_require__(/*! ../utils/deferred */ \"./node_modules/trezor-connect/lib/utils/deferred.js\");\n\nvar _ui = __webpack_require__(/*! ../constants/ui */ \"./node_modules/trezor-connect/lib/constants/ui.js\");\n\nvar _errors = __webpack_require__(/*! ../constants/errors */ \"./node_modules/trezor-connect/lib/constants/errors.js\");\n\nvar _inlineStyles = _interopRequireDefault(__webpack_require__(/*! ./inline-styles */ \"./node_modules/trezor-connect/lib/iframe/inline-styles.js\"));\n\nvar instance;\nexports.instance = instance;\nvar origin;\nexports.origin = origin;\nvar initPromise = (0, _deferred.create)();\nexports.initPromise = initPromise;\nvar timeout = 0;\nexports.timeout = timeout;\nvar error;\nexports.error = error;\nvar _messageID = 0; // every postMessage to iframe has its own promise to resolve\n\nvar messagePromises = {};\nexports.messagePromises = messagePromises;\n\nvar init =\n/*#__PURE__*/\nfunction () {\n var _ref = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(settings) {\n var existedFrame, manifestString, manifest, src, iframeSrcHost, onLoad;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n existedFrame = document.getElementById('trezorconnect');\n\n if (existedFrame) {\n exports.instance = instance = existedFrame;\n } else {\n exports.instance = instance = document.createElement('iframe');\n instance.frameBorder = '0';\n instance.width = '0px';\n instance.height = '0px';\n instance.style.position = 'absolute';\n instance.style.display = 'none';\n instance.style.border = '0px';\n instance.style.width = '0px';\n instance.style.height = '0px';\n instance.id = 'trezorconnect';\n }\n\n manifestString = settings.manifest ? JSON.stringify(settings.manifest) : 'undefined'; // note: btoa(undefined) === btoa('undefined') === \"dW5kZWZpbmVk\"\n\n manifest = \"&version=\" + settings.version + \"&manifest=\" + encodeURIComponent(btoa(JSON.stringify(manifestString)));\n src = settings.iframeSrc + \"?\" + Date.now() + manifest;\n instance.setAttribute('src', src);\n\n if (settings.webusb) {\n instance.setAttribute('allow', 'usb');\n } // eslint-disable-next-line no-irregular-whitespace, no-useless-escape\n\n\n iframeSrcHost = instance.src.match(/^.+\\:\\/\\/[^\\/]+/);\n\n if (iframeSrcHost && iframeSrcHost.length > 0) {\n exports.origin = origin = iframeSrcHost[0];\n }\n\n exports.timeout = timeout = window.setTimeout(function () {\n initPromise.reject(_errors.IFRAME_TIMEOUT);\n }, 10000);\n\n onLoad = function onLoad() {\n if (!instance) {\n initPromise.reject(_errors.IFRAME_BLOCKED);\n return;\n }\n\n try {\n // if hosting page is able to access cross-origin location it means that the iframe is not loaded\n var iframeOrigin = instance.contentWindow.location.origin;\n\n if (!iframeOrigin || iframeOrigin === 'null') {\n // eslint-disable-next-line no-use-before-define\n handleIframeBlocked();\n return;\n }\n } catch (e) {// empty\n }\n\n var extension; // $FlowIssue chrome is not declared outside\n\n if (typeof chrome !== 'undefined' && chrome.runtime && typeof chrome.runtime.onConnect !== 'undefined') {\n chrome.runtime.onConnect.addListener(function () {});\n extension = chrome.runtime.id;\n }\n\n instance.contentWindow.postMessage({\n type: _ui.IFRAME_HANDSHAKE,\n payload: {\n settings: settings,\n extension: extension\n }\n }, origin);\n instance.onload = undefined;\n }; // IE hack\n\n\n if (instance.attachEvent) {\n instance.attachEvent('onload', onLoad);\n } else {\n instance.onload = onLoad;\n } // inject iframe into host document body\n\n\n if (document.body) {\n document.body.appendChild(instance); // eslint-disable-next-line no-use-before-define\n\n injectStyleSheet();\n }\n\n _context.prev = 13;\n _context.next = 16;\n return initPromise.promise;\n\n case 16:\n _context.next = 21;\n break;\n\n case 18:\n _context.prev = 18;\n _context.t0 = _context[\"catch\"](13);\n throw _context.t0.message || _context.t0;\n\n case 21:\n _context.prev = 21;\n window.clearTimeout(timeout);\n exports.timeout = timeout = 0;\n return _context.finish(21);\n\n case 25:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[13, 18, 21, 25]]);\n }));\n\n return function init(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.init = init;\n\nvar injectStyleSheet = function injectStyleSheet() {\n if (!instance) {\n throw _errors.IFRAME_BLOCKED;\n }\n\n var doc = instance.ownerDocument;\n var head = doc.head || doc.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.setAttribute('id', 'TrezorConnectStylesheet'); // $FlowIssue\n\n if (style.styleSheet) {\n // IE\n // $FlowIssue\n style.styleSheet.cssText = _inlineStyles[\"default\"];\n } else {\n style.appendChild(document.createTextNode(_inlineStyles[\"default\"]));\n }\n\n head.append(style);\n};\n\nvar handleIframeBlocked = function handleIframeBlocked() {\n window.clearTimeout(timeout);\n exports.error = error = _errors.IFRAME_BLOCKED.message; // eslint-disable-next-line no-use-before-define\n\n dispose();\n initPromise.reject(_errors.IFRAME_BLOCKED);\n}; // post messages to iframe\n\n\nvar postMessage = function postMessage(message, usePromise) {\n if (usePromise === void 0) {\n usePromise = true;\n }\n\n if (!instance) {\n throw _errors.IFRAME_BLOCKED;\n }\n\n if (usePromise) {\n _messageID++;\n message.id = _messageID;\n messagePromises[_messageID] = (0, _deferred.create)();\n instance.contentWindow.postMessage(message, origin);\n return messagePromises[_messageID].promise;\n }\n\n instance.contentWindow.postMessage(message, origin);\n return null;\n};\n\nexports.postMessage = postMessage;\n\nvar dispose = function dispose() {\n if (instance && instance.parentNode) {\n try {\n instance.parentNode.removeChild(instance);\n } catch (error) {// do nothing\n }\n }\n\n exports.instance = instance = null;\n exports.timeout = timeout = 0;\n};\n\nexports.dispose = dispose;\n\nvar clearTimeout = function clearTimeout() {\n window.clearTimeout(timeout);\n};\n\nexports.clearTimeout = clearTimeout;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9pZnJhbWUvYnVpbGRlci5qcz81YmE4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkY7QUFDQTs7QUFFQSwwQ0FBMEMsbUJBQU8sQ0FBQyxzRkFBNEI7O0FBRTlFLGdEQUFnRCxtQkFBTyxDQUFDLDBHQUF5Qzs7QUFFakcsZ0JBQWdCLG1CQUFPLENBQUMsOEVBQW1COztBQUUzQyxVQUFVLG1CQUFPLENBQUMsMEVBQWlCOztBQUVuQyxjQUFjLG1CQUFPLENBQUMsa0ZBQXFCOztBQUUzQywyQ0FBMkMsbUJBQU8sQ0FBQyxrRkFBaUI7O0FBRXBFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1COztBQUVuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUdBQWlHOztBQUVqRztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7OztBQUdiOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxZQUFZO0FBQzNCOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQSxtRUFBbUU7QUFDbkU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQSxjQUFjOzs7QUFHZDtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTs7O0FBR2I7QUFDQSxrREFBa0Q7O0FBRWxEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHlEQUF5RDs7QUFFekQ7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLGdCQUFnQjtBQUNyQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL2lmcmFtZS9idWlsZGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuY2xlYXJUaW1lb3V0ID0gZXhwb3J0cy5kaXNwb3NlID0gZXhwb3J0cy5wb3N0TWVzc2FnZSA9IGV4cG9ydHMuaW5pdCA9IGV4cG9ydHMubWVzc2FnZVByb21pc2VzID0gZXhwb3J0cy5lcnJvciA9IGV4cG9ydHMudGltZW91dCA9IGV4cG9ydHMuaW5pdFByb21pc2UgPSBleHBvcnRzLm9yaWdpbiA9IGV4cG9ydHMuaW5zdGFuY2UgPSB2b2lkIDA7XG5cbnZhciBfcmVnZW5lcmF0b3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvclwiKSk7XG5cbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xuXG52YXIgX2RlZmVycmVkID0gcmVxdWlyZShcIi4uL3V0aWxzL2RlZmVycmVkXCIpO1xuXG52YXIgX3VpID0gcmVxdWlyZShcIi4uL2NvbnN0YW50cy91aVwiKTtcblxudmFyIF9lcnJvcnMgPSByZXF1aXJlKFwiLi4vY29uc3RhbnRzL2Vycm9yc1wiKTtcblxudmFyIF9pbmxpbmVTdHlsZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2lubGluZS1zdHlsZXNcIikpO1xuXG52YXIgaW5zdGFuY2U7XG5leHBvcnRzLmluc3RhbmNlID0gaW5zdGFuY2U7XG52YXIgb3JpZ2luO1xuZXhwb3J0cy5vcmlnaW4gPSBvcmlnaW47XG52YXIgaW5pdFByb21pc2UgPSAoMCwgX2RlZmVycmVkLmNyZWF0ZSkoKTtcbmV4cG9ydHMuaW5pdFByb21pc2UgPSBpbml0UHJvbWlzZTtcbnZhciB0aW1lb3V0ID0gMDtcbmV4cG9ydHMudGltZW91dCA9IHRpbWVvdXQ7XG52YXIgZXJyb3I7XG5leHBvcnRzLmVycm9yID0gZXJyb3I7XG52YXIgX21lc3NhZ2VJRCA9IDA7IC8vIGV2ZXJ5IHBvc3RNZXNzYWdlIHRvIGlmcmFtZSBoYXMgaXRzIG93biBwcm9taXNlIHRvIHJlc29sdmVcblxudmFyIG1lc3NhZ2VQcm9taXNlcyA9IHt9O1xuZXhwb3J0cy5tZXNzYWdlUHJvbWlzZXMgPSBtZXNzYWdlUHJvbWlzZXM7XG5cbnZhciBpbml0ID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoc2V0dGluZ3MpIHtcbiAgICB2YXIgZXhpc3RlZEZyYW1lLCBtYW5pZmVzdFN0cmluZywgbWFuaWZlc3QsIHNyYywgaWZyYW1lU3JjSG9zdCwgb25Mb2FkO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBleGlzdGVkRnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlem9yY29ubmVjdCcpO1xuXG4gICAgICAgICAgICBpZiAoZXhpc3RlZEZyYW1lKSB7XG4gICAgICAgICAgICAgIGV4cG9ydHMuaW5zdGFuY2UgPSBpbnN0YW5jZSA9IGV4aXN0ZWRGcmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGV4cG9ydHMuaW5zdGFuY2UgPSBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICAgICAgICBpbnN0YW5jZS5mcmFtZUJvcmRlciA9ICcwJztcbiAgICAgICAgICAgICAgaW5zdGFuY2Uud2lkdGggPSAnMHB4JztcbiAgICAgICAgICAgICAgaW5zdGFuY2UuaGVpZ2h0ID0gJzBweCc7XG4gICAgICAgICAgICAgIGluc3RhbmNlLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgICAgICAgaW5zdGFuY2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgaW5zdGFuY2Uuc3R5bGUuYm9yZGVyID0gJzBweCc7XG4gICAgICAgICAgICAgIGluc3RhbmNlLnN0eWxlLndpZHRoID0gJzBweCc7XG4gICAgICAgICAgICAgIGluc3RhbmNlLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgICAgICAgICAgICBpbnN0YW5jZS5pZCA9ICd0cmV6b3Jjb25uZWN0JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFuaWZlc3RTdHJpbmcgPSBzZXR0aW5ncy5tYW5pZmVzdCA/IEpTT04uc3RyaW5naWZ5KHNldHRpbmdzLm1hbmlmZXN0KSA6ICd1bmRlZmluZWQnOyAvLyBub3RlOiBidG9hKHVuZGVmaW5lZCkgPT09IGJ0b2EoJ3VuZGVmaW5lZCcpID09PSBcImRXNWtaV1pwYm1Wa1wiXG5cbiAgICAgICAgICAgIG1hbmlmZXN0ID0gXCImdmVyc2lvbj1cIiArIHNldHRpbmdzLnZlcnNpb24gKyBcIiZtYW5pZmVzdD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChidG9hKEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0U3RyaW5nKSkpO1xuICAgICAgICAgICAgc3JjID0gc2V0dGluZ3MuaWZyYW1lU3JjICsgXCI/XCIgKyBEYXRlLm5vdygpICsgbWFuaWZlc3Q7XG4gICAgICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIHNyYyk7XG5cbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy53ZWJ1c2IpIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdhbGxvdycsICd1c2InKTtcbiAgICAgICAgICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWlycmVndWxhci13aGl0ZXNwYWNlLCBuby11c2VsZXNzLWVzY2FwZVxuXG5cbiAgICAgICAgICAgIGlmcmFtZVNyY0hvc3QgPSBpbnN0YW5jZS5zcmMubWF0Y2goL14uK1xcOlxcL1xcL1teXFwvXSsvKTtcblxuICAgICAgICAgICAgaWYgKGlmcmFtZVNyY0hvc3QgJiYgaWZyYW1lU3JjSG9zdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGV4cG9ydHMub3JpZ2luID0gb3JpZ2luID0gaWZyYW1lU3JjSG9zdFswXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwb3J0cy50aW1lb3V0ID0gdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgaW5pdFByb21pc2UucmVqZWN0KF9lcnJvcnMuSUZSQU1FX1RJTUVPVVQpO1xuICAgICAgICAgICAgfSwgMTAwMDApO1xuXG4gICAgICAgICAgICBvbkxvYWQgPSBmdW5jdGlvbiBvbkxvYWQoKSB7XG4gICAgICAgICAgICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBpbml0UHJvbWlzZS5yZWplY3QoX2Vycm9ycy5JRlJBTUVfQkxPQ0tFRCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBpZiBob3N0aW5nIHBhZ2UgaXMgYWJsZSB0byBhY2Nlc3MgY3Jvc3Mtb3JpZ2luIGxvY2F0aW9uIGl0IG1lYW5zIHRoYXQgdGhlIGlmcmFtZSBpcyBub3QgbG9hZGVkXG4gICAgICAgICAgICAgICAgdmFyIGlmcmFtZU9yaWdpbiA9IGluc3RhbmNlLmNvbnRlbnRXaW5kb3cubG9jYXRpb24ub3JpZ2luO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpZnJhbWVPcmlnaW4gfHwgaWZyYW1lT3JpZ2luID09PSAnbnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgICAgICAgICAgaGFuZGxlSWZyYW1lQmxvY2tlZCgpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgey8vIGVtcHR5XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB2YXIgZXh0ZW5zaW9uOyAvLyAkRmxvd0lzc3VlIGNocm9tZSBpcyBub3QgZGVjbGFyZWQgb3V0c2lkZVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hyb21lICE9PSAndW5kZWZpbmVkJyAmJiBjaHJvbWUucnVudGltZSAmJiB0eXBlb2YgY2hyb21lLnJ1bnRpbWUub25Db25uZWN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNocm9tZS5ydW50aW1lLm9uQ29ubmVjdC5hZGRMaXN0ZW5lcihmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gY2hyb21lLnJ1bnRpbWUuaWQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpbnN0YW5jZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBfdWkuSUZSQU1FX0hBTkRTSEFLRSxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgICBleHRlbnNpb246IGV4dGVuc2lvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSwgb3JpZ2luKTtcbiAgICAgICAgICAgICAgaW5zdGFuY2Uub25sb2FkID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfTsgLy8gSUUgaGFja1xuXG5cbiAgICAgICAgICAgIGlmIChpbnN0YW5jZS5hdHRhY2hFdmVudCkge1xuICAgICAgICAgICAgICBpbnN0YW5jZS5hdHRhY2hFdmVudCgnb25sb2FkJywgb25Mb2FkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGluc3RhbmNlLm9ubG9hZCA9IG9uTG9hZDtcbiAgICAgICAgICAgIH0gLy8gaW5qZWN0IGlmcmFtZSBpbnRvIGhvc3QgZG9jdW1lbnQgYm9keVxuXG5cbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcblxuICAgICAgICAgICAgICBpbmplY3RTdHlsZVNoZWV0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxMztcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxNjtcbiAgICAgICAgICAgIHJldHVybiBpbml0UHJvbWlzZS5wcm9taXNlO1xuXG4gICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyMTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxODtcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgxMyk7XG4gICAgICAgICAgICB0aHJvdyBfY29udGV4dC50MC5tZXNzYWdlIHx8IF9jb250ZXh0LnQwO1xuXG4gICAgICAgICAgY2FzZSAyMTpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAyMTtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICBleHBvcnRzLnRpbWVvdXQgPSB0aW1lb3V0ID0gMDtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5maW5pc2goMjEpO1xuXG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZSwgbnVsbCwgW1sxMywgMTgsIDIxLCAyNV1dKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpbml0KF94KSB7XG4gICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKTtcblxuZXhwb3J0cy5pbml0ID0gaW5pdDtcblxudmFyIGluamVjdFN0eWxlU2hlZXQgPSBmdW5jdGlvbiBpbmplY3RTdHlsZVNoZWV0KCkge1xuICBpZiAoIWluc3RhbmNlKSB7XG4gICAgdGhyb3cgX2Vycm9ycy5JRlJBTUVfQkxPQ0tFRDtcbiAgfVxuXG4gIHZhciBkb2MgPSBpbnN0YW5jZS5vd25lckRvY3VtZW50O1xuICB2YXIgaGVhZCA9IGRvYy5oZWFkIHx8IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgc3R5bGUuc2V0QXR0cmlidXRlKCdpZCcsICdUcmV6b3JDb25uZWN0U3R5bGVzaGVldCcpOyAvLyAkRmxvd0lzc3VlXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICAvLyBJRVxuICAgIC8vICRGbG93SXNzdWVcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBfaW5saW5lU3R5bGVzW1wiZGVmYXVsdFwiXTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShfaW5saW5lU3R5bGVzW1wiZGVmYXVsdFwiXSkpO1xuICB9XG5cbiAgaGVhZC5hcHBlbmQoc3R5bGUpO1xufTtcblxudmFyIGhhbmRsZUlmcmFtZUJsb2NrZWQgPSBmdW5jdGlvbiBoYW5kbGVJZnJhbWVCbG9ja2VkKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICBleHBvcnRzLmVycm9yID0gZXJyb3IgPSBfZXJyb3JzLklGUkFNRV9CTE9DS0VELm1lc3NhZ2U7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuXG4gIGRpc3Bvc2UoKTtcbiAgaW5pdFByb21pc2UucmVqZWN0KF9lcnJvcnMuSUZSQU1FX0JMT0NLRUQpO1xufTsgLy8gcG9zdCBtZXNzYWdlcyB0byBpZnJhbWVcblxuXG52YXIgcG9zdE1lc3NhZ2UgPSBmdW5jdGlvbiBwb3N0TWVzc2FnZShtZXNzYWdlLCB1c2VQcm9taXNlKSB7XG4gIGlmICh1c2VQcm9taXNlID09PSB2b2lkIDApIHtcbiAgICB1c2VQcm9taXNlID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaW5zdGFuY2UpIHtcbiAgICB0aHJvdyBfZXJyb3JzLklGUkFNRV9CTE9DS0VEO1xuICB9XG5cbiAgaWYgKHVzZVByb21pc2UpIHtcbiAgICBfbWVzc2FnZUlEKys7XG4gICAgbWVzc2FnZS5pZCA9IF9tZXNzYWdlSUQ7XG4gICAgbWVzc2FnZVByb21pc2VzW19tZXNzYWdlSURdID0gKDAsIF9kZWZlcnJlZC5jcmVhdGUpKCk7XG4gICAgaW5zdGFuY2UuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShtZXNzYWdlLCBvcmlnaW4pO1xuICAgIHJldHVybiBtZXNzYWdlUHJvbWlzZXNbX21lc3NhZ2VJRF0ucHJvbWlzZTtcbiAgfVxuXG4gIGluc3RhbmNlLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgb3JpZ2luKTtcbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnRzLnBvc3RNZXNzYWdlID0gcG9zdE1lc3NhZ2U7XG5cbnZhciBkaXNwb3NlID0gZnVuY3Rpb24gZGlzcG9zZSgpIHtcbiAgaWYgKGluc3RhbmNlICYmIGluc3RhbmNlLnBhcmVudE5vZGUpIHtcbiAgICB0cnkge1xuICAgICAgaW5zdGFuY2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpbnN0YW5jZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHsvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0cy5pbnN0YW5jZSA9IGluc3RhbmNlID0gbnVsbDtcbiAgZXhwb3J0cy50aW1lb3V0ID0gdGltZW91dCA9IDA7XG59O1xuXG5leHBvcnRzLmRpc3Bvc2UgPSBkaXNwb3NlO1xuXG52YXIgY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24gY2xlYXJUaW1lb3V0KCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufTtcblxuZXhwb3J0cy5jbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/iframe/builder.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/iframe/inline-styles.js":
/*!*****************************************************************!*\
!*** ./node_modules/trezor-connect/lib/iframe/inline-styles.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar css = '.trezorconnect-container{position:fixed!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important;z-index:10000!important;width:100%!important;height:100%!important;top:0!important;left:0!important;background:rgba(0,0,0,.35)!important;overflow:auto!important;padding:20px!important;margin:0!important}.trezorconnect-container .trezorconnect-window{position:relative!important;display:block!important;width:370px!important;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif!important;margin:auto!important;border-radius:3px!important;background-color:#fff!important;text-align:center!important;overflow:hidden!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head{text-align:left;padding:12px 24px!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-logo{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close{cursor:pointer!important;height:24px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close svg{fill:#757575;-webkit-transition:fill .3s ease-in-out!important;transition:fill .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close:hover svg{fill:#494949}.trezorconnect-container .trezorconnect-window .trezorconnect-body{padding:24px 24px 32px!important;background:#FBFBFB!important;border-top:1px solid #EBEBEB}.trezorconnect-container .trezorconnect-window .trezorconnect-body h3{color:#505050!important;font-size:16px!important;font-weight:500!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body p{margin:8px 0 24px!important;font-weight:400!important;color:#A9A9A9!important;font-size:12px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button{width:100%!important;padding:12px 24px!important;margin:0!important;border-radius:3px!important;font-size:14px!important;font-weight:300!important;cursor:pointer!important;background:#01B757!important;color:#fff!important;border:0!important;-webkit-transition:background-color .3s ease-in-out!important;transition:background-color .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:hover{background-color:#00AB51!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:active{background-color:#009546!important}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0IiwiJHN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLHlCQUNJLFNBQUEsZ0JBQ0EsUUFBQSxzQkFDQSxRQUFBLHVCQUNBLFFBQUEsc0JBRUEsUUFBQSxlQUNBLG1CQUFBLG1CQUNBLHNCQUFBLGlCQUNBLHVCQUFBLGlCQUNBLG1CQUFBLGlCQUNBLGVBQUEsaUJBRUEsa0JBQUEsaUJBQ0Esb0JBQUEsaUJBQ0EsZUFBQSxpQkNmTSxZQUFhLGlCREFyQixRQUFTLGdCQWtCSCxNQUFBLGVBQ0EsT0FBQSxlQUNBLElBQUEsWUFDQSxLQUFBLFlBQ0EsV0FBQSwwQkFDQSxTQUFBLGVBQ0EsUUFBQSxlQUNBLE9BQUEsWUNkUiwrQ0RYRSxTQUFVLG1CQTZCQSxRQUFBLGdCQUNBLE1BQUEsZ0JBQ0EsWUFBQSxjQUFBLG1CQUFBLFdBQUEsT0FBQSxpQkFBQSxNQUFBLHFCQUNBLE9BQUEsZUNmVixjQUFlLGNEakJmLGlCQWlCRSxlQWtCWSxXQUFBLGlCQ2ZkLFNBQVUsaUJEbUJJLG1FQUNBLFdBQUEsS0NoQmQsUUFBUyxLQUFLLGVEeEJkLFFBQVMsc0JBMENTLFFBQUEsdUJBQ0EsUUFBQSxzQkNmbEIsUUFBUyxlRGlCSyxrQkE1QlosaUJBOEJvQixvQkFBQSxpQkNoQmxCLGVBQWdCLGlCRC9CWixZQWlCTixpQkFzQ1EsdUZBQ0EsaUJBQUEsRUNwQlYsYUFBYyxFRHBDVixTQUFVLEVBMkRBLEtBQUEsRUFFQSx3RkNwQmQsT0FBUSxrQkR6Q1IsT0FBUSxlQWlFTSw0RkFDQSxLQUFBLFFBQ0EsbUJBQUEsS0FBQSxJQUFBLHNCQ3BCZCxXQUFZLEtBQUssSUFBSyxzQkR3QlIsa0dBQ0EsS0FBQSxRQUVBLG1FQUNBLFFBQUEsS0FBQSxLQUFBLGVBQ0EsV0FBQSxrQkFDQSxXQUFBLElBQUEsTUFBQSxRQUVBLHNFQUNBLE1BQUEsa0JBQ0EsVUFBQSxlQ3JCZCxZQUFhLGNEd0JLLHFFQ3JCbEIsT0FBUSxJQUFJLEVBQUksZUR3QkYsWUFBQSxjQUNJLE1BQUEsa0JDdEJsQixVQUFXLGVBRWIsMEVBQ0UsTUFBTyxlQUNQLFFBQVMsS0FBSyxlQUNkLE9BQVEsWUFDUixjQUFlLGNBQ2YsVUFBVyxlQUNYLFlBQWEsY0FDYixPQUFRLGtCQUNSLFdBQVksa0JBQ1osTUFBTyxlQUNQLE9BQVEsWUFDUixtQkFBb0IsaUJBQWlCLElBQUssc0JBQzFDLFdBQVksaUJBQWlCLElBQUssc0JBRXBDLGdGQUNFLGlCQUFrQixrQkFFcEIsaUZBQ0UsaUJBQWtCIn0= */';\nvar _default = css;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9pZnJhbWUvaW5saW5lLXN0eWxlcy5qcz9jMWVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQSxvQ0FBb0MseUJBQXlCLDhCQUE4QiwrQkFBK0IsOEJBQThCLHVCQUF1QixzQ0FBc0MsdUNBQXVDLHdDQUF3QyxvQ0FBb0MsZ0NBQWdDLG1DQUFtQyxxQ0FBcUMsZ0NBQWdDLDZCQUE2Qix3QkFBd0IscUJBQXFCLHNCQUFzQixnQkFBZ0IsaUJBQWlCLHFDQUFxQyx3QkFBd0IsdUJBQXVCLG1CQUFtQiwrQ0FBK0MsNEJBQTRCLHdCQUF3QixzQkFBc0IsMkdBQTJHLHNCQUFzQiw0QkFBNEIsZ0NBQWdDLDRCQUE0QiwwQkFBMEIsbUVBQW1FLGdCQUFnQiw0QkFBNEIsOEJBQThCLCtCQUErQiw4QkFBOEIsdUJBQXVCLG1DQUFtQyxxQ0FBcUMsZ0NBQWdDLDZCQUE2Qix1RkFBdUYsbUJBQW1CLGVBQWUsV0FBVyxPQUFPLHdGQUF3Rix5QkFBeUIsc0JBQXNCLDRGQUE0RixhQUFhLGtEQUFrRCwwQ0FBMEMsa0dBQWtHLGFBQWEsbUVBQW1FLGlDQUFpQyw2QkFBNkIsNkJBQTZCLHNFQUFzRSx3QkFBd0IseUJBQXlCLDBCQUEwQixxRUFBcUUsNEJBQTRCLDBCQUEwQix3QkFBd0IseUJBQXlCLDBFQUEwRSxxQkFBcUIsNEJBQTRCLG1CQUFtQiw0QkFBNEIseUJBQXlCLDBCQUEwQix5QkFBeUIsNkJBQTZCLHFCQUFxQixtQkFBbUIsOERBQThELHNEQUFzRCxnRkFBZ0YsbUNBQW1DLGlGQUFpRixtQ0FBbUMsMkNBQTJDO0FBQzVtRztBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9pZnJhbWUvaW5saW5lLXN0eWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG52YXIgY3NzID0gJy50cmV6b3Jjb25uZWN0LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7ZGlzcGxheTotd2Via2l0LWJveCFpbXBvcnRhbnQ7ZGlzcGxheTotd2Via2l0LWZsZXghaW1wb3J0YW50O2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsIWltcG9ydGFudDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsIWltcG9ydGFudDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDstbXMtZmxleC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7ei1pbmRleDoxMDAwMCFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7aGVpZ2h0OjEwMCUhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzUpIWltcG9ydGFudDtvdmVyZmxvdzphdXRvIWltcG9ydGFudDtwYWRkaW5nOjIwcHghaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudH0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93e3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt3aWR0aDozNzBweCFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZiFpbXBvcnRhbnQ7bWFyZ2luOmF1dG8haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS50cmV6b3Jjb25uZWN0LWNvbnRhaW5lciAudHJlem9yY29ubmVjdC13aW5kb3cgLnRyZXpvcmNvbm5lY3QtaGVhZHt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzoxMnB4IDI0cHghaW1wb3J0YW50O2Rpc3BsYXk6LXdlYmtpdC1ib3ghaW1wb3J0YW50O2Rpc3BsYXk6LXdlYmtpdC1mbGV4IWltcG9ydGFudDtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50Oy1tcy1mbGV4LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93IC50cmV6b3Jjb25uZWN0LWhlYWQgLnRyZXpvcmNvbm5lY3QtbG9nb3std2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9LnRyZXpvcmNvbm5lY3QtY29udGFpbmVyIC50cmV6b3Jjb25uZWN0LXdpbmRvdyAudHJlem9yY29ubmVjdC1oZWFkIC50cmV6b3Jjb25uZWN0LWNsb3Nle2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtoZWlnaHQ6MjRweCFpbXBvcnRhbnR9LnRyZXpvcmNvbm5lY3QtY29udGFpbmVyIC50cmV6b3Jjb25uZWN0LXdpbmRvdyAudHJlem9yY29ubmVjdC1oZWFkIC50cmV6b3Jjb25uZWN0LWNsb3NlIHN2Z3tmaWxsOiM3NTc1NzU7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwgLjNzIGVhc2UtaW4tb3V0IWltcG9ydGFudDt0cmFuc2l0aW9uOmZpbGwgLjNzIGVhc2UtaW4tb3V0IWltcG9ydGFudH0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93IC50cmV6b3Jjb25uZWN0LWhlYWQgLnRyZXpvcmNvbm5lY3QtY2xvc2U6aG92ZXIgc3Zne2ZpbGw6IzQ5NDk0OX0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93IC50cmV6b3Jjb25uZWN0LWJvZHl7cGFkZGluZzoyNHB4IDI0cHggMzJweCFpbXBvcnRhbnQ7YmFja2dyb3VuZDojRkJGQkZCIWltcG9ydGFudDtib3JkZXItdG9wOjFweCBzb2xpZCAjRUJFQkVCfS50cmV6b3Jjb25uZWN0LWNvbnRhaW5lciAudHJlem9yY29ubmVjdC13aW5kb3cgLnRyZXpvcmNvbm5lY3QtYm9keSBoM3tjb2xvcjojNTA1MDUwIWltcG9ydGFudDtmb250LXNpemU6MTZweCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NTAwIWltcG9ydGFudH0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93IC50cmV6b3Jjb25uZWN0LWJvZHkgcHttYXJnaW46OHB4IDAgMjRweCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDtjb2xvcjojQTlBOUE5IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnR9LnRyZXpvcmNvbm5lY3QtY29udGFpbmVyIC50cmV6b3Jjb25uZWN0LXdpbmRvdyAudHJlem9yY29ubmVjdC1ib2R5IGJ1dHRvbnt3aWR0aDoxMDAlIWltcG9ydGFudDtwYWRkaW5nOjEycHggMjRweCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDtmb250LXNpemU6MTRweCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6MzAwIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMDFCNzU3IWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0IWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0IWltcG9ydGFudH0udHJlem9yY29ubmVjdC1jb250YWluZXIgLnRyZXpvcmNvbm5lY3Qtd2luZG93IC50cmV6b3Jjb25uZWN0LWJvZHkgYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwQUI1MSFpbXBvcnRhbnR9LnRyZXpvcmNvbm5lY3QtY29udGFpbmVyIC50cmV6b3Jjb25uZWN0LXdpbmRvdyAudHJlem9yY29ubmVjdC1ib2R5IGJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDA5NTQ2IWltcG9ydGFudH0vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1sdWNIVjBJaXdpSkhOMFpHbHVJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRV05CTEhsQ1FVTkpMRk5CUVVFc1owSkJRMEVzVVVGQlFTeHpRa0ZEUVN4UlFVRkJMSFZDUVVOQkxGRkJRVUVzYzBKQlJVRXNVVUZCUVN4bFFVTkJMRzFDUVVGQkxHMUNRVU5CTEhOQ1FVRkJMR2xDUVVOQkxIVkNRVUZCTEdsQ1FVTkJMRzFDUVVGQkxHbENRVU5CTEdWQlFVRXNhVUpCUlVFc2EwSkJRVUVzYVVKQlEwRXNiMEpCUVVFc2FVSkJRMEVzWlVGQlFTeHBRa05tVFN4WlFVRmhMR2xDUkVGeVFpeFJRVUZUTEdkQ1FXdENTQ3hOUVVGQkxHVkJRMEVzVDBGQlFTeGxRVU5CTEVsQlFVRXNXVUZEUVN4TFFVRkJMRmxCUTBFc1YwRkJRU3d3UWtGRFFTeFRRVUZCTEdWQlEwRXNVVUZCUVN4bFFVTkJMRTlCUVVFc1dVTmtVaXdyUTBSWVJTeFRRVUZWTEcxQ1FUWkNRU3hSUVVGQkxHZENRVU5CTEUxQlFVRXNaMEpCUTBFc1dVRkJRU3hqUVVGQkxHMUNRVUZCTEZkQlFVRXNUMEZCUVN4cFFrRkJRU3hOUVVGQkxIRkNRVU5CTEU5QlFVRXNaVU5tVml4alFVRmxMR05FYWtKbUxHbENRV2xDUlN4bFFXdENXU3hYUVVGQkxHbENRMlprTEZOQlFWVXNhVUpFYlVKSkxHMUZRVU5CTEZkQlFVRXNTME5vUW1Rc1VVRkJVeXhMUVVGTExHVkVlRUprTEZGQlFWTXNjMEpCTUVOVExGRkJRVUVzZFVKQlEwRXNVVUZCUVN4elFrTm1iRUlzVVVGQlV5eGxSR2xDU3l4clFrRTFRbG9zYVVKQk9FSnZRaXh2UWtGQlFTeHBRa05vUW14Q0xHVkJRV2RDTEdsQ1JDOUNXaXhaUVdsQ1RpeHBRa0Z6UTFFc2RVWkJRMEVzYVVKQlFVRXNSVU53UWxZc1lVRkJZeXhGUkhCRFZpeFRRVUZWTEVWQk1rUkJMRXRCUVVFc1JVRkZRU3gzUmtOd1FtUXNUMEZCVVN4clFrUjZRMUlzVDBGQlVTeGxRV2xGVFN3MFJrRkRRU3hMUVVGQkxGRkJRMEVzYlVKQlFVRXNTMEZCUVN4SlFVRkJMSE5DUTNCQ1pDeFhRVUZaTEV0QlFVc3NTVUZCU3l4elFrUjNRbElzYTBkQlEwRXNTMEZCUVN4UlFVVkJMRzFGUVVOQkxGRkJRVUVzUzBGQlFTeExRVUZCTEdWQlEwRXNWMEZCUVN4clFrRkRRU3hYUVVGQkxFbEJRVUVzVFVGQlFTeFJRVVZCTEhORlFVTkJMRTFCUVVFc2EwSkJRMEVzVlVGQlFTeGxRM0pDWkN4WlFVRmhMR05FZDBKTExIRkZRM0pDYkVJc1QwRkJVU3hKUVVGSkxFVkJRVWtzWlVSM1FrWXNXVUZCUVN4alFVTkpMRTFCUVVFc2EwSkRkRUpzUWl4VlFVRlhMR1ZCUldJc01FVkJRMFVzVFVGQlR5eGxRVU5RTEZGQlFWTXNTMEZCU3l4bFFVTmtMRTlCUVZFc1dVRkRVaXhqUVVGbExHTkJRMllzVlVGQlZ5eGxRVU5ZTEZsQlFXRXNZMEZEWWl4UFFVRlJMR3RDUVVOU0xGZEJRVmtzYTBKQlExb3NUVUZCVHl4bFFVTlFMRTlCUVZFc1dVRkRVaXh0UWtGQmIwSXNhVUpCUVdsQ0xFbEJRVXNzYzBKQlF6RkRMRmRCUVZrc2FVSkJRV2xDTEVsQlFVc3NjMEpCUlhCRExHZEdRVU5GTEdsQ1FVRnJRaXhyUWtGRmNFSXNhVVpCUTBVc2FVSkJRV3RDSW4wPSAqLyc7XG52YXIgX2RlZmF1bHQgPSBjc3M7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/iframe/inline-styles.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/index.js":
/*!**************************************************!*\
!*** ./node_modules/trezor-connect/lib/index.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nvar _exportNames = {\n UI_EVENT: true,\n DEVICE_EVENT: true,\n RESPONSE_EVENT: true,\n TRANSPORT_EVENT: true,\n BLOCKCHAIN_EVENT: true,\n TRANSPORT: true,\n UI: true,\n DEVICE: true,\n BLOCKCHAIN: true\n};\nexports.BLOCKCHAIN = exports.DEVICE = exports.UI = exports.TRANSPORT = exports[\"default\"] = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _events = _interopRequireDefault(__webpack_require__(/*! events */ \"./node_modules/events/events.js\"));\n\nvar _constants = __webpack_require__(/*! ./constants */ \"./node_modules/trezor-connect/lib/constants/index.js\");\n\nexports.UI_EVENT = _constants.UI_EVENT;\nexports.DEVICE_EVENT = _constants.DEVICE_EVENT;\nexports.RESPONSE_EVENT = _constants.RESPONSE_EVENT;\nexports.TRANSPORT_EVENT = _constants.TRANSPORT_EVENT;\nexports.BLOCKCHAIN_EVENT = _constants.BLOCKCHAIN_EVENT;\n\nvar TRANSPORT = _interopRequireWildcard(__webpack_require__(/*! ./constants/transport */ \"./node_modules/trezor-connect/lib/constants/transport.js\"));\n\nexports.TRANSPORT = TRANSPORT;\n\nvar POPUP = _interopRequireWildcard(__webpack_require__(/*! ./constants/popup */ \"./node_modules/trezor-connect/lib/constants/popup.js\"));\n\nvar IFRAME = _interopRequireWildcard(__webpack_require__(/*! ./constants/iframe */ \"./node_modules/trezor-connect/lib/constants/iframe.js\"));\n\nvar UI = _interopRequireWildcard(__webpack_require__(/*! ./constants/ui */ \"./node_modules/trezor-connect/lib/constants/ui.js\"));\n\nexports.UI = UI;\n\nvar DEVICE = _interopRequireWildcard(__webpack_require__(/*! ./constants/device */ \"./node_modules/trezor-connect/lib/constants/device.js\"));\n\nexports.DEVICE = DEVICE;\n\nvar BLOCKCHAIN = _interopRequireWildcard(__webpack_require__(/*! ./constants/blockchain */ \"./node_modules/trezor-connect/lib/constants/blockchain.js\"));\n\nexports.BLOCKCHAIN = BLOCKCHAIN;\n\nvar ERROR = _interopRequireWildcard(__webpack_require__(/*! ./constants/errors */ \"./node_modules/trezor-connect/lib/constants/errors.js\"));\n\nvar _PopupManager = _interopRequireDefault(__webpack_require__(/*! ./popup/PopupManager */ \"./node_modules/trezor-connect/lib/popup/PopupManager.js\"));\n\nvar iframe = _interopRequireWildcard(__webpack_require__(/*! ./iframe/builder */ \"./node_modules/trezor-connect/lib/iframe/builder.js\"));\n\nvar _button = _interopRequireDefault(__webpack_require__(/*! ./webusb/button */ \"./node_modules/trezor-connect/lib/webusb/button.js\"));\n\nvar _debug = _interopRequireWildcard(__webpack_require__(/*! ./utils/debug */ \"./node_modules/trezor-connect/lib/utils/debug.js\"));\n\nvar _message = __webpack_require__(/*! ./message */ \"./node_modules/trezor-connect/lib/message/index.js\");\n\nvar _ConnectSettings = __webpack_require__(/*! ./data/ConnectSettings */ \"./node_modules/trezor-connect/lib/data/ConnectSettings.js\");\n\nvar $T = _interopRequireWildcard(__webpack_require__(/*! ./types */ \"./node_modules/trezor-connect/lib/types/index.js\"));\n\nvar _blockchainEvent = __webpack_require__(/*! ./types/blockchainEvent */ \"./node_modules/trezor-connect/lib/types/blockchainEvent.js\");\n\nObject.keys(_blockchainEvent).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _blockchainEvent[key];\n});\n\nvar _account = __webpack_require__(/*! ./types/account */ \"./node_modules/trezor-connect/lib/types/account.js\");\n\nObject.keys(_account).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n exports[key] = _account[key];\n});\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(source, true).forEach(function (key) { (0, _defineProperty2[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar eventEmitter = new _events[\"default\"]();\n\nvar _log = (0, _debug.init)('[trezor-connect.js]');\n\nvar _settings;\n\nvar _popupManager;\n\nvar initPopupManager = function initPopupManager() {\n var pm = new _PopupManager[\"default\"](_settings);\n pm.on(POPUP.CLOSED, function () {\n iframe.postMessage({\n type: POPUP.CLOSED\n }, false);\n });\n return pm;\n}; // handle message received from iframe\n\n\nvar handleMessage = function handleMessage(messageEvent) {\n // ignore messages from domain other then iframe origin\n if (messageEvent.origin !== iframe.origin) return;\n var message = (0, _message.parseMessage)(messageEvent.data); // TODO: destructuring with type\n // https://github.com/Microsoft/TypeScript/issues/240\n // const { id, event, type, data, error }: CoreMessage = message;\n\n var id = message.id || 0;\n var event = message.event;\n var type = message.type;\n var payload = message.payload;\n\n _log.log('handleMessage', message);\n\n switch (event) {\n case _constants.RESPONSE_EVENT:\n if (iframe.messagePromises[id]) {\n // clear unnecessary fields from message object\n delete message.type;\n delete message.event; // delete message.id;\n // message.__id = id;\n // resolve message promise (send result of call method)\n\n iframe.messagePromises[id].resolve(message);\n delete iframe.messagePromises[id];\n } else {\n _log.warn(\"Unknown message id \" + id);\n }\n\n break;\n\n case _constants.DEVICE_EVENT:\n // pass DEVICE event up to html\n eventEmitter.emit(event, message);\n eventEmitter.emit(type, payload); // DEVICE_EVENT also emit single events (connect/disconnect...)\n\n break;\n\n case _constants.TRANSPORT_EVENT:\n eventEmitter.emit(event, message);\n eventEmitter.emit(type, payload);\n break;\n\n case _constants.BLOCKCHAIN_EVENT:\n eventEmitter.emit(event, message);\n eventEmitter.emit(type, payload);\n break;\n\n case _constants.UI_EVENT:\n if (type === IFRAME.BOOTSTRAP) {\n iframe.clearTimeout();\n break;\n } else if (type === POPUP.BOOTSTRAP) {\n // Popup did open but is still loading JS\n _popupManager.cancelOpenTimeout();\n\n break;\n } // pass UI event up\n\n\n eventEmitter.emit(event, message);\n eventEmitter.emit(type, payload);\n\n if (type === UI.IFRAME_HANDSHAKE) {\n if (payload.error) {\n iframe.initPromise.reject(new Error(payload.error));\n } else {\n _popupManager.setBroadcast(payload.broadcast);\n\n iframe.initPromise.resolve();\n }\n } else if (type === POPUP.CANCEL_POPUP_REQUEST) {\n _popupManager.cancel();\n } else if (type === UI.CLOSE_UI_WINDOW) {\n _popupManager.close();\n }\n\n break;\n\n default:\n _log.log('Undefined message', event, messageEvent);\n\n }\n};\n\nvar init =\n/*#__PURE__*/\nfunction () {\n var _ref = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(settings) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (settings === void 0) {\n settings = {};\n }\n\n if (!iframe.instance) {\n _context.next = 3;\n break;\n }\n\n throw ERROR.IFRAME_INITIALIZED;\n\n case 3:\n if (!_settings) {\n _settings = (0, _ConnectSettings.parse)(settings);\n }\n\n if (_settings.manifest) {\n _context.next = 6;\n break;\n }\n\n throw ERROR.MANIFEST_NOT_SET;\n\n case 6:\n if (_settings.supportedBrowser) {\n _context.next = 8;\n break;\n }\n\n throw ERROR.BROWSER_NOT_SUPPORTED;\n\n case 8:\n if (!_popupManager) {\n _popupManager = initPopupManager();\n }\n\n _log.enabled = _settings.debug;\n window.addEventListener('message', handleMessage);\n window.addEventListener('beforeunload', function () {\n if (_popupManager) {\n _popupManager.onBeforeUnload();\n }\n\n iframe.dispose();\n });\n _context.next = 14;\n return iframe.init(_settings);\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function init(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar call =\n/*#__PURE__*/\nfunction () {\n var _ref2 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2(params) {\n var response;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(!iframe.instance && !iframe.timeout)) {\n _context2.next = 19;\n break;\n }\n\n // init popup with lazy loading before iframe initialization\n _settings = (0, _ConnectSettings.parse)(_settings);\n\n if (_settings.manifest) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: ERROR.MANIFEST_NOT_SET.message\n }\n });\n\n case 4:\n if (_settings.supportedBrowser) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: ERROR.BROWSER_NOT_SUPPORTED.message\n }\n });\n\n case 6:\n _popupManager = initPopupManager();\n\n _popupManager.request(true); // auto init with default settings\n\n\n _context2.prev = 8;\n _context2.next = 11;\n return init(_settings);\n\n case 11:\n _context2.next = 13;\n return _popupManager.resolveLazyLoad();\n\n case 13:\n _context2.next = 19;\n break;\n\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](8);\n\n _popupManager.close();\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: _context2.t0\n }\n });\n\n case 19:\n if (!iframe.timeout) {\n _context2.next = 23;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: ERROR.NO_IFRAME.message\n }\n });\n\n case 23:\n if (!iframe.error) {\n _context2.next = 25;\n break;\n }\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: iframe.error\n }\n });\n\n case 25:\n // request popup window it might be used in the future\n // if (eventEmitter.listeners(UI_EVENT).length < 1) { _popupManager.request(params); }\n if (_settings.popup) {\n _popupManager.request();\n } // post message to iframe\n\n\n _context2.prev = 26;\n _context2.next = 29;\n return iframe.postMessage({\n type: IFRAME.CALL,\n payload: params\n });\n\n case 29:\n response = _context2.sent;\n\n if (!response) {\n _context2.next = 35;\n break;\n }\n\n // TODO: unlock popupManager request only if there wasn't error \"in progress\"\n if (response.payload.error !== ERROR.DEVICE_CALL_IN_PROGRESS.message) {\n _popupManager.unlock();\n }\n\n return _context2.abrupt(\"return\", response);\n\n case 35:\n _popupManager.unlock(); // TODO\n\n\n return _context2.abrupt(\"return\", {\n success: false,\n payload: {\n error: 'No response from iframe'\n }\n });\n\n case 37:\n _context2.next = 43;\n break;\n\n case 39:\n _context2.prev = 39;\n _context2.t1 = _context2[\"catch\"](26);\n\n _log.error('__call error', _context2.t1);\n\n return _context2.abrupt(\"return\", _context2.t1);\n\n case 43:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[8, 15], [26, 39]]);\n }));\n\n return function call(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar customMessageResponse = function customMessageResponse(payload) {\n iframe.postMessage({\n event: _constants.UI_EVENT,\n type: UI.CUSTOM_MESSAGE_RESPONSE,\n payload: payload\n });\n};\n\nvar TrezorConnect = function TrezorConnect() {};\n\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"manifest\", function (data) {\n _settings = (0, _ConnectSettings.parse)({\n manifest: data\n });\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getSettings\",\n/*#__PURE__*/\n(0, _asyncToGenerator2[\"default\"])(\n/*#__PURE__*/\n_regenerator[\"default\"].mark(function _callee3() {\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (iframe.instance) {\n _context3.next = 2;\n break;\n }\n\n return _context3.abrupt(\"return\", {\n success: false,\n payload: {\n error: 'Iframe not initialized yet, you need to call TrezorConnect.init or any other method first.'\n }\n });\n\n case 2:\n _context3.next = 4;\n return call({\n method: 'getSettings'\n });\n\n case 4:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n})));\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"init\",\n/*#__PURE__*/\nfunction () {\n var _ref4 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee4(settings) {\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return init(settings);\n\n case 2:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function (_x3) {\n return _ref4.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"on\", function (type, fn) {\n eventEmitter.on(type, fn);\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"off\", function (type, fn) {\n eventEmitter.removeListener(type, fn);\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"uiResponse\", function (response) {\n iframe.postMessage(_objectSpread({\n event: _constants.UI_EVENT\n }, response));\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"changeSettings\", function (settings) {\n var parsedSettings = (0, _ConnectSettings.parse)(settings);\n _log.enabled = parsedSettings.debug;\n iframe.postMessage({\n type: UI.CHANGE_SETTINGS,\n payload: parsedSettings\n }, false);\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"blockchainDisconnect\",\n/*#__PURE__*/\nfunction () {\n var _ref5 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee5(params) {\n return _regenerator[\"default\"].wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return call(_objectSpread({\n method: 'blockchainDisconnect'\n }, params));\n\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function (_x4) {\n return _ref5.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"blockchainEstimateFee\",\n/*#__PURE__*/\nfunction () {\n var _ref6 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee6(params) {\n return _regenerator[\"default\"].wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return call(_objectSpread({\n method: 'blockchainEstimateFee'\n }, params));\n\n case 2:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function (_x5) {\n return _ref6.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"blockchainSubscribe\",\n/*#__PURE__*/\nfunction () {\n var _ref7 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee7(params) {\n return _regenerator[\"default\"].wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return call(_objectSpread({\n method: 'blockchainSubscribe'\n }, params));\n\n case 2:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n\n return function (_x6) {\n return _ref7.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"blockchainUnsubscribe\",\n/*#__PURE__*/\nfunction () {\n var _ref8 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee8(params) {\n return _regenerator[\"default\"].wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return call(_objectSpread({\n method: 'blockchainUnsubscribe'\n }, params));\n\n case 2:\n return _context8.abrupt(\"return\", _context8.sent);\n\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function (_x7) {\n return _ref8.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"customMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref9 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee10(params) {\n var callback, customMessageListener, response;\n return _regenerator[\"default\"].wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (!(typeof params.callback !== 'function')) {\n _context10.next = 2;\n break;\n }\n\n return _context10.abrupt(\"return\", {\n success: false,\n payload: {\n error: 'Parameter \"callback\" is not a function'\n }\n });\n\n case 2:\n // TODO: set message listener only if iframe is loaded correctly\n callback = params.callback;\n delete params.callback;\n\n customMessageListener =\n /*#__PURE__*/\n function () {\n var _ref10 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee9(event) {\n var data, payload;\n return _regenerator[\"default\"].wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n data = event.data;\n\n if (!(data && data.type === UI.CUSTOM_MESSAGE_REQUEST)) {\n _context9.next = 6;\n break;\n }\n\n _context9.next = 4;\n return callback(data.payload);\n\n case 4:\n payload = _context9.sent;\n\n if (payload) {\n customMessageResponse(payload);\n } else {\n customMessageResponse({\n message: 'release'\n });\n }\n\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function customMessageListener(_x9) {\n return _ref10.apply(this, arguments);\n };\n }();\n\n window.addEventListener('message', customMessageListener, false);\n _context10.next = 8;\n return call(_objectSpread({\n method: 'customMessage'\n }, params));\n\n case 8:\n response = _context10.sent;\n window.removeEventListener('message', customMessageListener);\n return _context10.abrupt(\"return\", response);\n\n case 11:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function (_x8) {\n return _ref9.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"requestLogin\",\n/*#__PURE__*/\nfunction () {\n var _ref11 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee12(params) {\n var callback, loginChallengeListener, response;\n return _regenerator[\"default\"].wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (!(typeof params.callback === 'function')) {\n _context12.next = 12;\n break;\n }\n\n callback = params.callback;\n delete params.callback; // delete callback value. this field cannot be sent using postMessage function\n // TODO: set message listener only if iframe is loaded correctly\n\n loginChallengeListener =\n /*#__PURE__*/\n function () {\n var _ref12 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee11(event) {\n var data, payload;\n return _regenerator[\"default\"].wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n data = event.data;\n\n if (!(data && data.type === UI.LOGIN_CHALLENGE_REQUEST)) {\n _context11.next = 13;\n break;\n }\n\n _context11.prev = 2;\n _context11.next = 5;\n return callback();\n\n case 5:\n payload = _context11.sent;\n iframe.postMessage({\n event: _constants.UI_EVENT,\n type: UI.LOGIN_CHALLENGE_RESPONSE,\n payload: payload\n });\n _context11.next = 13;\n break;\n\n case 9:\n _context11.prev = 9;\n _context11.t0 = _context11[\"catch\"](2);\n console.warn('TrezorConnect.requestLogin: callback error', _context11.t0);\n iframe.postMessage({\n event: _constants.UI_EVENT,\n type: UI.LOGIN_CHALLENGE_RESPONSE,\n payload: _context11.t0.message\n });\n\n case 13:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, null, [[2, 9]]);\n }));\n\n return function loginChallengeListener(_x11) {\n return _ref12.apply(this, arguments);\n };\n }();\n\n window.addEventListener('message', loginChallengeListener, false);\n _context12.next = 7;\n return call(_objectSpread({\n method: 'requestLogin'\n }, params, {\n asyncChallenge: true\n }));\n\n case 7:\n response = _context12.sent;\n window.removeEventListener('message', loginChallengeListener);\n return _context12.abrupt(\"return\", response);\n\n case 12:\n _context12.next = 14;\n return call(_objectSpread({\n method: 'requestLogin'\n }, params));\n\n case 14:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 15:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n\n return function (_x10) {\n return _ref11.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"resetDevice\",\n/*#__PURE__*/\nfunction () {\n var _ref13 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee13(params) {\n return _regenerator[\"default\"].wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return call(_objectSpread({\n method: 'resetDevice'\n }, params));\n\n case 2:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 3:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function (_x12) {\n return _ref13.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"cardanoGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref14 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee14(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context14.next = 3;\n return call(_objectSpread({\n method: 'cardanoGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 4:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function (_x13) {\n return _ref14.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"cardanoGetPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref15 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee15(params) {\n return _regenerator[\"default\"].wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n _context15.next = 2;\n return call(_objectSpread({\n method: 'cardanoGetPublicKey'\n }, params));\n\n case 2:\n return _context15.abrupt(\"return\", _context15.sent);\n\n case 3:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n return function (_x14) {\n return _ref15.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"cardanoSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref16 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee16(params) {\n return _regenerator[\"default\"].wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return call(_objectSpread({\n method: 'cardanoSignTransaction'\n }, params));\n\n case 2:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 3:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n\n return function (_x15) {\n return _ref16.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"cipherKeyValue\",\n/*#__PURE__*/\nfunction () {\n var _ref17 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee17(params) {\n return _regenerator[\"default\"].wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return call(_objectSpread({\n method: 'cipherKeyValue'\n }, params));\n\n case 2:\n return _context17.abrupt(\"return\", _context17.sent);\n\n case 3:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n\n return function (_x16) {\n return _ref17.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"composeTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref18 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee18(params) {\n return _regenerator[\"default\"].wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _context18.next = 2;\n return call(_objectSpread({\n method: 'composeTransaction'\n }, params));\n\n case 2:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 3:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n return function (_x17) {\n return _ref18.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"debugLinkDecision\",\n/*#__PURE__*/\nfunction () {\n var _ref19 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee19(params) {\n return _regenerator[\"default\"].wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _context19.next = 2;\n return call(_objectSpread({\n method: 'debugLinkDecision'\n }, params));\n\n case 2:\n return _context19.abrupt(\"return\", _context19.sent);\n\n case 3:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n }));\n\n return function (_x18) {\n return _ref19.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"debugLinkGetState\",\n/*#__PURE__*/\nfunction () {\n var _ref20 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee20(params) {\n return _regenerator[\"default\"].wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n _context20.next = 2;\n return call(_objectSpread({\n method: 'debugLinkGetState'\n }, params));\n\n case 2:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 3:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20);\n }));\n\n return function (_x19) {\n return _ref20.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumGetAccountInfo\",\n/*#__PURE__*/\nfunction () {\n var _ref21 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee21(params) {\n return _regenerator[\"default\"].wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n _context21.next = 2;\n return call(_objectSpread({\n method: 'ethereumGetAccountInfo'\n }, params));\n\n case 2:\n return _context21.abrupt(\"return\", _context21.sent);\n\n case 3:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21);\n }));\n\n return function (_x20) {\n return _ref21.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref22 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee22(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context22.next = 3;\n return call(_objectSpread({\n method: 'ethereumGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context22.abrupt(\"return\", _context22.sent);\n\n case 4:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n\n return function (_x21) {\n return _ref22.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumGetPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref23 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee23(params) {\n return _regenerator[\"default\"].wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.next = 2;\n return call(_objectSpread({\n method: 'ethereumGetPublicKey'\n }, params));\n\n case 2:\n return _context23.abrupt(\"return\", _context23.sent);\n\n case 3:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23);\n }));\n\n return function (_x22) {\n return _ref23.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumSignMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref24 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee24(params) {\n return _regenerator[\"default\"].wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n _context24.next = 2;\n return call(_objectSpread({\n method: 'ethereumSignMessage'\n }, params));\n\n case 2:\n return _context24.abrupt(\"return\", _context24.sent);\n\n case 3:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24);\n }));\n\n return function (_x23) {\n return _ref24.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref25 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee25(params) {\n return _regenerator[\"default\"].wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return call(_objectSpread({\n method: 'ethereumSignTransaction'\n }, params));\n\n case 2:\n return _context25.abrupt(\"return\", _context25.sent);\n\n case 3:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25);\n }));\n\n return function (_x24) {\n return _ref25.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"ethereumVerifyMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref26 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee26(params) {\n return _regenerator[\"default\"].wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _context26.next = 2;\n return call(_objectSpread({\n method: 'ethereumVerifyMessage'\n }, params));\n\n case 2:\n return _context26.abrupt(\"return\", _context26.sent);\n\n case 3:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26);\n }));\n\n return function (_x25) {\n return _ref26.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getAccountInfo\",\n/*#__PURE__*/\nfunction () {\n var _ref27 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee27(params) {\n return _regenerator[\"default\"].wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n _context27.next = 2;\n return call(_objectSpread({\n method: 'getAccountInfo'\n }, params));\n\n case 2:\n return _context27.abrupt(\"return\", _context27.sent);\n\n case 3:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27);\n }));\n\n return function (_x26) {\n return _ref27.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref28 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee28(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context28.next = 3;\n return call(_objectSpread({\n method: 'getAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context28.abrupt(\"return\", _context28.sent);\n\n case 4:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n\n return function (_x27) {\n return _ref28.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getDeviceState\",\n/*#__PURE__*/\nfunction () {\n var _ref29 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee29(params) {\n return _regenerator[\"default\"].wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n _context29.next = 2;\n return call(_objectSpread({\n method: 'getDeviceState'\n }, params));\n\n case 2:\n return _context29.abrupt(\"return\", _context29.sent);\n\n case 3:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n\n return function (_x28) {\n return _ref29.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getFeatures\",\n/*#__PURE__*/\nfunction () {\n var _ref30 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee30(params) {\n return _regenerator[\"default\"].wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n _context30.next = 2;\n return call(_objectSpread({\n method: 'getFeatures'\n }, params));\n\n case 2:\n return _context30.abrupt(\"return\", _context30.sent);\n\n case 3:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30);\n }));\n\n return function (_x29) {\n return _ref30.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"getPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref31 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee31(params) {\n return _regenerator[\"default\"].wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n _context31.next = 2;\n return call(_objectSpread({\n method: 'getPublicKey'\n }, params));\n\n case 2:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 3:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n\n return function (_x30) {\n return _ref31.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"liskGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref32 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee32(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context32.next = 3;\n return call(_objectSpread({\n method: 'liskGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context32.abrupt(\"return\", _context32.sent);\n\n case 4:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n\n return function (_x31) {\n return _ref32.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"liskGetPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref33 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee33(params) {\n return _regenerator[\"default\"].wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n _context33.next = 2;\n return call(_objectSpread({\n method: 'liskGetPublicKey'\n }, params));\n\n case 2:\n return _context33.abrupt(\"return\", _context33.sent);\n\n case 3:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33);\n }));\n\n return function (_x32) {\n return _ref33.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"liskSignMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref34 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee34(params) {\n return _regenerator[\"default\"].wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n _context34.next = 2;\n return call(_objectSpread({\n method: 'liskSignMessage'\n }, params));\n\n case 2:\n return _context34.abrupt(\"return\", _context34.sent);\n\n case 3:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }));\n\n return function (_x33) {\n return _ref34.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"liskSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref35 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee35(params) {\n return _regenerator[\"default\"].wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n _context35.next = 2;\n return call(_objectSpread({\n method: 'liskSignTransaction'\n }, params));\n\n case 2:\n return _context35.abrupt(\"return\", _context35.sent);\n\n case 3:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35);\n }));\n\n return function (_x34) {\n return _ref35.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"liskVerifyMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref36 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee36(params) {\n return _regenerator[\"default\"].wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n _context36.next = 2;\n return call(_objectSpread({\n method: 'liskVerifyMessage'\n }, params));\n\n case 2:\n return _context36.abrupt(\"return\", _context36.sent);\n\n case 3:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36);\n }));\n\n return function (_x35) {\n return _ref36.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"nemGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref37 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee37(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context37.next = 3;\n return call(_objectSpread({\n method: 'nemGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context37.abrupt(\"return\", _context37.sent);\n\n case 4:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }));\n\n return function (_x36) {\n return _ref37.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"nemSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref38 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee38(params) {\n return _regenerator[\"default\"].wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n _context38.next = 2;\n return call(_objectSpread({\n method: 'nemSignTransaction'\n }, params));\n\n case 2:\n return _context38.abrupt(\"return\", _context38.sent);\n\n case 3:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38);\n }));\n\n return function (_x37) {\n return _ref38.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"pushTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref39 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee39(params) {\n return _regenerator[\"default\"].wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n _context39.next = 2;\n return call(_objectSpread({\n method: 'pushTransaction'\n }, params));\n\n case 2:\n return _context39.abrupt(\"return\", _context39.sent);\n\n case 3:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39);\n }));\n\n return function (_x38) {\n return _ref39.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"rippleGetAccountInfo\",\n/*#__PURE__*/\nfunction () {\n var _ref40 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee40(params) {\n return _regenerator[\"default\"].wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n _context40.next = 2;\n return call(_objectSpread({\n method: 'rippleGetAccountInfo'\n }, params));\n\n case 2:\n return _context40.abrupt(\"return\", _context40.sent);\n\n case 3:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40);\n }));\n\n return function (_x39) {\n return _ref40.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"rippleGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref41 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee41(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context41.next = 3;\n return call(_objectSpread({\n method: 'rippleGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context41.abrupt(\"return\", _context41.sent);\n\n case 4:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41);\n }));\n\n return function (_x40) {\n return _ref41.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"rippleSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref42 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee42(params) {\n return _regenerator[\"default\"].wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n _context42.next = 2;\n return call(_objectSpread({\n method: 'rippleSignTransaction'\n }, params));\n\n case 2:\n return _context42.abrupt(\"return\", _context42.sent);\n\n case 3:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42);\n }));\n\n return function (_x41) {\n return _ref42.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"signMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref43 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee43(params) {\n return _regenerator[\"default\"].wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n _context43.next = 2;\n return call(_objectSpread({\n method: 'signMessage'\n }, params));\n\n case 2:\n return _context43.abrupt(\"return\", _context43.sent);\n\n case 3:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43);\n }));\n\n return function (_x42) {\n return _ref43.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"signTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref44 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee44(params) {\n return _regenerator[\"default\"].wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n _context44.next = 2;\n return call(_objectSpread({\n method: 'signTransaction'\n }, params));\n\n case 2:\n return _context44.abrupt(\"return\", _context44.sent);\n\n case 3:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44);\n }));\n\n return function (_x43) {\n return _ref44.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"stellarGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref45 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee45(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context45.next = 3;\n return call(_objectSpread({\n method: 'stellarGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context45.abrupt(\"return\", _context45.sent);\n\n case 4:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45);\n }));\n\n return function (_x44) {\n return _ref45.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"stellarSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref46 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee46(params) {\n return _regenerator[\"default\"].wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n _context46.next = 2;\n return call(_objectSpread({\n method: 'stellarSignTransaction'\n }, params));\n\n case 2:\n return _context46.abrupt(\"return\", _context46.sent);\n\n case 3:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46);\n }));\n\n return function (_x45) {\n return _ref46.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"tezosGetAddress\",\n/*#__PURE__*/\nfunction () {\n var _ref47 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee47(params) {\n var useEventListener;\n return _regenerator[\"default\"].wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n useEventListener = eventEmitter.listenerCount(UI.ADDRESS_VALIDATION) > 0;\n _context47.next = 3;\n return call(_objectSpread({\n method: 'tezosGetAddress'\n }, params, {\n useEventListener: useEventListener\n }));\n\n case 3:\n return _context47.abrupt(\"return\", _context47.sent);\n\n case 4:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47);\n }));\n\n return function (_x46) {\n return _ref47.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"tezosGetPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref48 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee48(params) {\n return _regenerator[\"default\"].wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n _context48.next = 2;\n return call(_objectSpread({\n method: 'tezosGetPublicKey'\n }, params));\n\n case 2:\n return _context48.abrupt(\"return\", _context48.sent);\n\n case 3:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48);\n }));\n\n return function (_x47) {\n return _ref48.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"tezosSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref49 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee49(params) {\n return _regenerator[\"default\"].wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n _context49.next = 2;\n return call(_objectSpread({\n method: 'tezosSignTransaction'\n }, params));\n\n case 2:\n return _context49.abrupt(\"return\", _context49.sent);\n\n case 3:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49);\n }));\n\n return function (_x48) {\n return _ref49.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"eosGetPublicKey\",\n/*#__PURE__*/\nfunction () {\n var _ref50 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee50(params) {\n return _regenerator[\"default\"].wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n _context50.next = 2;\n return call(_objectSpread({\n method: 'eosGetPublicKey'\n }, params));\n\n case 2:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 3:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50);\n }));\n\n return function (_x49) {\n return _ref50.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"eosSignTransaction\",\n/*#__PURE__*/\nfunction () {\n var _ref51 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee51(params) {\n return _regenerator[\"default\"].wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n _context51.next = 2;\n return call(_objectSpread({\n method: 'eosSignTransaction'\n }, params));\n\n case 2:\n return _context51.abrupt(\"return\", _context51.sent);\n\n case 3:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51);\n }));\n\n return function (_x50) {\n return _ref51.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"verifyMessage\",\n/*#__PURE__*/\nfunction () {\n var _ref52 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee52(params) {\n return _regenerator[\"default\"].wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n _context52.next = 2;\n return call(_objectSpread({\n method: 'verifyMessage'\n }, params));\n\n case 2:\n return _context52.abrupt(\"return\", _context52.sent);\n\n case 3:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52);\n }));\n\n return function (_x51) {\n return _ref52.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"wipeDevice\",\n/*#__PURE__*/\nfunction () {\n var _ref53 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee53(params) {\n return _regenerator[\"default\"].wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n _context53.next = 2;\n return call(_objectSpread({\n method: 'wipeDevice'\n }, params));\n\n case 2:\n return _context53.abrupt(\"return\", _context53.sent);\n\n case 3:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53);\n }));\n\n return function (_x52) {\n return _ref53.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"applyFlags\",\n/*#__PURE__*/\nfunction () {\n var _ref54 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee54(params) {\n return _regenerator[\"default\"].wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n _context54.next = 2;\n return call(_objectSpread({\n method: 'applyFlags'\n }, params));\n\n case 2:\n return _context54.abrupt(\"return\", _context54.sent);\n\n case 3:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54);\n }));\n\n return function (_x53) {\n return _ref54.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"applySettings\",\n/*#__PURE__*/\nfunction () {\n var _ref55 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee55(params) {\n return _regenerator[\"default\"].wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n _context55.next = 2;\n return call(_objectSpread({\n method: 'applySettings'\n }, params));\n\n case 2:\n return _context55.abrupt(\"return\", _context55.sent);\n\n case 3:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55);\n }));\n\n return function (_x54) {\n return _ref55.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"backupDevice\",\n/*#__PURE__*/\n(0, _asyncToGenerator2[\"default\"])(\n/*#__PURE__*/\n_regenerator[\"default\"].mark(function _callee56() {\n return _regenerator[\"default\"].wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n _context56.next = 2;\n return call({\n method: 'backupDevice'\n });\n\n case 2:\n return _context56.abrupt(\"return\", _context56.sent);\n\n case 3:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56);\n})));\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"changePin\",\n/*#__PURE__*/\nfunction () {\n var _ref57 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee57(params) {\n return _regenerator[\"default\"].wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n _context57.next = 2;\n return call(_objectSpread({\n method: 'changePin'\n }, params));\n\n case 2:\n return _context57.abrupt(\"return\", _context57.sent);\n\n case 3:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57);\n }));\n\n return function (_x55) {\n return _ref57.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"firmwareErase\",\n/*#__PURE__*/\nfunction () {\n var _ref58 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee58(params) {\n return _regenerator[\"default\"].wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n _context58.next = 2;\n return call(_objectSpread({\n method: 'firmwareErase'\n }, params));\n\n case 2:\n return _context58.abrupt(\"return\", _context58.sent);\n\n case 3:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58);\n }));\n\n return function (_x56) {\n return _ref58.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"firmwareUpload\",\n/*#__PURE__*/\nfunction () {\n var _ref59 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee59(params) {\n return _regenerator[\"default\"].wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n _context59.next = 2;\n return call(_objectSpread({\n method: 'firmwareUpload'\n }, params));\n\n case 2:\n return _context59.abrupt(\"return\", _context59.sent);\n\n case 3:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59);\n }));\n\n return function (_x57) {\n return _ref59.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"firmwareUpdate\",\n/*#__PURE__*/\nfunction () {\n var _ref60 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee60(params) {\n return _regenerator[\"default\"].wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n _context60.next = 2;\n return call(_objectSpread({\n method: 'firmwareUpdate'\n }, params));\n\n case 2:\n return _context60.abrupt(\"return\", _context60.sent);\n\n case 3:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60);\n }));\n\n return function (_x58) {\n return _ref60.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"recoveryDevice\",\n/*#__PURE__*/\nfunction () {\n var _ref61 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee61(params) {\n return _regenerator[\"default\"].wrap(function _callee61$(_context61) {\n while (1) {\n switch (_context61.prev = _context61.next) {\n case 0:\n _context61.next = 2;\n return call(_objectSpread({\n method: 'recoveryDevice'\n }, params));\n\n case 2:\n return _context61.abrupt(\"return\", _context61.sent);\n\n case 3:\n case \"end\":\n return _context61.stop();\n }\n }\n }, _callee61);\n }));\n\n return function (_x59) {\n return _ref61.apply(this, arguments);\n };\n}());\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"dispose\", function () {\n iframe.dispose();\n\n if (_popupManager) {\n _popupManager.close();\n }\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"cancel\", function () {\n if (_popupManager) {\n _popupManager.emit(POPUP.CLOSED);\n }\n});\n(0, _defineProperty2[\"default\"])(TrezorConnect, \"renderWebUSBButton\", function (className) {\n (0, _button[\"default\"])(className, _settings.webusbSrc, iframe.origin);\n});\nvar _default = TrezorConnect;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9pbmRleC5qcz84NjA2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhCQUE4QixtQkFBTyxDQUFDLHNIQUErQzs7QUFFckYsNkJBQTZCLG1CQUFPLENBQUMsb0hBQThDOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw4Q0FBOEMsbUJBQU8sQ0FBQyxzR0FBdUM7O0FBRTdGLDBDQUEwQyxtQkFBTyxDQUFDLHNGQUE0Qjs7QUFFOUUsZ0RBQWdELG1CQUFPLENBQUMsMEdBQXlDOztBQUVqRyxxQ0FBcUMsbUJBQU8sQ0FBQywrQ0FBUTs7QUFFckQsaUJBQWlCLG1CQUFPLENBQUMseUVBQWE7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDLG1CQUFPLENBQUMsdUZBQXVCOztBQUV2RTs7QUFFQSxvQ0FBb0MsbUJBQU8sQ0FBQywrRUFBbUI7O0FBRS9ELHFDQUFxQyxtQkFBTyxDQUFDLGlGQUFvQjs7QUFFakUsaUNBQWlDLG1CQUFPLENBQUMseUVBQWdCOztBQUV6RDs7QUFFQSxxQ0FBcUMsbUJBQU8sQ0FBQyxpRkFBb0I7O0FBRWpFOztBQUVBLHlDQUF5QyxtQkFBTyxDQUFDLHlGQUF3Qjs7QUFFekU7O0FBRUEsb0NBQW9DLG1CQUFPLENBQUMsaUZBQW9COztBQUVoRSwyQ0FBMkMsbUJBQU8sQ0FBQyxxRkFBc0I7O0FBRXpFLHFDQUFxQyxtQkFBTyxDQUFDLDZFQUFrQjs7QUFFL0QscUNBQXFDLG1CQUFPLENBQUMsMkVBQWlCOztBQUU5RCxxQ0FBcUMsbUJBQU8sQ0FBQyx1RUFBZTs7QUFFNUQsZUFBZSxtQkFBTyxDQUFDLHFFQUFXOztBQUVsQyx1QkFBdUIsbUJBQU8sQ0FBQyx5RkFBd0I7O0FBRXZELGlDQUFpQyxtQkFBTyxDQUFDLGlFQUFTOztBQUVsRCx1QkFBdUIsbUJBQU8sQ0FBQywyRkFBeUI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxlQUFlLG1CQUFPLENBQUMsMkVBQWlCOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQsMENBQTBDLGdDQUFnQyxvQ0FBb0Msb0RBQW9ELDhEQUE4RCxnRUFBZ0UsRUFBRSxFQUFFLGdDQUFnQyxFQUFFLGFBQWE7O0FBRW5WLGdDQUFnQyxnQkFBZ0Isc0JBQXNCLE9BQU8sdURBQXVELGFBQWEsK0NBQStDLDREQUE0RCxFQUFFLEVBQUUsRUFBRSw2Q0FBNkMsMkVBQTJFLEVBQUUsT0FBTyx5Q0FBeUMsa0ZBQWtGLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZTs7QUFFcmhCOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0EsOERBQThEO0FBQzlEO0FBQ0EsWUFBWSwrQkFBK0I7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0EsT0FBTzs7O0FBR1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQSx3Q0FBd0M7OztBQUd4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQSxpRUFBaUUsK0JBQStCO0FBQ2hHO0FBQ0E7QUFDQSxhQUFhOzs7QUFHYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsbUNBQW1DOzs7QUFHbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7O0FBRVg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXOztBQUVYO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZUFBZTs7QUFFZjtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1DQUFtQztBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZUFBZTs7QUFFZjtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXOztBQUVYO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlV2lsZGNhcmRcIik7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xudmFyIF9leHBvcnROYW1lcyA9IHtcbiAgVUlfRVZFTlQ6IHRydWUsXG4gIERFVklDRV9FVkVOVDogdHJ1ZSxcbiAgUkVTUE9OU0VfRVZFTlQ6IHRydWUsXG4gIFRSQU5TUE9SVF9FVkVOVDogdHJ1ZSxcbiAgQkxPQ0tDSEFJTl9FVkVOVDogdHJ1ZSxcbiAgVFJBTlNQT1JUOiB0cnVlLFxuICBVSTogdHJ1ZSxcbiAgREVWSUNFOiB0cnVlLFxuICBCTE9DS0NIQUlOOiB0cnVlXG59O1xuZXhwb3J0cy5CTE9DS0NIQUlOID0gZXhwb3J0cy5ERVZJQ0UgPSBleHBvcnRzLlVJID0gZXhwb3J0cy5UUkFOU1BPUlQgPSBleHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcblxudmFyIF9hc3luY1RvR2VuZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvclwiKSk7XG5cbnZhciBfZXZlbnRzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiZXZlbnRzXCIpKTtcblxudmFyIF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi9jb25zdGFudHNcIik7XG5cbmV4cG9ydHMuVUlfRVZFTlQgPSBfY29uc3RhbnRzLlVJX0VWRU5UO1xuZXhwb3J0cy5ERVZJQ0VfRVZFTlQgPSBfY29uc3RhbnRzLkRFVklDRV9FVkVOVDtcbmV4cG9ydHMuUkVTUE9OU0VfRVZFTlQgPSBfY29uc3RhbnRzLlJFU1BPTlNFX0VWRU5UO1xuZXhwb3J0cy5UUkFOU1BPUlRfRVZFTlQgPSBfY29uc3RhbnRzLlRSQU5TUE9SVF9FVkVOVDtcbmV4cG9ydHMuQkxPQ0tDSEFJTl9FVkVOVCA9IF9jb25zdGFudHMuQkxPQ0tDSEFJTl9FVkVOVDtcblxudmFyIFRSQU5TUE9SVCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL2NvbnN0YW50cy90cmFuc3BvcnRcIikpO1xuXG5leHBvcnRzLlRSQU5TUE9SVCA9IFRSQU5TUE9SVDtcblxudmFyIFBPUFVQID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vY29uc3RhbnRzL3BvcHVwXCIpKTtcblxudmFyIElGUkFNRSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL2NvbnN0YW50cy9pZnJhbWVcIikpO1xuXG52YXIgVUkgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9jb25zdGFudHMvdWlcIikpO1xuXG5leHBvcnRzLlVJID0gVUk7XG5cbnZhciBERVZJQ0UgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9jb25zdGFudHMvZGV2aWNlXCIpKTtcblxuZXhwb3J0cy5ERVZJQ0UgPSBERVZJQ0U7XG5cbnZhciBCTE9DS0NIQUlOID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vY29uc3RhbnRzL2Jsb2NrY2hhaW5cIikpO1xuXG5leHBvcnRzLkJMT0NLQ0hBSU4gPSBCTE9DS0NIQUlOO1xuXG52YXIgRVJST1IgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9jb25zdGFudHMvZXJyb3JzXCIpKTtcblxudmFyIF9Qb3B1cE1hbmFnZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3BvcHVwL1BvcHVwTWFuYWdlclwiKSk7XG5cbnZhciBpZnJhbWUgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9pZnJhbWUvYnVpbGRlclwiKSk7XG5cbnZhciBfYnV0dG9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi93ZWJ1c2IvYnV0dG9uXCIpKTtcblxudmFyIF9kZWJ1ZyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL3V0aWxzL2RlYnVnXCIpKTtcblxudmFyIF9tZXNzYWdlID0gcmVxdWlyZShcIi4vbWVzc2FnZVwiKTtcblxudmFyIF9Db25uZWN0U2V0dGluZ3MgPSByZXF1aXJlKFwiLi9kYXRhL0Nvbm5lY3RTZXR0aW5nc1wiKTtcblxudmFyICRUID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vdHlwZXNcIikpO1xuXG52YXIgX2Jsb2NrY2hhaW5FdmVudCA9IHJlcXVpcmUoXCIuL3R5cGVzL2Jsb2NrY2hhaW5FdmVudFwiKTtcblxuT2JqZWN0LmtleXMoX2Jsb2NrY2hhaW5FdmVudCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gIGlmIChrZXkgPT09IFwiZGVmYXVsdFwiIHx8IGtleSA9PT0gXCJfX2VzTW9kdWxlXCIpIHJldHVybjtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfZXhwb3J0TmFtZXMsIGtleSkpIHJldHVybjtcbiAgZXhwb3J0c1trZXldID0gX2Jsb2NrY2hhaW5FdmVudFtrZXldO1xufSk7XG5cbnZhciBfYWNjb3VudCA9IHJlcXVpcmUoXCIuL3R5cGVzL2FjY291bnRcIik7XG5cbk9iamVjdC5rZXlzKF9hY2NvdW50KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwga2V5ID09PSBcIl9fZXNNb2R1bGVcIikgcmV0dXJuO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9leHBvcnROYW1lcywga2V5KSkgcmV0dXJuO1xuICBleHBvcnRzW2tleV0gPSBfYWNjb3VudFtrZXldO1xufSk7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhzb3VyY2UsIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgZXZlbnRFbWl0dGVyID0gbmV3IF9ldmVudHNbXCJkZWZhdWx0XCJdKCk7XG5cbnZhciBfbG9nID0gKDAsIF9kZWJ1Zy5pbml0KSgnW3RyZXpvci1jb25uZWN0LmpzXScpO1xuXG52YXIgX3NldHRpbmdzO1xuXG52YXIgX3BvcHVwTWFuYWdlcjtcblxudmFyIGluaXRQb3B1cE1hbmFnZXIgPSBmdW5jdGlvbiBpbml0UG9wdXBNYW5hZ2VyKCkge1xuICB2YXIgcG0gPSBuZXcgX1BvcHVwTWFuYWdlcltcImRlZmF1bHRcIl0oX3NldHRpbmdzKTtcbiAgcG0ub24oUE9QVVAuQ0xPU0VELCBmdW5jdGlvbiAoKSB7XG4gICAgaWZyYW1lLnBvc3RNZXNzYWdlKHtcbiAgICAgIHR5cGU6IFBPUFVQLkNMT1NFRFxuICAgIH0sIGZhbHNlKTtcbiAgfSk7XG4gIHJldHVybiBwbTtcbn07IC8vIGhhbmRsZSBtZXNzYWdlIHJlY2VpdmVkIGZyb20gaWZyYW1lXG5cblxudmFyIGhhbmRsZU1lc3NhZ2UgPSBmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKG1lc3NhZ2VFdmVudCkge1xuICAvLyBpZ25vcmUgbWVzc2FnZXMgZnJvbSBkb21haW4gb3RoZXIgdGhlbiBpZnJhbWUgb3JpZ2luXG4gIGlmIChtZXNzYWdlRXZlbnQub3JpZ2luICE9PSBpZnJhbWUub3JpZ2luKSByZXR1cm47XG4gIHZhciBtZXNzYWdlID0gKDAsIF9tZXNzYWdlLnBhcnNlTWVzc2FnZSkobWVzc2FnZUV2ZW50LmRhdGEpOyAvLyBUT0RPOiBkZXN0cnVjdHVyaW5nIHdpdGggdHlwZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzI0MFxuICAvLyBjb25zdCB7IGlkLCBldmVudCwgdHlwZSwgZGF0YSwgZXJyb3IgfTogQ29yZU1lc3NhZ2UgPSBtZXNzYWdlO1xuXG4gIHZhciBpZCA9IG1lc3NhZ2UuaWQgfHwgMDtcbiAgdmFyIGV2ZW50ID0gbWVzc2FnZS5ldmVudDtcbiAgdmFyIHR5cGUgPSBtZXNzYWdlLnR5cGU7XG4gIHZhciBwYXlsb2FkID0gbWVzc2FnZS5wYXlsb2FkO1xuXG4gIF9sb2cubG9nKCdoYW5kbGVNZXNzYWdlJywgbWVzc2FnZSk7XG5cbiAgc3dpdGNoIChldmVudCkge1xuICAgIGNhc2UgX2NvbnN0YW50cy5SRVNQT05TRV9FVkVOVDpcbiAgICAgIGlmIChpZnJhbWUubWVzc2FnZVByb21pc2VzW2lkXSkge1xuICAgICAgICAvLyBjbGVhciB1bm5lY2Vzc2FyeSBmaWVsZHMgZnJvbSBtZXNzYWdlIG9iamVjdFxuICAgICAgICBkZWxldGUgbWVzc2FnZS50eXBlO1xuICAgICAgICBkZWxldGUgbWVzc2FnZS5ldmVudDsgLy8gZGVsZXRlIG1lc3NhZ2UuaWQ7XG4gICAgICAgIC8vIG1lc3NhZ2UuX19pZCA9IGlkO1xuICAgICAgICAvLyByZXNvbHZlIG1lc3NhZ2UgcHJvbWlzZSAoc2VuZCByZXN1bHQgb2YgY2FsbCBtZXRob2QpXG5cbiAgICAgICAgaWZyYW1lLm1lc3NhZ2VQcm9taXNlc1tpZF0ucmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgZGVsZXRlIGlmcmFtZS5tZXNzYWdlUHJvbWlzZXNbaWRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgX2xvZy53YXJuKFwiVW5rbm93biBtZXNzYWdlIGlkIFwiICsgaWQpO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgX2NvbnN0YW50cy5ERVZJQ0VfRVZFTlQ6XG4gICAgICAvLyBwYXNzIERFVklDRSBldmVudCB1cCB0byBodG1sXG4gICAgICBldmVudEVtaXR0ZXIuZW1pdChldmVudCwgbWVzc2FnZSk7XG4gICAgICBldmVudEVtaXR0ZXIuZW1pdCh0eXBlLCBwYXlsb2FkKTsgLy8gREVWSUNFX0VWRU5UIGFsc28gZW1pdCBzaW5nbGUgZXZlbnRzIChjb25uZWN0L2Rpc2Nvbm5lY3QuLi4pXG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBfY29uc3RhbnRzLlRSQU5TUE9SVF9FVkVOVDpcbiAgICAgIGV2ZW50RW1pdHRlci5lbWl0KGV2ZW50LCBtZXNzYWdlKTtcbiAgICAgIGV2ZW50RW1pdHRlci5lbWl0KHR5cGUsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIF9jb25zdGFudHMuQkxPQ0tDSEFJTl9FVkVOVDpcbiAgICAgIGV2ZW50RW1pdHRlci5lbWl0KGV2ZW50LCBtZXNzYWdlKTtcbiAgICAgIGV2ZW50RW1pdHRlci5lbWl0KHR5cGUsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIF9jb25zdGFudHMuVUlfRVZFTlQ6XG4gICAgICBpZiAodHlwZSA9PT0gSUZSQU1FLkJPT1RTVFJBUCkge1xuICAgICAgICBpZnJhbWUuY2xlYXJUaW1lb3V0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBQT1BVUC5CT09UU1RSQVApIHtcbiAgICAgICAgLy8gUG9wdXAgZGlkIG9wZW4gYnV0IGlzIHN0aWxsIGxvYWRpbmcgSlNcbiAgICAgICAgX3BvcHVwTWFuYWdlci5jYW5jZWxPcGVuVGltZW91dCgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfSAvLyBwYXNzIFVJIGV2ZW50IHVwXG5cblxuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnQsIG1lc3NhZ2UpO1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQodHlwZSwgcGF5bG9hZCk7XG5cbiAgICAgIGlmICh0eXBlID09PSBVSS5JRlJBTUVfSEFORFNIQUtFKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLmVycm9yKSB7XG4gICAgICAgICAgaWZyYW1lLmluaXRQcm9taXNlLnJlamVjdChuZXcgRXJyb3IocGF5bG9hZC5lcnJvcikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9wb3B1cE1hbmFnZXIuc2V0QnJvYWRjYXN0KHBheWxvYWQuYnJvYWRjYXN0KTtcblxuICAgICAgICAgIGlmcmFtZS5pbml0UHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gUE9QVVAuQ0FOQ0VMX1BPUFVQX1JFUVVFU1QpIHtcbiAgICAgICAgX3BvcHVwTWFuYWdlci5jYW5jZWwoKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVUkuQ0xPU0VfVUlfV0lORE9XKSB7XG4gICAgICAgIF9wb3B1cE1hbmFnZXIuY2xvc2UoKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgX2xvZy5sb2coJ1VuZGVmaW5lZCBtZXNzYWdlJywgZXZlbnQsIG1lc3NhZ2VFdmVudCk7XG5cbiAgfVxufTtcblxudmFyIGluaXQgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZShzZXR0aW5ncykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBpZiAoc2V0dGluZ3MgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICBzZXR0aW5ncyA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlmcmFtZS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IEVSUk9SLklGUkFNRV9JTklUSUFMSVpFRDtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGlmICghX3NldHRpbmdzKSB7XG4gICAgICAgICAgICAgIF9zZXR0aW5ncyA9ICgwLCBfQ29ubmVjdFNldHRpbmdzLnBhcnNlKShzZXR0aW5ncyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChfc2V0dGluZ3MubWFuaWZlc3QpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDY7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBFUlJPUi5NQU5JRkVTVF9OT1RfU0VUO1xuXG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgaWYgKF9zZXR0aW5ncy5zdXBwb3J0ZWRCcm93c2VyKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA4O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgRVJST1IuQlJPV1NFUl9OT1RfU1VQUE9SVEVEO1xuXG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgaWYgKCFfcG9wdXBNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgIF9wb3B1cE1hbmFnZXIgPSBpbml0UG9wdXBNYW5hZ2VyKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9sb2cuZW5hYmxlZCA9IF9zZXR0aW5ncy5kZWJ1ZztcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlTWVzc2FnZSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICBpZiAoX3BvcHVwTWFuYWdlcikge1xuICAgICAgICAgICAgICAgIF9wb3B1cE1hbmFnZXIub25CZWZvcmVVbmxvYWQoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmcmFtZS5kaXNwb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxNDtcbiAgICAgICAgICAgIHJldHVybiBpZnJhbWUuaW5pdChfc2V0dGluZ3MpO1xuXG4gICAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZSk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gaW5pdChfeCkge1xuICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCk7XG5cbnZhciBjYWxsID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYyID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMihwYXJhbXMpIHtcbiAgICB2YXIgcmVzcG9uc2U7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBpZiAoISghaWZyYW1lLmluc3RhbmNlICYmICFpZnJhbWUudGltZW91dCkpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxOTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGluaXQgcG9wdXAgd2l0aCBsYXp5IGxvYWRpbmcgYmVmb3JlIGlmcmFtZSBpbml0aWFsaXphdGlvblxuICAgICAgICAgICAgX3NldHRpbmdzID0gKDAsIF9Db25uZWN0U2V0dGluZ3MucGFyc2UpKF9zZXR0aW5ncyk7XG5cbiAgICAgICAgICAgIGlmIChfc2V0dGluZ3MubWFuaWZlc3QpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA0O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwge1xuICAgICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgIGVycm9yOiBFUlJPUi5NQU5JRkVTVF9OT1RfU0VULm1lc3NhZ2VcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBpZiAoX3NldHRpbmdzLnN1cHBvcnRlZEJyb3dzZXIpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA2O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwge1xuICAgICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgIGVycm9yOiBFUlJPUi5CUk9XU0VSX05PVF9TVVBQT1JURUQubWVzc2FnZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIF9wb3B1cE1hbmFnZXIgPSBpbml0UG9wdXBNYW5hZ2VyKCk7XG5cbiAgICAgICAgICAgIF9wb3B1cE1hbmFnZXIucmVxdWVzdCh0cnVlKTsgLy8gYXV0byBpbml0IHdpdGggZGVmYXVsdCBzZXR0aW5nc1xuXG5cbiAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gODtcbiAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTE7XG4gICAgICAgICAgICByZXR1cm4gaW5pdChfc2V0dGluZ3MpO1xuXG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTM7XG4gICAgICAgICAgICByZXR1cm4gX3BvcHVwTWFuYWdlci5yZXNvbHZlTGF6eUxvYWQoKTtcblxuICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDE5O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAxNTtcbiAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MltcImNhdGNoXCJdKDgpO1xuXG4gICAgICAgICAgICBfcG9wdXBNYW5hZ2VyLmNsb3NlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogX2NvbnRleHQyLnQwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIGlmICghaWZyYW1lLnRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAyMztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogRVJST1IuTk9fSUZSQU1FLm1lc3NhZ2VcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgaWYgKCFpZnJhbWUuZXJyb3IpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAyNTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogaWZyYW1lLmVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICAgIC8vIHJlcXVlc3QgcG9wdXAgd2luZG93IGl0IG1pZ2h0IGJlIHVzZWQgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAgICAgLy8gaWYgKGV2ZW50RW1pdHRlci5saXN0ZW5lcnMoVUlfRVZFTlQpLmxlbmd0aCA8IDEpIHsgX3BvcHVwTWFuYWdlci5yZXF1ZXN0KHBhcmFtcyk7IH1cbiAgICAgICAgICAgIGlmIChfc2V0dGluZ3MucG9wdXApIHtcbiAgICAgICAgICAgICAgX3BvcHVwTWFuYWdlci5yZXF1ZXN0KCk7XG4gICAgICAgICAgICB9IC8vIHBvc3QgbWVzc2FnZSB0byBpZnJhbWVcblxuXG4gICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDI2O1xuICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAyOTtcbiAgICAgICAgICAgIHJldHVybiBpZnJhbWUucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICB0eXBlOiBJRlJBTUUuQ0FMTCxcbiAgICAgICAgICAgICAgcGF5bG9hZDogcGFyYW1zXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNhc2UgMjk6XG4gICAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0Mi5zZW50O1xuXG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMzU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUT0RPOiB1bmxvY2sgcG9wdXBNYW5hZ2VyIHJlcXVlc3Qgb25seSBpZiB0aGVyZSB3YXNuJ3QgZXJyb3IgXCJpbiBwcm9ncmVzc1wiXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UucGF5bG9hZC5lcnJvciAhPT0gRVJST1IuREVWSUNFX0NBTExfSU5fUFJPR1JFU1MubWVzc2FnZSkge1xuICAgICAgICAgICAgICBfcG9wdXBNYW5hZ2VyLnVubG9jaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmFicnVwdChcInJldHVyblwiLCByZXNwb25zZSk7XG5cbiAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgX3BvcHVwTWFuYWdlci51bmxvY2soKTsgLy8gVE9ET1xuXG5cbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogJ05vIHJlc3BvbnNlIGZyb20gaWZyYW1lJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDQzO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAzOTtcbiAgICAgICAgICAgIF9jb250ZXh0Mi50MSA9IF9jb250ZXh0MltcImNhdGNoXCJdKDI2KTtcblxuICAgICAgICAgICAgX2xvZy5lcnJvcignX19jYWxsIGVycm9yJywgX2NvbnRleHQyLnQxKTtcblxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyLnQxKTtcblxuICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMiwgbnVsbCwgW1s4LCAxNV0sIFsyNiwgMzldXSk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gY2FsbChfeDIpIHtcbiAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKTtcblxudmFyIGN1c3RvbU1lc3NhZ2VSZXNwb25zZSA9IGZ1bmN0aW9uIGN1c3RvbU1lc3NhZ2VSZXNwb25zZShwYXlsb2FkKSB7XG4gIGlmcmFtZS5wb3N0TWVzc2FnZSh7XG4gICAgZXZlbnQ6IF9jb25zdGFudHMuVUlfRVZFTlQsXG4gICAgdHlwZTogVUkuQ1VTVE9NX01FU1NBR0VfUkVTUE9OU0UsXG4gICAgcGF5bG9hZDogcGF5bG9hZFxuICB9KTtcbn07XG5cbnZhciBUcmV6b3JDb25uZWN0ID0gZnVuY3Rpb24gVHJlem9yQ29ubmVjdCgpIHt9O1xuXG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwibWFuaWZlc3RcIiwgZnVuY3Rpb24gKGRhdGEpIHtcbiAgX3NldHRpbmdzID0gKDAsIF9Db25uZWN0U2V0dGluZ3MucGFyc2UpKHtcbiAgICBtYW5pZmVzdDogZGF0YVxuICB9KTtcbn0pO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImdldFNldHRpbmdzXCIsXG4vKiNfX1BVUkVfXyovXG4oMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4vKiNfX1BVUkVfXyovXG5fcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7XG4gIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0Mykge1xuICAgIHdoaWxlICgxKSB7XG4gICAgICBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIGlmIChpZnJhbWUuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBfY29udGV4dDMuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBlcnJvcjogJ0lmcmFtZSBub3QgaW5pdGlhbGl6ZWQgeWV0LCB5b3UgbmVlZCB0byBjYWxsIFRyZXpvckNvbm5lY3QuaW5pdCBvciBhbnkgb3RoZXIgbWV0aG9kIGZpcnN0LidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA0O1xuICAgICAgICAgIHJldHVybiBjYWxsKHtcbiAgICAgICAgICAgIG1ldGhvZDogJ2dldFNldHRpbmdzJ1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDMuc2VudCk7XG5cbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBfY2FsbGVlMyk7XG59KSkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImluaXRcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNChzZXR0aW5ncykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDQucHJldiA9IF9jb250ZXh0NC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGluaXQoc2V0dGluZ3MpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ0LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTQpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDMpIHtcbiAgICByZXR1cm4gX3JlZjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwib25cIiwgZnVuY3Rpb24gKHR5cGUsIGZuKSB7XG4gIGV2ZW50RW1pdHRlci5vbih0eXBlLCBmbik7XG59KTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJvZmZcIiwgZnVuY3Rpb24gKHR5cGUsIGZuKSB7XG4gIGV2ZW50RW1pdHRlci5yZW1vdmVMaXN0ZW5lcih0eXBlLCBmbik7XG59KTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJ1aVJlc3BvbnNlXCIsIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICBpZnJhbWUucG9zdE1lc3NhZ2UoX29iamVjdFNwcmVhZCh7XG4gICAgZXZlbnQ6IF9jb25zdGFudHMuVUlfRVZFTlRcbiAgfSwgcmVzcG9uc2UpKTtcbn0pO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImNoYW5nZVNldHRpbmdzXCIsIGZ1bmN0aW9uIChzZXR0aW5ncykge1xuICB2YXIgcGFyc2VkU2V0dGluZ3MgPSAoMCwgX0Nvbm5lY3RTZXR0aW5ncy5wYXJzZSkoc2V0dGluZ3MpO1xuICBfbG9nLmVuYWJsZWQgPSBwYXJzZWRTZXR0aW5ncy5kZWJ1ZztcbiAgaWZyYW1lLnBvc3RNZXNzYWdlKHtcbiAgICB0eXBlOiBVSS5DSEFOR0VfU0VUVElOR1MsXG4gICAgcGF5bG9hZDogcGFyc2VkU2V0dGluZ3NcbiAgfSwgZmFsc2UpO1xufSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiYmxvY2tjaGFpbkRpc2Nvbm5lY3RcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY1ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdibG9ja2NoYWluRGlzY29ubmVjdCdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ1LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDQpIHtcbiAgICByZXR1cm4gX3JlZjUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiYmxvY2tjaGFpbkVzdGltYXRlRmVlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTYocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNiQoX2NvbnRleHQ2KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnYmxvY2tjaGFpbkVzdGltYXRlRmVlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDYuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNik7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94NSkge1xuICAgIHJldHVybiBfcmVmNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJibG9ja2NoYWluU3Vic2NyaWJlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNyA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNyQoX2NvbnRleHQ3KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0Ny5wcmV2ID0gX2NvbnRleHQ3Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnYmxvY2tjaGFpblN1YnNjcmliZSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ3LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTcpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDYpIHtcbiAgICByZXR1cm4gX3JlZjcuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiYmxvY2tjaGFpblVuc3Vic2NyaWJlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmOCA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTgocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlOCQoX2NvbnRleHQ4KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0OC5wcmV2ID0gX2NvbnRleHQ4Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDgubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnYmxvY2tjaGFpblVuc3Vic2NyaWJlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ4LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDguc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0OC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlOCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94Nykge1xuICAgIHJldHVybiBfcmVmOC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJjdXN0b21NZXNzYWdlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmOSA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTEwKHBhcmFtcykge1xuICAgIHZhciBjYWxsYmFjaywgY3VzdG9tTWVzc2FnZUxpc3RlbmVyLCByZXNwb25zZTtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUxMCQoX2NvbnRleHQxMCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDEwLnByZXYgPSBfY29udGV4dDEwLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBpZiAoISh0eXBlb2YgcGFyYW1zLmNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSkge1xuICAgICAgICAgICAgICBfY29udGV4dDEwLm5leHQgPSAyO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MTAuYWJydXB0KFwicmV0dXJuXCIsIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogJ1BhcmFtZXRlciBcImNhbGxiYWNrXCIgaXMgbm90IGEgZnVuY3Rpb24nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgLy8gVE9ETzogc2V0IG1lc3NhZ2UgbGlzdGVuZXIgb25seSBpZiBpZnJhbWUgaXMgbG9hZGVkIGNvcnJlY3RseVxuICAgICAgICAgICAgY2FsbGJhY2sgPSBwYXJhbXMuY2FsbGJhY2s7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLmNhbGxiYWNrO1xuXG4gICAgICAgICAgICBjdXN0b21NZXNzYWdlTGlzdGVuZXIgPVxuICAgICAgICAgICAgLyojX19QVVJFX18qL1xuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICB2YXIgX3JlZjEwID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAgICAgICAgIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlOShldmVudCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRhLCBwYXlsb2FkO1xuICAgICAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTkkKF9jb250ZXh0OSkge1xuICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfY29udGV4dDkucHJldiA9IF9jb250ZXh0OS5uZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGV2ZW50LmRhdGE7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGRhdGEgJiYgZGF0YS50eXBlID09PSBVSS5DVVNUT01fTUVTU0FHRV9SRVFVRVNUKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDkubmV4dCA9IDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDkubmV4dCA9IDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZGF0YS5wYXlsb2FkKTtcblxuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSBfY29udGV4dDkuc2VudDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tTWVzc2FnZVJlc3BvbnNlKHBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tTWVzc2FnZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAncmVsZWFzZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0OS5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBfY2FsbGVlOSk7XG4gICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gY3VzdG9tTWVzc2FnZUxpc3RlbmVyKF94OSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmMTAuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0oKTtcblxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjdXN0b21NZXNzYWdlTGlzdGVuZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIF9jb250ZXh0MTAubmV4dCA9IDg7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnY3VzdG9tTWVzc2FnZSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgcmVzcG9uc2UgPSBfY29udGV4dDEwLnNlbnQ7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGN1c3RvbU1lc3NhZ2VMaXN0ZW5lcik7XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxMC5hYnJ1cHQoXCJyZXR1cm5cIiwgcmVzcG9uc2UpO1xuXG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxMC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMTApO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDgpIHtcbiAgICByZXR1cm4gX3JlZjkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwicmVxdWVzdExvZ2luXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMTEgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUxMihwYXJhbXMpIHtcbiAgICB2YXIgY2FsbGJhY2ssIGxvZ2luQ2hhbGxlbmdlTGlzdGVuZXIsIHJlc3BvbnNlO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTEyJChfY29udGV4dDEyKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MTIucHJldiA9IF9jb250ZXh0MTIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiBwYXJhbXMuY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0MTIubmV4dCA9IDEyO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FsbGJhY2sgPSBwYXJhbXMuY2FsbGJhY2s7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zLmNhbGxiYWNrOyAvLyBkZWxldGUgY2FsbGJhY2sgdmFsdWUuIHRoaXMgZmllbGQgY2Fubm90IGJlIHNlbnQgdXNpbmcgcG9zdE1lc3NhZ2UgZnVuY3Rpb25cbiAgICAgICAgICAgIC8vIFRPRE86IHNldCBtZXNzYWdlIGxpc3RlbmVyIG9ubHkgaWYgaWZyYW1lIGlzIGxvYWRlZCBjb3JyZWN0bHlcblxuICAgICAgICAgICAgbG9naW5DaGFsbGVuZ2VMaXN0ZW5lciA9XG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHZhciBfcmVmMTIgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gICAgICAgICAgICAgIC8qI19fUFVSRV9fKi9cbiAgICAgICAgICAgICAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUxMShldmVudCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRhLCBwYXlsb2FkO1xuICAgICAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTExJChfY29udGV4dDExKSB7XG4gICAgICAgICAgICAgICAgICB3aGlsZSAoMSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MTEucHJldiA9IF9jb250ZXh0MTEubmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBldmVudC5kYXRhO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShkYXRhICYmIGRhdGEudHlwZSA9PT0gVUkuTE9HSU5fQ0hBTExFTkdFX1JFUVVFU1QpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0MTEubmV4dCA9IDEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQxMS5wcmV2ID0gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0MTEubmV4dCA9IDU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcblxuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSBfY29udGV4dDExLnNlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWUucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudDogX2NvbnN0YW50cy5VSV9FVkVOVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogVUkuTE9HSU5fQ0hBTExFTkdFX1JFU1BPTlNFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0MTEubmV4dCA9IDEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDExLnByZXYgPSA5O1xuICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQxMS50MCA9IF9jb250ZXh0MTFbXCJjYXRjaFwiXSgyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVHJlem9yQ29ubmVjdC5yZXF1ZXN0TG9naW46IGNhbGxiYWNrIGVycm9yJywgX2NvbnRleHQxMS50MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWUucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudDogX2NvbnN0YW50cy5VSV9FVkVOVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogVUkuTE9HSU5fQ0hBTExFTkdFX1JFU1BPTlNFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiBfY29udGV4dDExLnQwLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxMS5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBfY2FsbGVlMTEsIG51bGwsIFtbMiwgOV1dKTtcbiAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dpbkNoYWxsZW5nZUxpc3RlbmVyKF94MTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZjEyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KCk7XG5cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbG9naW5DaGFsbGVuZ2VMaXN0ZW5lciwgZmFsc2UpO1xuICAgICAgICAgICAgX2NvbnRleHQxMi5uZXh0ID0gNztcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdyZXF1ZXN0TG9naW4nXG4gICAgICAgICAgICB9LCBwYXJhbXMsIHtcbiAgICAgICAgICAgICAgYXN5bmNDaGFsbGVuZ2U6IHRydWVcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJlc3BvbnNlID0gX2NvbnRleHQxMi5zZW50O1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsb2dpbkNoYWxsZW5nZUxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDEyLmFicnVwdChcInJldHVyblwiLCByZXNwb25zZSk7XG5cbiAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgICAgX2NvbnRleHQxMi5uZXh0ID0gMTQ7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAncmVxdWVzdExvZ2luJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MTIuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MTIuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDEyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUxMik7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MTApIHtcbiAgICByZXR1cm4gX3JlZjExLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcInJlc2V0RGV2aWNlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMTMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUxMyhwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUxMyQoX2NvbnRleHQxMykge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDEzLnByZXYgPSBfY29udGV4dDEzLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDEzLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3Jlc2V0RGV2aWNlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxMy5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQxMy5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxMy5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMTMpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDEyKSB7XG4gICAgcmV0dXJuIF9yZWYxMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJjYXJkYW5vR2V0QWRkcmVzc1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjE0ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMTQocGFyYW1zKSB7XG4gICAgdmFyIHVzZUV2ZW50TGlzdGVuZXI7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMTQkKF9jb250ZXh0MTQpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQxNC5wcmV2ID0gX2NvbnRleHQxNC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lciA9IGV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50KFVJLkFERFJFU1NfVkFMSURBVElPTikgPiAwO1xuICAgICAgICAgICAgX2NvbnRleHQxNC5uZXh0ID0gMztcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdjYXJkYW5vR2V0QWRkcmVzcydcbiAgICAgICAgICAgIH0sIHBhcmFtcywge1xuICAgICAgICAgICAgICB1c2VFdmVudExpc3RlbmVyOiB1c2VFdmVudExpc3RlbmVyXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxNC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQxNC5zZW50KTtcblxuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxNC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMTQpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDEzKSB7XG4gICAgcmV0dXJuIF9yZWYxNC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJjYXJkYW5vR2V0UHVibGljS2V5XCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMTUgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUxNShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUxNSQoX2NvbnRleHQxNSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDE1LnByZXYgPSBfY29udGV4dDE1Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDE1Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2NhcmRhbm9HZXRQdWJsaWNLZXknXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE1LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDE1LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE1LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUxNSk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MTQpIHtcbiAgICByZXR1cm4gX3JlZjE1LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImNhcmRhbm9TaWduVHJhbnNhY3Rpb25cIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYxNiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTE2KHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTE2JChfY29udGV4dDE2KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MTYucHJldiA9IF9jb250ZXh0MTYubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0MTYubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnY2FyZGFub1NpZ25UcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MTYuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MTYuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MTYuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTE2KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gxNSkge1xuICAgIHJldHVybiBfcmVmMTYuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiY2lwaGVyS2V5VmFsdWVcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYxNyA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTE3KHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTE3JChfY29udGV4dDE3KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MTcucHJldiA9IF9jb250ZXh0MTcubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0MTcubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnY2lwaGVyS2V5VmFsdWUnXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE3LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDE3LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE3LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUxNyk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MTYpIHtcbiAgICByZXR1cm4gX3JlZjE3LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImNvbXBvc2VUcmFuc2FjdGlvblwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjE4ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMTgocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMTgkKF9jb250ZXh0MTgpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQxOC5wcmV2ID0gX2NvbnRleHQxOC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQxOC5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdjb21wb3NlVHJhbnNhY3Rpb24nXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE4LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDE4LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDE4LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUxOCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MTcpIHtcbiAgICByZXR1cm4gX3JlZjE4LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImRlYnVnTGlua0RlY2lzaW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMTkgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUxOShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUxOSQoX2NvbnRleHQxOSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDE5LnByZXYgPSBfY29udGV4dDE5Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDE5Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2RlYnVnTGlua0RlY2lzaW9uJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxOS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQxOS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQxOS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMTkpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDE4KSB7XG4gICAgcmV0dXJuIF9yZWYxOS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJkZWJ1Z0xpbmtHZXRTdGF0ZVwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjIwID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMjAocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMjAkKF9jb250ZXh0MjApIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQyMC5wcmV2ID0gX2NvbnRleHQyMC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQyMC5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdkZWJ1Z0xpbmtHZXRTdGF0ZSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MjAuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MjAuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MjAuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTIwKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gxOSkge1xuICAgIHJldHVybiBfcmVmMjAuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZXRoZXJldW1HZXRBY2NvdW50SW5mb1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjIxID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMjEocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMjEkKF9jb250ZXh0MjEpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQyMS5wcmV2ID0gX2NvbnRleHQyMS5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQyMS5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdldGhlcmV1bUdldEFjY291bnRJbmZvJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyMS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyMS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyMS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMjEpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDIwKSB7XG4gICAgcmV0dXJuIF9yZWYyMS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJldGhlcmV1bUdldEFkZHJlc3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYyMiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIyKHBhcmFtcykge1xuICAgIHZhciB1c2VFdmVudExpc3RlbmVyO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIyJChfY29udGV4dDIyKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MjIucHJldiA9IF9jb250ZXh0MjIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXIgPSBldmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudChVSS5BRERSRVNTX1ZBTElEQVRJT04pID4gMDtcbiAgICAgICAgICAgIF9jb250ZXh0MjIubmV4dCA9IDM7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnZXRoZXJldW1HZXRBZGRyZXNzJ1xuICAgICAgICAgICAgfSwgcGFyYW1zLCB7XG4gICAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXI6IHVzZUV2ZW50TGlzdGVuZXJcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIyLmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDIyLnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUyMik7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MjEpIHtcbiAgICByZXR1cm4gX3JlZjIyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImV0aGVyZXVtR2V0UHVibGljS2V5XCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMjMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyMyhwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyMyQoX2NvbnRleHQyMykge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDIzLnByZXYgPSBfY29udGV4dDIzLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDIzLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2V0aGVyZXVtR2V0UHVibGljS2V5J1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyMy5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyMy5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyMy5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMjMpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDIyKSB7XG4gICAgcmV0dXJuIF9yZWYyMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJldGhlcmV1bVNpZ25NZXNzYWdlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMjQgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyNChwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyNCQoX2NvbnRleHQyNCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDI0LnByZXYgPSBfY29udGV4dDI0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDI0Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2V0aGVyZXVtU2lnbk1lc3NhZ2UnXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDI0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDI0LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDI0LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUyNCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MjMpIHtcbiAgICByZXR1cm4gX3JlZjI0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImV0aGVyZXVtU2lnblRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMjUgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyNShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyNSQoX2NvbnRleHQyNSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDI1LnByZXYgPSBfY29udGV4dDI1Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDI1Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2V0aGVyZXVtU2lnblRyYW5zYWN0aW9uJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyNS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyNS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyNS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMjUpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDI0KSB7XG4gICAgcmV0dXJuIF9yZWYyNS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJldGhlcmV1bVZlcmlmeU1lc3NhZ2VcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYyNiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTI2KHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTI2JChfY29udGV4dDI2KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MjYucHJldiA9IF9jb250ZXh0MjYubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0MjYubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnZXRoZXJldW1WZXJpZnlNZXNzYWdlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyNi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyNi5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyNi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMjYpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDI1KSB7XG4gICAgcmV0dXJuIF9yZWYyNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJnZXRBY2NvdW50SW5mb1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjI3ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMjcocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMjckKF9jb250ZXh0MjcpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQyNy5wcmV2ID0gX2NvbnRleHQyNy5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQyNy5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdnZXRBY2NvdW50SW5mbydcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MjcuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mjcuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mjcuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTI3KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gyNikge1xuICAgIHJldHVybiBfcmVmMjcuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZ2V0QWRkcmVzc1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjI4ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMjgocGFyYW1zKSB7XG4gICAgdmFyIHVzZUV2ZW50TGlzdGVuZXI7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMjgkKF9jb250ZXh0MjgpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQyOC5wcmV2ID0gX2NvbnRleHQyOC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lciA9IGV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50KFVJLkFERFJFU1NfVkFMSURBVElPTikgPiAwO1xuICAgICAgICAgICAgX2NvbnRleHQyOC5uZXh0ID0gMztcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdnZXRBZGRyZXNzJ1xuICAgICAgICAgICAgfSwgcGFyYW1zLCB7XG4gICAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXI6IHVzZUV2ZW50TGlzdGVuZXJcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDI4LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDI4LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDI4LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUyOCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MjcpIHtcbiAgICByZXR1cm4gX3JlZjI4LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImdldERldmljZVN0YXRlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMjkgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyOShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyOSQoX2NvbnRleHQyOSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDI5LnByZXYgPSBfY29udGV4dDI5Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDI5Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2dldERldmljZVN0YXRlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyOS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyOS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyOS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMjkpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDI4KSB7XG4gICAgcmV0dXJuIF9yZWYyOS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJnZXRGZWF0dXJlc1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjMwID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMzAocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMzAkKF9jb250ZXh0MzApIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQzMC5wcmV2ID0gX2NvbnRleHQzMC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQzMC5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdnZXRGZWF0dXJlcydcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzAuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MzAuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzAuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMwKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gyOSkge1xuICAgIHJldHVybiBfcmVmMzAuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZ2V0UHVibGljS2V5XCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzEgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzMShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzMSQoX2NvbnRleHQzMSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDMxLnByZXYgPSBfY29udGV4dDMxLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDMxLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2dldFB1YmxpY0tleSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzEuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MzEuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzEuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMxKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gzMCkge1xuICAgIHJldHVybiBfcmVmMzEuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwibGlza0dldEFkZHJlc3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYzMiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMyKHBhcmFtcykge1xuICAgIHZhciB1c2VFdmVudExpc3RlbmVyO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMyJChfY29udGV4dDMyKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MzIucHJldiA9IF9jb250ZXh0MzIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXIgPSBldmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudChVSS5BRERSRVNTX1ZBTElEQVRJT04pID4gMDtcbiAgICAgICAgICAgIF9jb250ZXh0MzIubmV4dCA9IDM7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnbGlza0dldEFkZHJlc3MnXG4gICAgICAgICAgICB9LCBwYXJhbXMsIHtcbiAgICAgICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lcjogdXNlRXZlbnRMaXN0ZW5lclxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzIuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0MzIuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzIuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMyKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gzMSkge1xuICAgIHJldHVybiBfcmVmMzIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwibGlza0dldFB1YmxpY0tleVwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjMzID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlMzMocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMzMkKF9jb250ZXh0MzMpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQzMy5wcmV2ID0gX2NvbnRleHQzMy5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQzMy5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdsaXNrR2V0UHVibGljS2V5J1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzMy5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQzMy5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzMy5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMzMpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDMyKSB7XG4gICAgcmV0dXJuIF9yZWYzMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJsaXNrU2lnbk1lc3NhZ2VcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWYzNCA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTM0KHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTM0JChfY29udGV4dDM0KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0MzQucHJldiA9IF9jb250ZXh0MzQubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0MzQubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnbGlza1NpZ25NZXNzYWdlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzNC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQzNC5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzNC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMzQpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDMzKSB7XG4gICAgcmV0dXJuIF9yZWYzNC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJsaXNrU2lnblRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzUgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzNShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzNSQoX2NvbnRleHQzNSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDM1LnByZXYgPSBfY29udGV4dDM1Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDM1Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2xpc2tTaWduVHJhbnNhY3Rpb24nXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDM1LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDM1LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDM1LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUzNSk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MzQpIHtcbiAgICByZXR1cm4gX3JlZjM1LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImxpc2tWZXJpZnlNZXNzYWdlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzYgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzNihwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzNiQoX2NvbnRleHQzNikge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDM2LnByZXYgPSBfY29udGV4dDM2Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDM2Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2xpc2tWZXJpZnlNZXNzYWdlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzNi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQzNi5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzNi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlMzYpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDM1KSB7XG4gICAgcmV0dXJuIF9yZWYzNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJuZW1HZXRBZGRyZXNzXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzcgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzNyhwYXJhbXMpIHtcbiAgICB2YXIgdXNlRXZlbnRMaXN0ZW5lcjtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzNyQoX2NvbnRleHQzNykge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDM3LnByZXYgPSBfY29udGV4dDM3Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB1c2VFdmVudExpc3RlbmVyID0gZXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQoVUkuQUREUkVTU19WQUxJREFUSU9OKSA+IDA7XG4gICAgICAgICAgICBfY29udGV4dDM3Lm5leHQgPSAzO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ25lbUdldEFkZHJlc3MnXG4gICAgICAgICAgICB9LCBwYXJhbXMsIHtcbiAgICAgICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lcjogdXNlRXZlbnRMaXN0ZW5lclxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzcuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mzcuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mzcuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTM3KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gzNikge1xuICAgIHJldHVybiBfcmVmMzcuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwibmVtU2lnblRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzggPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzOChwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzOCQoX2NvbnRleHQzOCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDM4LnByZXYgPSBfY29udGV4dDM4Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDM4Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ25lbVNpZ25UcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzguYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mzguc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mzguc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTM4KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gzNykge1xuICAgIHJldHVybiBfcmVmMzguYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwicHVzaFRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmMzkgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzOShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzOSQoX2NvbnRleHQzOSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDM5LnByZXYgPSBfY29udGV4dDM5Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDM5Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3B1c2hUcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0MzkuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mzkuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mzkuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTM5KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3gzOCkge1xuICAgIHJldHVybiBfcmVmMzkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwicmlwcGxlR2V0QWNjb3VudEluZm9cIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0MCA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQwKHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQwJChfY29udGV4dDQwKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NDAucHJldiA9IF9jb250ZXh0NDAubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0NDAubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAncmlwcGxlR2V0QWNjb3VudEluZm8nXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQwLmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDQwLnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQwLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWU0MCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94MzkpIHtcbiAgICByZXR1cm4gX3JlZjQwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcInJpcHBsZUdldEFkZHJlc3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0MSA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQxKHBhcmFtcykge1xuICAgIHZhciB1c2VFdmVudExpc3RlbmVyO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQxJChfY29udGV4dDQxKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NDEucHJldiA9IF9jb250ZXh0NDEubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXIgPSBldmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudChVSS5BRERSRVNTX1ZBTElEQVRJT04pID4gMDtcbiAgICAgICAgICAgIF9jb250ZXh0NDEubmV4dCA9IDM7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAncmlwcGxlR2V0QWRkcmVzcydcbiAgICAgICAgICAgIH0sIHBhcmFtcywge1xuICAgICAgICAgICAgICB1c2VFdmVudExpc3RlbmVyOiB1c2VFdmVudExpc3RlbmVyXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0MS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ0MS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0MS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNDEpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDQwKSB7XG4gICAgcmV0dXJuIF9yZWY0MS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJyaXBwbGVTaWduVHJhbnNhY3Rpb25cIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0MiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQyKHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQyJChfY29udGV4dDQyKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NDIucHJldiA9IF9jb250ZXh0NDIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0NDIubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAncmlwcGxlU2lnblRyYW5zYWN0aW9uJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ0Mi5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0Mi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNDIpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDQxKSB7XG4gICAgcmV0dXJuIF9yZWY0Mi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJzaWduTWVzc2FnZVwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjQzID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNDMocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNDMkKF9jb250ZXh0NDMpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ0My5wcmV2ID0gX2NvbnRleHQ0My5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ0My5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdzaWduTWVzc2FnZSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDMuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NDMuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDMuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTQzKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g0Mikge1xuICAgIHJldHVybiBfcmVmNDMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwic2lnblRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNDQgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0NChwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0NCQoX2NvbnRleHQ0NCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDQ0LnByZXYgPSBfY29udGV4dDQ0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDQ0Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3NpZ25UcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NDQuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTQ0KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g0Mykge1xuICAgIHJldHVybiBfcmVmNDQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwic3RlbGxhckdldEFkZHJlc3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0NSA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQ1KHBhcmFtcykge1xuICAgIHZhciB1c2VFdmVudExpc3RlbmVyO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQ1JChfY29udGV4dDQ1KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NDUucHJldiA9IF9jb250ZXh0NDUubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXIgPSBldmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudChVSS5BRERSRVNTX1ZBTElEQVRJT04pID4gMDtcbiAgICAgICAgICAgIF9jb250ZXh0NDUubmV4dCA9IDM7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnc3RlbGxhckdldEFkZHJlc3MnXG4gICAgICAgICAgICB9LCBwYXJhbXMsIHtcbiAgICAgICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lcjogdXNlRXZlbnRMaXN0ZW5lclxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDUuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NDUuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDUuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTQ1KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g0NCkge1xuICAgIHJldHVybiBfcmVmNDUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwic3RlbGxhclNpZ25UcmFuc2FjdGlvblwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjQ2ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNDYocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNDYkKF9jb250ZXh0NDYpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ0Ni5wcmV2ID0gX2NvbnRleHQ0Ni5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ0Ni5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdzdGVsbGFyU2lnblRyYW5zYWN0aW9uJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0Ni5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ0Ni5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0Ni5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNDYpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDQ1KSB7XG4gICAgcmV0dXJuIF9yZWY0Ni5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJ0ZXpvc0dldEFkZHJlc3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY0NyA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQ3KHBhcmFtcykge1xuICAgIHZhciB1c2VFdmVudExpc3RlbmVyO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQ3JChfY29udGV4dDQ3KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NDcucHJldiA9IF9jb250ZXh0NDcubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXIgPSBldmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudChVSS5BRERSRVNTX1ZBTElEQVRJT04pID4gMDtcbiAgICAgICAgICAgIF9jb250ZXh0NDcubmV4dCA9IDM7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAndGV6b3NHZXRBZGRyZXNzJ1xuICAgICAgICAgICAgfSwgcGFyYW1zLCB7XG4gICAgICAgICAgICAgIHVzZUV2ZW50TGlzdGVuZXI6IHVzZUV2ZW50TGlzdGVuZXJcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQ3LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDQ3LnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQ3LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWU0Nyk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94NDYpIHtcbiAgICByZXR1cm4gX3JlZjQ3LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcInRlem9zR2V0UHVibGljS2V5XCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNDggPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0OChwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0OCQoX2NvbnRleHQ0OCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDQ4LnByZXYgPSBfY29udGV4dDQ4Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDQ4Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3Rlem9zR2V0UHVibGljS2V5J1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0OC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ0OC5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0OC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNDgpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDQ3KSB7XG4gICAgcmV0dXJuIF9yZWY0OC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJ0ZXpvc1NpZ25UcmFuc2FjdGlvblwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjQ5ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNDkocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNDkkKF9jb250ZXh0NDkpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ0OS5wcmV2ID0gX2NvbnRleHQ0OS5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ0OS5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICd0ZXpvc1NpZ25UcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDkuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NDkuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NDkuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTQ5KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g0OCkge1xuICAgIHJldHVybiBfcmVmNDkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZW9zR2V0UHVibGljS2V5XCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNTAgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1MChwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1MCQoX2NvbnRleHQ1MCkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDUwLnByZXYgPSBfY29udGV4dDUwLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDUwLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2Vvc0dldFB1YmxpY0tleSdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTAuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTAuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTAuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUwKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g0OSkge1xuICAgIHJldHVybiBfcmVmNTAuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZW9zU2lnblRyYW5zYWN0aW9uXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNTEgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1MShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1MSQoX2NvbnRleHQ1MSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDUxLnByZXYgPSBfY29udGV4dDUxLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDUxLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2Vvc1NpZ25UcmFuc2FjdGlvbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTEuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTEuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTEuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUxKTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g1MCkge1xuICAgIHJldHVybiBfcmVmNTEuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwidmVyaWZ5TWVzc2FnZVwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjUyID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNTIocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNTIkKF9jb250ZXh0NTIpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ1Mi5wcmV2ID0gX2NvbnRleHQ1Mi5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ1Mi5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICd2ZXJpZnlNZXNzYWdlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1Mi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ1Mi5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1Mi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNTIpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDUxKSB7XG4gICAgcmV0dXJuIF9yZWY1Mi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJ3aXBlRGV2aWNlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNTMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1MyhwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1MyQoX2NvbnRleHQ1Mykge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDUzLnByZXYgPSBfY29udGV4dDUzLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDUzLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3dpcGVEZXZpY2UnXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUzLmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDUzLnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUzLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWU1Myk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94NTIpIHtcbiAgICByZXR1cm4gX3JlZjUzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcImFwcGx5RmxhZ3NcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY1NCA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTU0KHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTU0JChfY29udGV4dDU0KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NTQucHJldiA9IF9jb250ZXh0NTQubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0NTQubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnYXBwbHlGbGFncydcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTQuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTU0KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g1Mykge1xuICAgIHJldHVybiBfcmVmNTQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiYXBwbHlTZXR0aW5nc1wiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjU1ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNTUocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNTUkKF9jb250ZXh0NTUpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ1NS5wcmV2ID0gX2NvbnRleHQ1NS5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ1NS5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdhcHBseVNldHRpbmdzJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1NS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ1NS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1NS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNTUpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDU0KSB7XG4gICAgcmV0dXJuIF9yZWY1NS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJiYWNrdXBEZXZpY2VcIixcbi8qI19fUFVSRV9fKi9cbigwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbi8qI19fUFVSRV9fKi9cbl9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNTYoKSB7XG4gIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTU2JChfY29udGV4dDU2KSB7XG4gICAgd2hpbGUgKDEpIHtcbiAgICAgIHN3aXRjaCAoX2NvbnRleHQ1Ni5wcmV2ID0gX2NvbnRleHQ1Ni5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfY29udGV4dDU2Lm5leHQgPSAyO1xuICAgICAgICAgIHJldHVybiBjYWxsKHtcbiAgICAgICAgICAgIG1ldGhvZDogJ2JhY2t1cERldmljZSdcbiAgICAgICAgICB9KTtcblxuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTYuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTYuc2VudCk7XG5cbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTYuc3RvcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgX2NhbGxlZTU2KTtcbn0pKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiY2hhbmdlUGluXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNTcgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1NyhwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1NyQoX2NvbnRleHQ1Nykge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDU3LnByZXYgPSBfY29udGV4dDU3Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDU3Lm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ2NoYW5nZVBpbidcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTcuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTcuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTcuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTU3KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g1NSkge1xuICAgIHJldHVybiBfcmVmNTcuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZmlybXdhcmVFcmFzZVwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjU4ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNTgocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNTgkKF9jb250ZXh0NTgpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ1OC5wcmV2ID0gX2NvbnRleHQ1OC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ1OC5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdmaXJtd2FyZUVyYXNlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1OC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ1OC5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1OC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNTgpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDU2KSB7XG4gICAgcmV0dXJuIF9yZWY1OC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJmaXJtd2FyZVVwbG9hZFwiLFxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZjU5ID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAvKiNfX1BVUkVfXyovXG4gIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlNTkocGFyYW1zKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlNTkkKF9jb250ZXh0NTkpIHtcbiAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgIHN3aXRjaCAoX2NvbnRleHQ1OS5wcmV2ID0gX2NvbnRleHQ1OS5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQ1OS5uZXh0ID0gMjtcbiAgICAgICAgICAgIHJldHVybiBjYWxsKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgICAgICBtZXRob2Q6ICdmaXJtd2FyZVVwbG9hZCdcbiAgICAgICAgICAgIH0sIHBhcmFtcykpO1xuXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTkuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NTkuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NTkuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTU5KTtcbiAgfSkpO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoX3g1Nykge1xuICAgIHJldHVybiBfcmVmNTkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0oKSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiZmlybXdhcmVVcGRhdGVcIixcbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgdmFyIF9yZWY2MCA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTYwKHBhcmFtcykge1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZTYwJChfY29udGV4dDYwKSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0NjAucHJldiA9IF9jb250ZXh0NjAubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0NjAubmV4dCA9IDI7XG4gICAgICAgICAgICByZXR1cm4gY2FsbChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgbWV0aG9kOiAnZmlybXdhcmVVcGRhdGUnXG4gICAgICAgICAgICB9LCBwYXJhbXMpKTtcblxuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYwLmFicnVwdChcInJldHVyblwiLCBfY29udGV4dDYwLnNlbnQpO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYwLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWU2MCk7XG4gIH0pKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKF94NTgpIHtcbiAgICByZXR1cm4gX3JlZjYwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KCkpO1xuKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShUcmV6b3JDb25uZWN0LCBcInJlY292ZXJ5RGV2aWNlXCIsXG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHZhciBfcmVmNjEgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gIC8qI19fUFVSRV9fKi9cbiAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU2MShwYXJhbXMpIHtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2MSQoX2NvbnRleHQ2MSkge1xuICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgc3dpdGNoIChfY29udGV4dDYxLnByZXYgPSBfY29udGV4dDYxLm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dDYxLm5leHQgPSAyO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGwoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIG1ldGhvZDogJ3JlY292ZXJ5RGV2aWNlJ1xuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG5cbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2MS5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQ2MS5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2MS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNjEpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChfeDU5KSB7XG4gICAgcmV0dXJuIF9yZWY2MS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpKTtcbigwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoVHJlem9yQ29ubmVjdCwgXCJkaXNwb3NlXCIsIGZ1bmN0aW9uICgpIHtcbiAgaWZyYW1lLmRpc3Bvc2UoKTtcblxuICBpZiAoX3BvcHVwTWFuYWdlcikge1xuICAgIF9wb3B1cE1hbmFnZXIuY2xvc2UoKTtcbiAgfVxufSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwiY2FuY2VsXCIsIGZ1bmN0aW9uICgpIHtcbiAgaWYgKF9wb3B1cE1hbmFnZXIpIHtcbiAgICBfcG9wdXBNYW5hZ2VyLmVtaXQoUE9QVVAuQ0xPU0VEKTtcbiAgfVxufSk7XG4oMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKFRyZXpvckNvbm5lY3QsIFwicmVuZGVyV2ViVVNCQnV0dG9uXCIsIGZ1bmN0aW9uIChjbGFzc05hbWUpIHtcbiAgKDAsIF9idXR0b25bXCJkZWZhdWx0XCJdKShjbGFzc05hbWUsIF9zZXR0aW5ncy53ZWJ1c2JTcmMsIGlmcmFtZS5vcmlnaW4pO1xufSk7XG52YXIgX2RlZmF1bHQgPSBUcmV6b3JDb25uZWN0O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/index.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/message/index.js":
/*!**********************************************************!*\
!*** ./node_modules/trezor-connect/lib/message/index.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.parseMessage = void 0;\n\n// parse MessageEvent .data into CoreMessage\nvar parseMessage = function parseMessage(messageData) {\n var message = {\n event: messageData.event,\n type: messageData.type,\n payload: messageData.payload\n };\n\n if (typeof messageData.id === 'number') {\n message.id = messageData.id;\n }\n\n if (typeof messageData.success === 'boolean') {\n message.success = messageData.success;\n }\n\n return message;\n};\n\nexports.parseMessage = parseMessage;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9tZXNzYWdlL2luZGV4LmpzPzlmNDkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL21lc3NhZ2UvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnBhcnNlTWVzc2FnZSA9IHZvaWQgMDtcblxuLy8gcGFyc2UgTWVzc2FnZUV2ZW50IC5kYXRhIGludG8gQ29yZU1lc3NhZ2VcbnZhciBwYXJzZU1lc3NhZ2UgPSBmdW5jdGlvbiBwYXJzZU1lc3NhZ2UobWVzc2FnZURhdGEpIHtcbiAgdmFyIG1lc3NhZ2UgPSB7XG4gICAgZXZlbnQ6IG1lc3NhZ2VEYXRhLmV2ZW50LFxuICAgIHR5cGU6IG1lc3NhZ2VEYXRhLnR5cGUsXG4gICAgcGF5bG9hZDogbWVzc2FnZURhdGEucGF5bG9hZFxuICB9O1xuXG4gIGlmICh0eXBlb2YgbWVzc2FnZURhdGEuaWQgPT09ICdudW1iZXInKSB7XG4gICAgbWVzc2FnZS5pZCA9IG1lc3NhZ2VEYXRhLmlkO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtZXNzYWdlRGF0YS5zdWNjZXNzID09PSAnYm9vbGVhbicpIHtcbiAgICBtZXNzYWdlLnN1Y2Nlc3MgPSBtZXNzYWdlRGF0YS5zdWNjZXNzO1xuICB9XG5cbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG5leHBvcnRzLnBhcnNlTWVzc2FnZSA9IHBhcnNlTWVzc2FnZTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/message/index.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/popup/PopupManager.js":
/*!***************************************************************!*\
!*** ./node_modules/trezor-connect/lib/popup/PopupManager.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/inheritsLoose.js\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\n\nvar _events = _interopRequireDefault(__webpack_require__(/*! events */ \"./node_modules/events/events.js\"));\n\nvar POPUP = _interopRequireWildcard(__webpack_require__(/*! ../constants/popup */ \"./node_modules/trezor-connect/lib/constants/popup.js\"));\n\nvar ERROR = _interopRequireWildcard(__webpack_require__(/*! ../constants/errors */ \"./node_modules/trezor-connect/lib/constants/errors.js\"));\n\nvar _showPopupRequest = __webpack_require__(/*! ./showPopupRequest */ \"./node_modules/trezor-connect/lib/popup/showPopupRequest.js\");\n\nvar _networkUtils = __webpack_require__(/*! ../utils/networkUtils */ \"./node_modules/trezor-connect/lib/utils/networkUtils.js\");\n\nvar _deferred = __webpack_require__(/*! ../utils/deferred */ \"./node_modules/trezor-connect/lib/utils/deferred.js\");\n\n// const POPUP_REQUEST_TIMEOUT: number = 602;\nvar POPUP_REQUEST_TIMEOUT = 850;\nvar POPUP_CLOSE_INTERVAL = 500;\nvar POPUP_OPEN_TIMEOUT = 2000;\n\nvar PopupManager =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n (0, _inheritsLoose2[\"default\"])(PopupManager, _EventEmitter);\n\n // Window\n function PopupManager(settings) {\n var _this;\n\n _this = _EventEmitter.call(this) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"requestTimeout\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"closeInterval\", 0);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"extension\", false);\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"extensionTabId\", 0);\n _this.settings = settings;\n _this.src = settings.popupSrc;\n _this.origin = (0, _networkUtils.getOrigin)(settings.popupSrc);\n _this.handleLazyLoading = _this.handleLazyLoading.bind((0, _assertThisInitialized2[\"default\"])(_this)); // $FlowIssue chrome not declared outside\n\n _this.extension = typeof chrome !== 'undefined' && chrome.runtime && typeof chrome.runtime.onConnect !== 'undefined';\n\n if (_this.extension) {\n _this.handleExtensionConnect = _this.handleExtensionConnect.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleExtensionMessage = _this.handleExtensionMessage.bind((0, _assertThisInitialized2[\"default\"])(_this)); // $FlowIssue chrome not declared outside\n\n chrome.runtime.onConnect.addListener(_this.handleExtensionConnect);\n }\n\n return _this;\n }\n\n var _proto = PopupManager.prototype;\n\n _proto.request = function request(lazyLoad) {\n var _this2 = this;\n\n if (lazyLoad === void 0) {\n lazyLoad = false;\n }\n\n // popup request\n // TODO: ie - open imediately and hide it but post handshake after timeout\n // bring popup window to front\n if (this.locked) {\n if (this._window) {\n if (this.extension) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.update(this._window.id, {\n active: true\n });\n } else {\n this._window.focus();\n }\n }\n\n return;\n }\n\n this.lazyLoad = lazyLoad ? (0, _deferred.create)(POPUP.INIT) : null;\n\n if (this.lazyLoad) {\n if (!this.extension) {\n window.addEventListener('message', this.handleLazyLoading, false);\n }\n }\n\n var openFn = this.open.bind(this);\n this.locked = true;\n\n if (!this.settings.supportedBrowser) {\n openFn();\n } else {\n this.requestTimeout = window.setTimeout(function () {\n _this2.requestTimeout = 0;\n openFn();\n }, lazyLoad || this.extension ? 1 : POPUP_REQUEST_TIMEOUT);\n }\n };\n\n _proto.cancel = function cancel() {\n this.close();\n };\n\n _proto.unlock = function unlock() {\n this.locked = false;\n };\n\n _proto.open = function open() {\n var _this3 = this;\n\n if (!this.settings.supportedBrowser) {\n this.openWrapper(this.src + '#unsupported');\n return;\n }\n\n this.openWrapper(this.lazyLoad ? this.src + '#loading' : this.src);\n this.closeInterval = window.setInterval(function () {\n if (_this3._window) {\n if (_this3.extension) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.get(_this3._window.id, function (tab) {\n if (!tab) {\n _this3.close();\n\n _this3.emit(POPUP.CLOSED);\n }\n });\n } else if (_this3._window.closed) {\n _this3.close();\n\n _this3.emit(POPUP.CLOSED);\n }\n }\n }, POPUP_CLOSE_INTERVAL);\n this.openTimeout = window.setTimeout(function () {\n if (!(_this3._window && !_this3._window.closed)) {\n _this3.close();\n\n (0, _showPopupRequest.showPopupRequest)(_this3.open.bind(_this3), function () {\n _this3.emit(POPUP.CLOSED);\n });\n }\n }, POPUP_OPEN_TIMEOUT);\n };\n\n _proto.openWrapper = function openWrapper(url) {\n var _this4 = this;\n\n if (this.extension) {\n // $FlowIssue chrome not declared outside\n chrome.windows.getCurrent(null, function (currentWindow) {\n // Request coming from extension popup,\n // create new window above instead of opening new tab\n if (currentWindow.type !== 'normal') {\n // $FlowIssue chrome not declared outside\n chrome.windows.create({\n url: url\n }, function (newWindow) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.query({\n windowId: newWindow.id,\n active: true\n }, function (tabs) {\n _this4._window = tabs[0];\n });\n });\n } else {\n // $FlowIssue chrome not declared outside\n chrome.tabs.query({\n currentWindow: true,\n active: true\n }, function (tabs) {\n _this4.extensionTabId = tabs[0].id; // $FlowIssue chrome not declared outside\n\n chrome.tabs.create({\n url: url,\n index: tabs[0].index + 1\n }, function (tab) {\n _this4._window = tab;\n });\n });\n }\n });\n } else {\n this._window = window.open('', '_blank');\n\n if (this._window) {\n this._window.location.href = url; // otherwise android/chrome loose window.opener reference\n }\n }\n };\n\n _proto.handleExtensionConnect = function handleExtensionConnect(port) {\n if (port.name === 'trezor-connect') {\n if (!this._window || this._window && this._window.id !== port.sender.tab.id) {\n port.disconnect();\n return;\n }\n\n this.extensionPort = port; // $FlowIssue need to update ChromePort definition\n\n this.extensionPort.onMessage.addListener(this.handleExtensionMessage);\n } else if (port.name === 'trezor-usb-permissions') {\n port.postMessage({\n broadcast: this.broadcast\n });\n }\n };\n\n _proto.handleExtensionMessage = function handleExtensionMessage(message) {\n if (!this.extensionPort) return;\n\n if (message === POPUP.EXTENSION_REQUEST) {\n this.extensionPort.postMessage({\n type: POPUP.EXTENSION_REQUEST,\n broadcast: this.broadcast\n });\n } else if (message === POPUP.INIT && this.lazyLoad) {\n this.lazyLoad.resolve(true);\n } else if (message === POPUP.EXTENSION_USB_PERMISSIONS) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.query({\n currentWindow: true,\n active: true\n }, function (tabs) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.create({\n url: 'trezor-usb-permissions.html',\n index: tabs[0].index + 1\n }, function (tab) {// do nothing\n });\n });\n } else if (message === POPUP.CLOSE_WINDOW) {\n this.emit(POPUP.CLOSED);\n this.close();\n }\n };\n\n _proto.setBroadcast = function setBroadcast(broadcast) {\n this.broadcast = broadcast;\n };\n\n _proto.handleLazyLoading = function handleLazyLoading(event) {\n if (this.lazyLoad && event.data && event.data === POPUP.INIT) {\n this.lazyLoad.resolve(true);\n window.removeEventListener('message', this.handleLazyLoading, false);\n }\n };\n\n _proto.resolveLazyLoad =\n /*#__PURE__*/\n function () {\n var _resolveLazyLoad = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee() {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.lazyLoad) {\n _context.next = 5;\n break;\n }\n\n _context.next = 3;\n return this.lazyLoad.promise;\n\n case 3:\n _context.next = 6;\n break;\n\n case 5:\n throw ERROR.POPUP_CLOSED.message;\n\n case 6:\n if (this.extension) {\n if (this.extensionPort) {\n this.extensionPort.postMessage({\n type: POPUP.INIT\n });\n }\n } else if (this._window) {\n this._window.postMessage({\n type: POPUP.INIT\n }, this.origin);\n }\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function resolveLazyLoad() {\n return _resolveLazyLoad.apply(this, arguments);\n }\n\n return resolveLazyLoad;\n }();\n\n _proto.close = function close() {\n this.locked = false;\n\n if (this.requestTimeout) {\n window.clearTimeout(this.requestTimeout);\n this.requestTimeout = 0;\n }\n\n if (this.openTimeout) {\n window.clearTimeout(this.openTimeout);\n this.openTimeout = 0;\n }\n\n if (this.closeInterval) {\n window.clearInterval(this.closeInterval);\n this.closeInterval = 0;\n }\n\n if (this.extensionPort) {\n this.extensionPort.disconnect();\n this.extensionPort = null;\n }\n\n if (this.extensionTabId) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.update(this.extensionTabId, {\n active: true\n });\n this.extensionTabId = 0;\n }\n\n if (this.lazyLoad) {\n this.lazyLoad = null;\n }\n\n if (this._window) {\n if (this.extension) {\n // $FlowIssue chrome not declared outside\n chrome.tabs.remove(this._window.id);\n } else {\n this._window.close();\n }\n\n this._window = null;\n }\n };\n\n _proto.postMessage = function postMessage(message) {\n var _this5 = this;\n\n // post message before popup request finalized\n if (this.requestTimeout) {\n return;\n } // device needs interaction but there is no popup/ui\n // maybe popup request wasn't handled\n // ignore \"ui_request_window\" type\n\n\n if (!this._window && message.type !== 'ui_request_window' && this.openTimeout) {\n this.close();\n (0, _showPopupRequest.showPopupRequest)(this.open.bind(this), function () {\n _this5.emit(POPUP.CLOSED);\n });\n return;\n } // post message to popup window\n\n\n if (this._window) {\n this._window.postMessage(message, this.origin);\n }\n };\n\n _proto.onBeforeUnload = function onBeforeUnload() {\n this.close();\n };\n\n _proto.cancelOpenTimeout = function cancelOpenTimeout() {\n window.clearTimeout(this.openTimeout);\n };\n\n return PopupManager;\n}(_events[\"default\"]);\n\nexports[\"default\"] = PopupManager;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9wb3B1cC9Qb3B1cE1hbmFnZXIuanM/NDI1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4QkFBOEIsbUJBQU8sQ0FBQyxzSEFBK0M7O0FBRXJGLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkY7QUFDQTs7QUFFQSwwQ0FBMEMsbUJBQU8sQ0FBQyxzRkFBNEI7O0FBRTlFLGdEQUFnRCxtQkFBTyxDQUFDLDBHQUF5Qzs7QUFFakcscURBQXFELG1CQUFPLENBQUMsb0hBQThDOztBQUUzRyw2Q0FBNkMsbUJBQU8sQ0FBQyxvR0FBc0M7O0FBRTNGLDhDQUE4QyxtQkFBTyxDQUFDLHNHQUF1Qzs7QUFFN0YscUNBQXFDLG1CQUFPLENBQUMsK0NBQVE7O0FBRXJELG9DQUFvQyxtQkFBTyxDQUFDLGdGQUFvQjs7QUFFaEUsb0NBQW9DLG1CQUFPLENBQUMsa0ZBQXFCOztBQUVqRSx3QkFBd0IsbUJBQU8sQ0FBQyx1RkFBb0I7O0FBRXBELG9CQUFvQixtQkFBTyxDQUFDLHNGQUF1Qjs7QUFFbkQsZ0JBQWdCLG1CQUFPLENBQUMsOEVBQW1COztBQUUzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJHQUEyRzs7QUFFM0c7O0FBRUE7QUFDQTtBQUNBLHVIQUF1SDs7QUFFdkg7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsK0NBQStDOztBQUUvQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhO0FBQ2IsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDs7QUFFQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdDQUFnQzs7QUFFaEM7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvcG9wdXAvUG9wdXBNYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlZ2VuZXJhdG9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3JcIikpO1xuXG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcblxudmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIikpO1xuXG52YXIgX2luaGVyaXRzTG9vc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0c0xvb3NlXCIpKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9ldmVudHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJldmVudHNcIikpO1xuXG52YXIgUE9QVVAgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi4vY29uc3RhbnRzL3BvcHVwXCIpKTtcblxudmFyIEVSUk9SID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uL2NvbnN0YW50cy9lcnJvcnNcIikpO1xuXG52YXIgX3Nob3dQb3B1cFJlcXVlc3QgPSByZXF1aXJlKFwiLi9zaG93UG9wdXBSZXF1ZXN0XCIpO1xuXG52YXIgX25ldHdvcmtVdGlscyA9IHJlcXVpcmUoXCIuLi91dGlscy9uZXR3b3JrVXRpbHNcIik7XG5cbnZhciBfZGVmZXJyZWQgPSByZXF1aXJlKFwiLi4vdXRpbHMvZGVmZXJyZWRcIik7XG5cbi8vIGNvbnN0IFBPUFVQX1JFUVVFU1RfVElNRU9VVDogbnVtYmVyID0gNjAyO1xudmFyIFBPUFVQX1JFUVVFU1RfVElNRU9VVCA9IDg1MDtcbnZhciBQT1BVUF9DTE9TRV9JTlRFUlZBTCA9IDUwMDtcbnZhciBQT1BVUF9PUEVOX1RJTUVPVVQgPSAyMDAwO1xuXG52YXIgUG9wdXBNYW5hZ2VyID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gICgwLCBfaW5oZXJpdHNMb29zZTJbXCJkZWZhdWx0XCJdKShQb3B1cE1hbmFnZXIsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIC8vIFdpbmRvd1xuICBmdW5jdGlvbiBQb3B1cE1hbmFnZXIoc2V0dGluZ3MpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfdGhpcyA9IF9FdmVudEVtaXR0ZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoKDAsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyW1wiZGVmYXVsdFwiXSkoX3RoaXMpLCBcInJlcXVlc3RUaW1lb3V0XCIsIDApO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoKDAsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyW1wiZGVmYXVsdFwiXSkoX3RoaXMpLCBcImNsb3NlSW50ZXJ2YWxcIiwgMCk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKSgoMCwgX2Fzc2VydFRoaXNJbml0aWFsaXplZDJbXCJkZWZhdWx0XCJdKShfdGhpcyksIFwiZXh0ZW5zaW9uXCIsIGZhbHNlKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMltcImRlZmF1bHRcIl0pKF90aGlzKSwgXCJleHRlbnNpb25UYWJJZFwiLCAwKTtcbiAgICBfdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIF90aGlzLnNyYyA9IHNldHRpbmdzLnBvcHVwU3JjO1xuICAgIF90aGlzLm9yaWdpbiA9ICgwLCBfbmV0d29ya1V0aWxzLmdldE9yaWdpbikoc2V0dGluZ3MucG9wdXBTcmMpO1xuICAgIF90aGlzLmhhbmRsZUxhenlMb2FkaW5nID0gX3RoaXMuaGFuZGxlTGF6eUxvYWRpbmcuYmluZCgoMCwgX2Fzc2VydFRoaXNJbml0aWFsaXplZDJbXCJkZWZhdWx0XCJdKShfdGhpcykpOyAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuXG4gICAgX3RoaXMuZXh0ZW5zaW9uID0gdHlwZW9mIGNocm9tZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY2hyb21lLnJ1bnRpbWUgJiYgdHlwZW9mIGNocm9tZS5ydW50aW1lLm9uQ29ubmVjdCAhPT0gJ3VuZGVmaW5lZCc7XG5cbiAgICBpZiAoX3RoaXMuZXh0ZW5zaW9uKSB7XG4gICAgICBfdGhpcy5oYW5kbGVFeHRlbnNpb25Db25uZWN0ID0gX3RoaXMuaGFuZGxlRXh0ZW5zaW9uQ29ubmVjdC5iaW5kKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMltcImRlZmF1bHRcIl0pKF90aGlzKSk7XG4gICAgICBfdGhpcy5oYW5kbGVFeHRlbnNpb25NZXNzYWdlID0gX3RoaXMuaGFuZGxlRXh0ZW5zaW9uTWVzc2FnZS5iaW5kKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMltcImRlZmF1bHRcIl0pKF90aGlzKSk7IC8vICRGbG93SXNzdWUgY2hyb21lIG5vdCBkZWNsYXJlZCBvdXRzaWRlXG5cbiAgICAgIGNocm9tZS5ydW50aW1lLm9uQ29ubmVjdC5hZGRMaXN0ZW5lcihfdGhpcy5oYW5kbGVFeHRlbnNpb25Db25uZWN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gUG9wdXBNYW5hZ2VyLnByb3RvdHlwZTtcblxuICBfcHJvdG8ucmVxdWVzdCA9IGZ1bmN0aW9uIHJlcXVlc3QobGF6eUxvYWQpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIGlmIChsYXp5TG9hZCA9PT0gdm9pZCAwKSB7XG4gICAgICBsYXp5TG9hZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHBvcHVwIHJlcXVlc3RcbiAgICAvLyBUT0RPOiBpZSAtIG9wZW4gaW1lZGlhdGVseSBhbmQgaGlkZSBpdCBidXQgcG9zdCBoYW5kc2hha2UgYWZ0ZXIgdGltZW91dFxuICAgIC8vIGJyaW5nIHBvcHVwIHdpbmRvdyB0byBmcm9udFxuICAgIGlmICh0aGlzLmxvY2tlZCkge1xuICAgICAgaWYgKHRoaXMuX3dpbmRvdykge1xuICAgICAgICBpZiAodGhpcy5leHRlbnNpb24pIHtcbiAgICAgICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgICAgIGNocm9tZS50YWJzLnVwZGF0ZSh0aGlzLl93aW5kb3cuaWQsIHtcbiAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3dpbmRvdy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxhenlMb2FkID0gbGF6eUxvYWQgPyAoMCwgX2RlZmVycmVkLmNyZWF0ZSkoUE9QVVAuSU5JVCkgOiBudWxsO1xuXG4gICAgaWYgKHRoaXMubGF6eUxvYWQpIHtcbiAgICAgIGlmICghdGhpcy5leHRlbnNpb24pIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLmhhbmRsZUxhenlMb2FkaW5nLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG9wZW5GbiA9IHRoaXMub3Blbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMubG9ja2VkID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5zdXBwb3J0ZWRCcm93c2VyKSB7XG4gICAgICBvcGVuRm4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXF1ZXN0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnJlcXVlc3RUaW1lb3V0ID0gMDtcbiAgICAgICAgb3BlbkZuKCk7XG4gICAgICB9LCBsYXp5TG9hZCB8fCB0aGlzLmV4dGVuc2lvbiA/IDEgOiBQT1BVUF9SRVFVRVNUX1RJTUVPVVQpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uY2FuY2VsID0gZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfTtcblxuICBfcHJvdG8udW5sb2NrID0gZnVuY3Rpb24gdW5sb2NrKCkge1xuICAgIHRoaXMubG9ja2VkID0gZmFsc2U7XG4gIH07XG5cbiAgX3Byb3RvLm9wZW4gPSBmdW5jdGlvbiBvcGVuKCkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnN1cHBvcnRlZEJyb3dzZXIpIHtcbiAgICAgIHRoaXMub3BlbldyYXBwZXIodGhpcy5zcmMgKyAnI3Vuc3VwcG9ydGVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuV3JhcHBlcih0aGlzLmxhenlMb2FkID8gdGhpcy5zcmMgKyAnI2xvYWRpbmcnIDogdGhpcy5zcmMpO1xuICAgIHRoaXMuY2xvc2VJbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMzLl93aW5kb3cpIHtcbiAgICAgICAgaWYgKF90aGlzMy5leHRlbnNpb24pIHtcbiAgICAgICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgICAgIGNocm9tZS50YWJzLmdldChfdGhpczMuX3dpbmRvdy5pZCwgZnVuY3Rpb24gKHRhYikge1xuICAgICAgICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgICAgICAgX3RoaXMzLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgX3RoaXMzLmVtaXQoUE9QVVAuQ0xPU0VEKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChfdGhpczMuX3dpbmRvdy5jbG9zZWQpIHtcbiAgICAgICAgICBfdGhpczMuY2xvc2UoKTtcblxuICAgICAgICAgIF90aGlzMy5lbWl0KFBPUFVQLkNMT1NFRCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBQT1BVUF9DTE9TRV9JTlRFUlZBTCk7XG4gICAgdGhpcy5vcGVuVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghKF90aGlzMy5fd2luZG93ICYmICFfdGhpczMuX3dpbmRvdy5jbG9zZWQpKSB7XG4gICAgICAgIF90aGlzMy5jbG9zZSgpO1xuXG4gICAgICAgICgwLCBfc2hvd1BvcHVwUmVxdWVzdC5zaG93UG9wdXBSZXF1ZXN0KShfdGhpczMub3Blbi5iaW5kKF90aGlzMyksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczMuZW1pdChQT1BVUC5DTE9TRUQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBQT1BVUF9PUEVOX1RJTUVPVVQpO1xuICB9O1xuXG4gIF9wcm90by5vcGVuV3JhcHBlciA9IGZ1bmN0aW9uIG9wZW5XcmFwcGVyKHVybCkge1xuICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMuZXh0ZW5zaW9uKSB7XG4gICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgY2hyb21lLndpbmRvd3MuZ2V0Q3VycmVudChudWxsLCBmdW5jdGlvbiAoY3VycmVudFdpbmRvdykge1xuICAgICAgICAvLyBSZXF1ZXN0IGNvbWluZyBmcm9tIGV4dGVuc2lvbiBwb3B1cCxcbiAgICAgICAgLy8gY3JlYXRlIG5ldyB3aW5kb3cgYWJvdmUgaW5zdGVhZCBvZiBvcGVuaW5nIG5ldyB0YWJcbiAgICAgICAgaWYgKGN1cnJlbnRXaW5kb3cudHlwZSAhPT0gJ25vcm1hbCcpIHtcbiAgICAgICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgICAgIGNocm9tZS53aW5kb3dzLmNyZWF0ZSh7XG4gICAgICAgICAgICB1cmw6IHVybFxuICAgICAgICAgIH0sIGZ1bmN0aW9uIChuZXdXaW5kb3cpIHtcbiAgICAgICAgICAgIC8vICRGbG93SXNzdWUgY2hyb21lIG5vdCBkZWNsYXJlZCBvdXRzaWRlXG4gICAgICAgICAgICBjaHJvbWUudGFicy5xdWVyeSh7XG4gICAgICAgICAgICAgIHdpbmRvd0lkOiBuZXdXaW5kb3cuaWQsXG4gICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZVxuICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHRhYnMpIHtcbiAgICAgICAgICAgICAgX3RoaXM0Ll93aW5kb3cgPSB0YWJzWzBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gJEZsb3dJc3N1ZSBjaHJvbWUgbm90IGRlY2xhcmVkIG91dHNpZGVcbiAgICAgICAgICBjaHJvbWUudGFicy5xdWVyeSh7XG4gICAgICAgICAgICBjdXJyZW50V2luZG93OiB0cnVlLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICAgICAgfSwgZnVuY3Rpb24gKHRhYnMpIHtcbiAgICAgICAgICAgIF90aGlzNC5leHRlbnNpb25UYWJJZCA9IHRhYnNbMF0uaWQ7IC8vICRGbG93SXNzdWUgY2hyb21lIG5vdCBkZWNsYXJlZCBvdXRzaWRlXG5cbiAgICAgICAgICAgIGNocm9tZS50YWJzLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgICBpbmRleDogdGFic1swXS5pbmRleCArIDFcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgX3RoaXM0Ll93aW5kb3cgPSB0YWI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3dpbmRvdyA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7XG5cbiAgICAgIGlmICh0aGlzLl93aW5kb3cpIHtcbiAgICAgICAgdGhpcy5fd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7IC8vIG90aGVyd2lzZSBhbmRyb2lkL2Nocm9tZSBsb29zZSB3aW5kb3cub3BlbmVyIHJlZmVyZW5jZVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uaGFuZGxlRXh0ZW5zaW9uQ29ubmVjdCA9IGZ1bmN0aW9uIGhhbmRsZUV4dGVuc2lvbkNvbm5lY3QocG9ydCkge1xuICAgIGlmIChwb3J0Lm5hbWUgPT09ICd0cmV6b3ItY29ubmVjdCcpIHtcbiAgICAgIGlmICghdGhpcy5fd2luZG93IHx8IHRoaXMuX3dpbmRvdyAmJiB0aGlzLl93aW5kb3cuaWQgIT09IHBvcnQuc2VuZGVyLnRhYi5pZCkge1xuICAgICAgICBwb3J0LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmV4dGVuc2lvblBvcnQgPSBwb3J0OyAvLyAkRmxvd0lzc3VlIG5lZWQgdG8gdXBkYXRlIENocm9tZVBvcnQgZGVmaW5pdGlvblxuXG4gICAgICB0aGlzLmV4dGVuc2lvblBvcnQub25NZXNzYWdlLmFkZExpc3RlbmVyKHRoaXMuaGFuZGxlRXh0ZW5zaW9uTWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmIChwb3J0Lm5hbWUgPT09ICd0cmV6b3ItdXNiLXBlcm1pc3Npb25zJykge1xuICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgIGJyb2FkY2FzdDogdGhpcy5icm9hZGNhc3RcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uaGFuZGxlRXh0ZW5zaW9uTWVzc2FnZSA9IGZ1bmN0aW9uIGhhbmRsZUV4dGVuc2lvbk1lc3NhZ2UobWVzc2FnZSkge1xuICAgIGlmICghdGhpcy5leHRlbnNpb25Qb3J0KSByZXR1cm47XG5cbiAgICBpZiAobWVzc2FnZSA9PT0gUE9QVVAuRVhURU5TSU9OX1JFUVVFU1QpIHtcbiAgICAgIHRoaXMuZXh0ZW5zaW9uUG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgIHR5cGU6IFBPUFVQLkVYVEVOU0lPTl9SRVFVRVNULFxuICAgICAgICBicm9hZGNhc3Q6IHRoaXMuYnJvYWRjYXN0XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1lc3NhZ2UgPT09IFBPUFVQLklOSVQgJiYgdGhpcy5sYXp5TG9hZCkge1xuICAgICAgdGhpcy5sYXp5TG9hZC5yZXNvbHZlKHRydWUpO1xuICAgIH0gZWxzZSBpZiAobWVzc2FnZSA9PT0gUE9QVVAuRVhURU5TSU9OX1VTQl9QRVJNSVNTSU9OUykge1xuICAgICAgLy8gJEZsb3dJc3N1ZSBjaHJvbWUgbm90IGRlY2xhcmVkIG91dHNpZGVcbiAgICAgIGNocm9tZS50YWJzLnF1ZXJ5KHtcbiAgICAgICAgY3VycmVudFdpbmRvdzogdHJ1ZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICB9LCBmdW5jdGlvbiAodGFicykge1xuICAgICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgICBjaHJvbWUudGFicy5jcmVhdGUoe1xuICAgICAgICAgIHVybDogJ3RyZXpvci11c2ItcGVybWlzc2lvbnMuaHRtbCcsXG4gICAgICAgICAgaW5kZXg6IHRhYnNbMF0uaW5kZXggKyAxXG4gICAgICAgIH0sIGZ1bmN0aW9uICh0YWIpIHsvLyBkbyBub3RoaW5nXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChtZXNzYWdlID09PSBQT1BVUC5DTE9TRV9XSU5ET1cpIHtcbiAgICAgIHRoaXMuZW1pdChQT1BVUC5DTE9TRUQpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uc2V0QnJvYWRjYXN0ID0gZnVuY3Rpb24gc2V0QnJvYWRjYXN0KGJyb2FkY2FzdCkge1xuICAgIHRoaXMuYnJvYWRjYXN0ID0gYnJvYWRjYXN0O1xuICB9O1xuXG4gIF9wcm90by5oYW5kbGVMYXp5TG9hZGluZyA9IGZ1bmN0aW9uIGhhbmRsZUxhenlMb2FkaW5nKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMubGF6eUxvYWQgJiYgZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhID09PSBQT1BVUC5JTklUKSB7XG4gICAgICB0aGlzLmxhenlMb2FkLnJlc29sdmUodHJ1ZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMuaGFuZGxlTGF6eUxvYWRpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnJlc29sdmVMYXp5TG9hZCA9XG4gIC8qI19fUFVSRV9fKi9cbiAgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcmVzb2x2ZUxhenlMb2FkID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMltcImRlZmF1bHRcIl0pKFxuICAgIC8qI19fUFVSRV9fKi9cbiAgICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHtcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIGlmICghdGhpcy5sYXp5TG9hZCkge1xuICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA1O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDM7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhenlMb2FkLnByb21pc2U7XG5cbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDY7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgIHRocm93IEVSUk9SLlBPUFVQX0NMT1NFRC5tZXNzYWdlO1xuXG4gICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgIGlmICh0aGlzLmV4dGVuc2lvbikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4dGVuc2lvblBvcnQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5zaW9uUG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFBPUFVQLklOSVRcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl93aW5kb3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93aW5kb3cucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogUE9QVVAuSU5JVFxuICAgICAgICAgICAgICAgIH0sIHRoaXMub3JpZ2luKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCBfY2FsbGVlLCB0aGlzKTtcbiAgICB9KSk7XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlTGF6eUxvYWQoKSB7XG4gICAgICByZXR1cm4gX3Jlc29sdmVMYXp5TG9hZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlTGF6eUxvYWQ7XG4gIH0oKTtcblxuICBfcHJvdG8uY2xvc2UgPSBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICB0aGlzLmxvY2tlZCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMucmVxdWVzdFRpbWVvdXQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXF1ZXN0VGltZW91dCk7XG4gICAgICB0aGlzLnJlcXVlc3RUaW1lb3V0ID0gMDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuVGltZW91dCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLm9wZW5UaW1lb3V0KTtcbiAgICAgIHRoaXMub3BlblRpbWVvdXQgPSAwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsb3NlSW50ZXJ2YWwpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuY2xvc2VJbnRlcnZhbCk7XG4gICAgICB0aGlzLmNsb3NlSW50ZXJ2YWwgPSAwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4dGVuc2lvblBvcnQpIHtcbiAgICAgIHRoaXMuZXh0ZW5zaW9uUG9ydC5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLmV4dGVuc2lvblBvcnQgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4dGVuc2lvblRhYklkKSB7XG4gICAgICAvLyAkRmxvd0lzc3VlIGNocm9tZSBub3QgZGVjbGFyZWQgb3V0c2lkZVxuICAgICAgY2hyb21lLnRhYnMudXBkYXRlKHRoaXMuZXh0ZW5zaW9uVGFiSWQsIHtcbiAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXh0ZW5zaW9uVGFiSWQgPSAwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxhenlMb2FkKSB7XG4gICAgICB0aGlzLmxhenlMb2FkID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fd2luZG93KSB7XG4gICAgICBpZiAodGhpcy5leHRlbnNpb24pIHtcbiAgICAgICAgLy8gJEZsb3dJc3N1ZSBjaHJvbWUgbm90IGRlY2xhcmVkIG91dHNpZGVcbiAgICAgICAgY2hyb21lLnRhYnMucmVtb3ZlKHRoaXMuX3dpbmRvdy5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl93aW5kb3cuY2xvc2UoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fd2luZG93ID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnBvc3RNZXNzYWdlID0gZnVuY3Rpb24gcG9zdE1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgLy8gcG9zdCBtZXNzYWdlIGJlZm9yZSBwb3B1cCByZXF1ZXN0IGZpbmFsaXplZFxuICAgIGlmICh0aGlzLnJlcXVlc3RUaW1lb3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBkZXZpY2UgbmVlZHMgaW50ZXJhY3Rpb24gYnV0IHRoZXJlIGlzIG5vIHBvcHVwL3VpXG4gICAgLy8gbWF5YmUgcG9wdXAgcmVxdWVzdCB3YXNuJ3QgaGFuZGxlZFxuICAgIC8vIGlnbm9yZSBcInVpX3JlcXVlc3Rfd2luZG93XCIgdHlwZVxuXG5cbiAgICBpZiAoIXRoaXMuX3dpbmRvdyAmJiBtZXNzYWdlLnR5cGUgIT09ICd1aV9yZXF1ZXN0X3dpbmRvdycgJiYgdGhpcy5vcGVuVGltZW91dCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgKDAsIF9zaG93UG9wdXBSZXF1ZXN0LnNob3dQb3B1cFJlcXVlc3QpKHRoaXMub3Blbi5iaW5kKHRoaXMpLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzNS5lbWl0KFBPUFVQLkNMT1NFRCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIHBvc3QgbWVzc2FnZSB0byBwb3B1cCB3aW5kb3dcblxuXG4gICAgaWYgKHRoaXMuX3dpbmRvdykge1xuICAgICAgdGhpcy5fd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIHRoaXMub3JpZ2luKTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLm9uQmVmb3JlVW5sb2FkID0gZnVuY3Rpb24gb25CZWZvcmVVbmxvYWQoKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9O1xuXG4gIF9wcm90by5jYW5jZWxPcGVuVGltZW91dCA9IGZ1bmN0aW9uIGNhbmNlbE9wZW5UaW1lb3V0KCkge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5vcGVuVGltZW91dCk7XG4gIH07XG5cbiAgcmV0dXJuIFBvcHVwTWFuYWdlcjtcbn0oX2V2ZW50c1tcImRlZmF1bHRcIl0pO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFBvcHVwTWFuYWdlcjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/popup/PopupManager.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/popup/showPopupRequest.js":
/*!*******************************************************************!*\
!*** ./node_modules/trezor-connect/lib/popup/showPopupRequest.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports.showPopupRequest = void 0;\nvar layerID = 'TrezorConnectInteractionLayer';\nvar layerInnerHtml = \"\\n <div class=\\\"trezorconnect-container\\\" id=\\\"\" + layerID + \"\\\">\\n <div class=\\\"trezorconnect-window\\\">\\n <div class=\\\"trezorconnect-head\\\">\\n <svg class=\\\"trezorconnect-logo\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 163.7 41.9\\\" width=\\\"78px\\\" height=\\\"20px\\\" preserveAspectRatio=\\\"xMinYMin meet\\\">\\n <polygon points=\\\"101.1,12.8 118.2,12.8 118.2,17.3 108.9,29.9 118.2,29.9 118.2,35.2 101.1,35.2 101.1,30.7 110.4,18.1 101.1,18.1\\\"/>\\n <path d=\\\"M158.8,26.9c2.1-0.8,4.3-2.9,4.3-6.6c0-4.5-3.1-7.4-7.7-7.4h-10.5v22.3h5.8v-7.5h2.2l4.1,7.5h6.7L158.8,26.9z M154.7,22.5 h-4V18h4c1.5,0,2.5,0.9,2.5,2.2C157.2,21.6,156.2,22.5,154.7,22.5z\\\"/>\\n <path d=\\\"M130.8,12.5c-6.8,0-11.6,4.9-11.6,11.5s4.9,11.5,11.6,11.5s11.7-4.9,11.7-11.5S137.6,12.5,130.8,12.5z M130.8,30.3 c-3.4,0-5.7-2.6-5.7-6.3c0-3.8,2.3-6.3,5.7-6.3c3.4,0,5.8,2.6,5.8,6.3C136.6,27.7,134.2,30.3,130.8,30.3z\\\"/>\\n <polygon points=\\\"82.1,12.8 98.3,12.8 98.3,18 87.9,18 87.9,21.3 98,21.3 98,26.4 87.9,26.4 87.9,30 98.3,30 98.3,35.2 82.1,35.2 \\\"/>\\n <path d=\\\"M24.6,9.7C24.6,4.4,20,0,14.4,0S4.2,4.4,4.2,9.7v3.1H0v22.3h0l14.4,6.7l14.4-6.7h0V12.9h-4.2V9.7z M9.4,9.7 c0-2.5,2.2-4.5,5-4.5s5,2,5,4.5v3.1H9.4V9.7z M23,31.5l-8.6,4l-8.6-4V18.1H23V31.5z\\\"/>\\n <path d=\\\"M79.4,20.3c0-4.5-3.1-7.4-7.7-7.4H61.2v22.3H67v-7.5h2.2l4.1,7.5H80l-4.9-8.3C77.2,26.1,79.4,24,79.4,20.3z M71,22.5h-4V18 h4c1.5,0,2.5,0.9,2.5,2.2C73.5,21.6,72.5,22.5,71,22.5z\\\"/>\\n <polygon points=\\\"40.5,12.8 58.6,12.8 58.6,18.1 52.4,18.1 52.4,35.2 46.6,35.2 46.6,18.1 40.5,18.1 \\\"/>\\n </svg>\\n <div class=\\\"trezorconnect-close\\\">\\n <svg x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"24 24 60 60\\\" width=\\\"24px\\\" height=\\\"24px\\\" preserveAspectRatio=\\\"xMinYMin meet\\\">\\n <polygon class=\\\"st0\\\" points=\\\"40,67.9 42.1,70 55,57.1 67.9,70 70,67.9 57.1,55 70,42.1 67.9,40 55,52.9 42.1,40 40,42.1 52.9,55 \\\"/>\\n </svg>\\n </div>\\n </div>\\n <div class=\\\"trezorconnect-body\\\">\\n <h3>Popup was blocked</h3>\\n <p>Please click to \\u201CContinue\\u201D to open popup manually</p>\\n <button class=\\\"trezorconnect-open\\\">Continue</button>\\n </div>\\n </div>\\n </div>\\n\";\n\nvar showPopupRequest = function showPopupRequest(open, cancel) {\n if (document.getElementById(layerID)) {\n return;\n }\n\n var div = document.createElement('div');\n div.id = layerID;\n div.className = 'trezorconnect-container';\n div.innerHTML = layerInnerHtml;\n\n if (document.body) {\n document.body.appendChild(div);\n }\n\n var button = div.getElementsByClassName('trezorconnect-open')[0];\n\n button.onclick = function () {\n open();\n\n if (document.body) {\n document.body.removeChild(div);\n }\n };\n\n var close = div.getElementsByClassName('trezorconnect-close')[0];\n\n close.onclick = function () {\n cancel();\n\n if (document.body) {\n document.body.removeChild(div);\n }\n };\n};\n\nexports.showPopupRequest = showPopupRequest;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9wb3B1cC9zaG93UG9wdXBSZXF1ZXN0LmpzPzQ0OTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi9wb3B1cC9zaG93UG9wdXBSZXF1ZXN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zaG93UG9wdXBSZXF1ZXN0ID0gdm9pZCAwO1xudmFyIGxheWVySUQgPSAnVHJlem9yQ29ubmVjdEludGVyYWN0aW9uTGF5ZXInO1xudmFyIGxheWVySW5uZXJIdG1sID0gXCJcXG4gICAgPGRpdiBjbGFzcz1cXFwidHJlem9yY29ubmVjdC1jb250YWluZXJcXFwiIGlkPVxcXCJcIiArIGxheWVySUQgKyBcIlxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJ0cmV6b3Jjb25uZWN0LXdpbmRvd1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwidHJlem9yY29ubmVjdC1oZWFkXFxcIj5cXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cXFwidHJlem9yY29ubmVjdC1sb2dvXFxcIiB4PVxcXCIwcHhcXFwiIHk9XFxcIjBweFxcXCIgdmlld0JveD1cXFwiMCAwIDE2My43IDQxLjlcXFwiIHdpZHRoPVxcXCI3OHB4XFxcIiBoZWlnaHQ9XFxcIjIwcHhcXFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XFxcInhNaW5ZTWluIG1lZXRcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVxcXCIxMDEuMSwxMi44IDExOC4yLDEyLjggMTE4LjIsMTcuMyAxMDguOSwyOS45IDExOC4yLDI5LjkgMTE4LjIsMzUuMiAxMDEuMSwzNS4yIDEwMS4xLDMwLjcgMTEwLjQsMTguMSAxMDEuMSwxOC4xXFxcIi8+XFxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVxcXCJNMTU4LjgsMjYuOWMyLjEtMC44LDQuMy0yLjksNC4zLTYuNmMwLTQuNS0zLjEtNy40LTcuNy03LjRoLTEwLjV2MjIuM2g1Ljh2LTcuNWgyLjJsNC4xLDcuNWg2LjdMMTU4LjgsMjYuOXogTTE1NC43LDIyLjUgaC00VjE4aDRjMS41LDAsMi41LDAuOSwyLjUsMi4yQzE1Ny4yLDIxLjYsMTU2LjIsMjIuNSwxNTQuNywyMi41elxcXCIvPlxcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cXFwiTTEzMC44LDEyLjVjLTYuOCwwLTExLjYsNC45LTExLjYsMTEuNXM0LjksMTEuNSwxMS42LDExLjVzMTEuNy00LjksMTEuNy0xMS41UzEzNy42LDEyLjUsMTMwLjgsMTIuNXogTTEzMC44LDMwLjMgYy0zLjQsMC01LjctMi42LTUuNy02LjNjMC0zLjgsMi4zLTYuMyw1LjctNi4zYzMuNCwwLDUuOCwyLjYsNS44LDYuM0MxMzYuNiwyNy43LDEzNC4yLDMwLjMsMTMwLjgsMzAuM3pcXFwiLz5cXG4gICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz1cXFwiODIuMSwxMi44IDk4LjMsMTIuOCA5OC4zLDE4IDg3LjksMTggODcuOSwyMS4zIDk4LDIxLjMgOTgsMjYuNCA4Ny45LDI2LjQgODcuOSwzMCA5OC4zLDMwIDk4LjMsMzUuMiA4Mi4xLDM1LjIgXFxcIi8+XFxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVxcXCJNMjQuNiw5LjdDMjQuNiw0LjQsMjAsMCwxNC40LDBTNC4yLDQuNCw0LjIsOS43djMuMUgwdjIyLjNoMGwxNC40LDYuN2wxNC40LTYuN2gwVjEyLjloLTQuMlY5Ljd6IE05LjQsOS43IGMwLTIuNSwyLjItNC41LDUtNC41czUsMiw1LDQuNXYzLjFIOS40VjkuN3ogTTIzLDMxLjVsLTguNiw0bC04LjYtNFYxOC4xSDIzVjMxLjV6XFxcIi8+XFxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVxcXCJNNzkuNCwyMC4zYzAtNC41LTMuMS03LjQtNy43LTcuNEg2MS4ydjIyLjNINjd2LTcuNWgyLjJsNC4xLDcuNUg4MGwtNC45LTguM0M3Ny4yLDI2LjEsNzkuNCwyNCw3OS40LDIwLjN6IE03MSwyMi41aC00VjE4IGg0YzEuNSwwLDIuNSwwLjksMi41LDIuMkM3My41LDIxLjYsNzIuNSwyMi41LDcxLDIyLjV6XFxcIi8+XFxuICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XFxcIjQwLjUsMTIuOCA1OC42LDEyLjggNTguNiwxOC4xIDUyLjQsMTguMSA1Mi40LDM1LjIgNDYuNiwzNS4yIDQ2LjYsMTguMSA0MC41LDE4LjEgXFxcIi8+XFxuICAgICAgICAgICAgICAgIDwvc3ZnPlxcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJ0cmV6b3Jjb25uZWN0LWNsb3NlXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeD1cXFwiMHB4XFxcIiB5PVxcXCIwcHhcXFwiIHZpZXdCb3g9XFxcIjI0IDI0IDYwIDYwXFxcIiB3aWR0aD1cXFwiMjRweFxcXCIgaGVpZ2h0PVxcXCIyNHB4XFxcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVxcXCJ4TWluWU1pbiBtZWV0XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz1cXFwic3QwXFxcIiBwb2ludHM9XFxcIjQwLDY3LjkgNDIuMSw3MCA1NSw1Ny4xIDY3LjksNzAgNzAsNjcuOSA1Ny4xLDU1IDcwLDQyLjEgNjcuOSw0MCA1NSw1Mi45IDQyLjEsNDAgNDAsNDIuMSA1Mi45LDU1IFxcXCIvPlxcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInRyZXpvcmNvbm5lY3QtYm9keVxcXCI+XFxuICAgICAgICAgICAgICAgIDxoMz5Qb3B1cCB3YXMgYmxvY2tlZDwvaDM+XFxuICAgICAgICAgICAgICAgIDxwPlBsZWFzZSBjbGljayB0byBcXHUyMDFDQ29udGludWVcXHUyMDFEIHRvIG9wZW4gcG9wdXAgbWFudWFsbHk8L3A+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XFxcInRyZXpvcmNvbm5lY3Qtb3BlblxcXCI+Q29udGludWU8L2J1dHRvbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG5cIjtcblxudmFyIHNob3dQb3B1cFJlcXVlc3QgPSBmdW5jdGlvbiBzaG93UG9wdXBSZXF1ZXN0KG9wZW4sIGNhbmNlbCkge1xuICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGF5ZXJJRCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5pZCA9IGxheWVySUQ7XG4gIGRpdi5jbGFzc05hbWUgPSAndHJlem9yY29ubmVjdC1jb250YWluZXInO1xuICBkaXYuaW5uZXJIVE1MID0gbGF5ZXJJbm5lckh0bWw7XG5cbiAgaWYgKGRvY3VtZW50LmJvZHkpIHtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gIH1cblxuICB2YXIgYnV0dG9uID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RyZXpvcmNvbm5lY3Qtb3BlbicpWzBdO1xuXG4gIGJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgIG9wZW4oKTtcblxuICAgIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7XG4gICAgfVxuICB9O1xuXG4gIHZhciBjbG9zZSA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0cmV6b3Jjb25uZWN0LWNsb3NlJylbMF07XG5cbiAgY2xvc2Uub25jbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICBjYW5jZWwoKTtcblxuICAgIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zaG93UG9wdXBSZXF1ZXN0ID0gc2hvd1BvcHVwUmVxdWVzdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/popup/showPopupRequest.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/account.js":
/*!**********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/account.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvYWNjb3VudC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/account.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/blockchainEvent.js":
/*!******************************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/blockchainEvent.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nvar BLOCKCHAIN = _interopRequireWildcard(__webpack_require__(/*! ../constants/blockchain */ \"./node_modules/trezor-connect/lib/constants/blockchain.js\"));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi90eXBlcy9ibG9ja2NoYWluRXZlbnQuanM/MDdhNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4QkFBOEIsbUJBQU8sQ0FBQyxzSEFBK0M7O0FBRXJGLHlDQUF5QyxtQkFBTyxDQUFDLDBGQUF5QiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvYmxvY2tjaGFpbkV2ZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlV2lsZGNhcmRcIik7XG5cbnZhciBCTE9DS0NIQUlOID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uL2NvbnN0YW50cy9ibG9ja2NoYWluXCIpKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/blockchainEvent.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/cardano.js":
/*!**********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/cardano.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvY2FyZGFuby5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/cardano.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/coinInfo.js":
/*!***********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/coinInfo.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvY29pbkluZm8uanMuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/coinInfo.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/eos.js":
/*!******************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/eos.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvZW9zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/eos.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/ethereum.js":
/*!***********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/ethereum.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvZXRoZXJldW0uanMuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/ethereum.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/index.js":
/*!********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/index.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nexports.__esModule = true;\n\nvar _constants = __webpack_require__(/*! ../constants */ \"./node_modules/trezor-connect/lib/constants/index.js\");\n\nvar TRANSPORT = _interopRequireWildcard(__webpack_require__(/*! ../constants/transport */ \"./node_modules/trezor-connect/lib/constants/transport.js\"));\n\nvar POPUP = _interopRequireWildcard(__webpack_require__(/*! ../constants/popup */ \"./node_modules/trezor-connect/lib/constants/popup.js\"));\n\nvar UI = _interopRequireWildcard(__webpack_require__(/*! ../constants/ui */ \"./node_modules/trezor-connect/lib/constants/ui.js\"));\n\nvar DEVICE = _interopRequireWildcard(__webpack_require__(/*! ../constants/device */ \"./node_modules/trezor-connect/lib/constants/device.js\"));\n\nvar P = _interopRequireWildcard(__webpack_require__(/*! ./params */ \"./node_modules/trezor-connect/lib/types/params.js\"));\n\nvar R = _interopRequireWildcard(__webpack_require__(/*! ./response */ \"./node_modules/trezor-connect/lib/types/response.js\"));\n\nObject.keys(R).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n exports[key] = R[key];\n});\n\nvar CARDANO = _interopRequireWildcard(__webpack_require__(/*! ./cardano */ \"./node_modules/trezor-connect/lib/types/cardano.js\"));\n\nvar RIPPLE = _interopRequireWildcard(__webpack_require__(/*! ./ripple */ \"./node_modules/trezor-connect/lib/types/ripple.js\"));\n\nvar ETHEREUM = _interopRequireWildcard(__webpack_require__(/*! ./ethereum */ \"./node_modules/trezor-connect/lib/types/ethereum.js\"));\n\nvar NEM = _interopRequireWildcard(__webpack_require__(/*! ./nem */ \"./node_modules/trezor-connect/lib/types/nem.js\"));\n\nvar STELLAR = _interopRequireWildcard(__webpack_require__(/*! ./stellar */ \"./node_modules/trezor-connect/lib/types/stellar.js\"));\n\nvar LISK = _interopRequireWildcard(__webpack_require__(/*! ./lisk */ \"./node_modules/trezor-connect/lib/types/lisk.js\"));\n\nvar TEZOS = _interopRequireWildcard(__webpack_require__(/*! ./tezos */ \"./node_modules/trezor-connect/lib/types/tezos.js\"));\n\nvar EOS = _interopRequireWildcard(__webpack_require__(/*! ./eos */ \"./node_modules/trezor-connect/lib/types/eos.js\"));\n\nvar _coinInfo = __webpack_require__(/*! ./coinInfo */ \"./node_modules/trezor-connect/lib/types/coinInfo.js\");\n\nObject.keys(_coinInfo).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n exports[key] = _coinInfo[key];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi90eXBlcy9pbmRleC5qcz8wZGNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhCQUE4QixtQkFBTyxDQUFDLHNIQUErQzs7QUFFckY7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWM7O0FBRXZDLHdDQUF3QyxtQkFBTyxDQUFDLHdGQUF3Qjs7QUFFeEUsb0NBQW9DLG1CQUFPLENBQUMsZ0ZBQW9COztBQUVoRSxpQ0FBaUMsbUJBQU8sQ0FBQywwRUFBaUI7O0FBRTFELHFDQUFxQyxtQkFBTyxDQUFDLGtGQUFxQjs7QUFFbEUsZ0NBQWdDLG1CQUFPLENBQUMsbUVBQVU7O0FBRWxELGdDQUFnQyxtQkFBTyxDQUFDLHVFQUFZOztBQUVwRDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVELHNDQUFzQyxtQkFBTyxDQUFDLHFFQUFXOztBQUV6RCxxQ0FBcUMsbUJBQU8sQ0FBQyxtRUFBVTs7QUFFdkQsdUNBQXVDLG1CQUFPLENBQUMsdUVBQVk7O0FBRTNELGtDQUFrQyxtQkFBTyxDQUFDLDZEQUFPOztBQUVqRCxzQ0FBc0MsbUJBQU8sQ0FBQyxxRUFBVzs7QUFFekQsbUNBQW1DLG1CQUFPLENBQUMsK0RBQVE7O0FBRW5ELG9DQUFvQyxtQkFBTyxDQUFDLGlFQUFTOztBQUVyRCxrQ0FBa0MsbUJBQU8sQ0FBQyw2REFBTzs7QUFFakQsZ0JBQWdCLG1CQUFPLENBQUMsdUVBQVk7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL3R5cGVzL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlV2lsZGNhcmRcIik7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2NvbnN0YW50c1wiKTtcblxudmFyIFRSQU5TUE9SVCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi9jb25zdGFudHMvdHJhbnNwb3J0XCIpKTtcblxudmFyIFBPUFVQID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uL2NvbnN0YW50cy9wb3B1cFwiKSk7XG5cbnZhciBVSSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi9jb25zdGFudHMvdWlcIikpO1xuXG52YXIgREVWSUNFID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uL2NvbnN0YW50cy9kZXZpY2VcIikpO1xuXG52YXIgUCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL3BhcmFtc1wiKSk7XG5cbnZhciBSID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vcmVzcG9uc2VcIikpO1xuXG5PYmplY3Qua2V5cyhSKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwga2V5ID09PSBcIl9fZXNNb2R1bGVcIikgcmV0dXJuO1xuICBleHBvcnRzW2tleV0gPSBSW2tleV07XG59KTtcblxudmFyIENBUkRBTk8gPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9jYXJkYW5vXCIpKTtcblxudmFyIFJJUFBMRSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL3JpcHBsZVwiKSk7XG5cbnZhciBFVEhFUkVVTSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL2V0aGVyZXVtXCIpKTtcblxudmFyIE5FTSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL25lbVwiKSk7XG5cbnZhciBTVEVMTEFSID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vc3RlbGxhclwiKSk7XG5cbnZhciBMSVNLID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vbGlza1wiKSk7XG5cbnZhciBURVpPUyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL3Rlem9zXCIpKTtcblxudmFyIEVPUyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL2Vvc1wiKSk7XG5cbnZhciBfY29pbkluZm8gPSByZXF1aXJlKFwiLi9jb2luSW5mb1wiKTtcblxuT2JqZWN0LmtleXMoX2NvaW5JbmZvKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwga2V5ID09PSBcIl9fZXNNb2R1bGVcIikgcmV0dXJuO1xuICBleHBvcnRzW2tleV0gPSBfY29pbkluZm9ba2V5XTtcbn0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/index.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/lisk.js":
/*!*******************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/lisk.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvbGlzay5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/lisk.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/nem.js":
/*!******************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/nem.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvbmVtLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/nem.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/params.js":
/*!*********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/params.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvcGFyYW1zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/params.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/response.js":
/*!***********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/response.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvcmVzcG9uc2UuanMuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/response.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/ripple.js":
/*!*********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/ripple.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvcmlwcGxlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/ripple.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/stellar.js":
/*!**********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/stellar.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvc3RlbGxhci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/stellar.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/types/tezos.js":
/*!********************************************************!*\
!*** ./node_modules/trezor-connect/lib/types/tezos.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdHlwZXMvdGV6b3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/types/tezos.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/utils/debug.js":
/*!********************************************************!*\
!*** ./node_modules/trezor-connect/lib/utils/debug.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) { // https://stackoverflow.com/questions/7505623/colors-in-javascript-console\n// https://github.com/pimterry/loglevel/blob/master/lib/loglevel.js\n// http://www.color-hex.com/color-palette/5016\n\nexports.__esModule = true;\nexports.popupConsole = exports.enableByPrefix = exports.getLog = exports.enable = exports.init = exports[\"default\"] = void 0;\n\nvar _this = void 0;\n\nvar colors = {\n // green\n 'DescriptorStream': 'color: #77ab59',\n 'DeviceList': 'color: #36802d',\n 'Device': 'color: #bada55',\n 'Core': 'color: #c9df8a',\n 'IFrame': 'color: #FFFFFF; background: #f4a742;',\n 'Popup': 'color: #f48a00'\n};\n\nvar Log =\n/*#__PURE__*/\nfunction () {\n function Log(prefix, enabled) {\n if (enabled === void 0) {\n enabled = false;\n }\n\n this.prefix = prefix;\n this.enabled = enabled;\n this.messages = [];\n this.css = colors[prefix] || 'color: #000000; background: #FFFFFF;';\n }\n\n var _proto = Log.prototype;\n\n _proto.addMessage = function addMessage(level, prefix) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n this.messages.push({\n level: level,\n prefix: prefix,\n message: args,\n timestamp: new Date().getTime()\n });\n };\n\n _proto.log = function log() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.addMessage.apply(this, ['log', this.prefix].concat(args));\n\n if (this.enabled) {\n var _console;\n\n (_console = console).log.apply(_console, [this.prefix].concat(args));\n }\n };\n\n _proto.error = function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this.addMessage.apply(this, ['error', this.prefix].concat(args));\n\n if (this.enabled) {\n var _console2;\n\n (_console2 = console).error.apply(_console2, [this.prefix].concat(args));\n }\n };\n\n _proto.warn = function warn() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this.addMessage.apply(this, ['warn', this.prefix].concat(args));\n\n if (this.enabled) {\n var _console3;\n\n (_console3 = console).warn.apply(_console3, [this.prefix].concat(args));\n }\n };\n\n _proto.debug = function debug() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n this.addMessage.apply(this, ['debug', this.prefix].concat(args));\n\n if (this.enabled) {\n var _console4;\n\n (_console4 = console).log.apply(_console4, ['%c' + this.prefix, this.css].concat(args));\n }\n };\n\n return Log;\n}();\n\nexports[\"default\"] = Log;\nvar _logs = {};\n\nvar init = function init(prefix, enabled) {\n var enab = typeof enabled === 'boolean' ? enabled : false;\n var instance = new Log(prefix, enab);\n _logs[prefix] = instance;\n return instance;\n};\n\nexports.init = init;\n\nvar enable = function enable(enabled) {\n for (var _i = 0, _Object$keys = Object.keys(_logs); _i < _Object$keys.length; _i++) {\n var l = _Object$keys[_i];\n _logs[l].enabled = enabled;\n }\n};\n\nexports.enable = enable;\n\nvar getLog = function getLog(args) {\n // if\n var logs = [];\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(_logs); _i2 < _Object$keys2.length; _i2++) {\n var l = _Object$keys2[_i2];\n logs = logs.concat(_logs[l].messages);\n }\n\n logs.sort(function (a, b) {\n return a.timestamp - b.timestamp;\n });\n return logs;\n};\n\nexports.getLog = getLog;\n\nvar enableByPrefix = function enableByPrefix(prefix, enabled) {\n if (_logs[prefix]) {\n _logs[prefix].enabled = enabled;\n }\n}; // TODO: enable/disable log at runtime\n\n\nexports.enableByPrefix = enableByPrefix;\n\nvar popupConsole = function popupConsole(tag, postMessage) {\n var c = global.console;\n var orig = {\n error: c.error,\n // warn: c.warn,\n info: c.info,\n debug: c.debug,\n log: c.log\n };\n var log = [];\n\n var inject = function inject(method, level) {\n return function () {\n // args.unshift('[popup.js]');\n var time = new Date().toUTCString();\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n log.push([level, time].concat(args));\n postMessage.apply(_this, [{\n type: tag,\n level: level,\n time: time,\n args: JSON.stringify(args)\n }]);\n return method.apply(c, args);\n };\n };\n\n for (var level in orig) {\n c[level] = inject(orig[level], level);\n }\n};\n\nexports.popupConsole = popupConsole;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi91dGlscy9kZWJ1Zy5qcz8wYjY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixxQkFBcUI7QUFDakQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQscUJBQXFCO0FBQ3RFOztBQUVBOztBQUVBO0FBQ0EsMEZBQTBGLGFBQWE7QUFDdkc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsMEVBQTBFLGVBQWU7QUFDekY7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBFQUEwRSxlQUFlO0FBQ3pGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwRUFBMEUsZUFBZTtBQUN6RjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEVBQTBFLGVBQWU7QUFDekY7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxxREFBcUQsMEJBQTBCO0FBQy9FO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx1REFBdUQsNEJBQTRCO0FBQ25GO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0RUFBNEUsZUFBZTtBQUMzRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0MiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL3V0aWxzL2RlYnVnLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnOyAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NTA1NjIzL2NvbG9ycy1pbi1qYXZhc2NyaXB0LWNvbnNvbGVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waW10ZXJyeS9sb2dsZXZlbC9ibG9iL21hc3Rlci9saWIvbG9nbGV2ZWwuanNcbi8vIGh0dHA6Ly93d3cuY29sb3ItaGV4LmNvbS9jb2xvci1wYWxldHRlLzUwMTZcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMucG9wdXBDb25zb2xlID0gZXhwb3J0cy5lbmFibGVCeVByZWZpeCA9IGV4cG9ydHMuZ2V0TG9nID0gZXhwb3J0cy5lbmFibGUgPSBleHBvcnRzLmluaXQgPSBleHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF90aGlzID0gdm9pZCAwO1xuXG52YXIgY29sb3JzID0ge1xuICAvLyBncmVlblxuICAnRGVzY3JpcHRvclN0cmVhbSc6ICdjb2xvcjogIzc3YWI1OScsXG4gICdEZXZpY2VMaXN0JzogJ2NvbG9yOiAjMzY4MDJkJyxcbiAgJ0RldmljZSc6ICdjb2xvcjogI2JhZGE1NScsXG4gICdDb3JlJzogJ2NvbG9yOiAjYzlkZjhhJyxcbiAgJ0lGcmFtZSc6ICdjb2xvcjogI0ZGRkZGRjsgYmFja2dyb3VuZDogI2Y0YTc0MjsnLFxuICAnUG9wdXAnOiAnY29sb3I6ICNmNDhhMDAnXG59O1xuXG52YXIgTG9nID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTG9nKHByZWZpeCwgZW5hYmxlZCkge1xuICAgIGlmIChlbmFibGVkID09PSB2b2lkIDApIHtcbiAgICAgIGVuYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkO1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmNzcyA9IGNvbG9yc1twcmVmaXhdIHx8ICdjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI0ZGRkZGRjsnO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IExvZy5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmFkZE1lc3NhZ2UgPSBmdW5jdGlvbiBhZGRNZXNzYWdlKGxldmVsLCBwcmVmaXgpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAyXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2goe1xuICAgICAgbGV2ZWw6IGxldmVsLFxuICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICBtZXNzYWdlOiBhcmdzLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5sb2cgPSBmdW5jdGlvbiBsb2coKSB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgdGhpcy5hZGRNZXNzYWdlLmFwcGx5KHRoaXMsIFsnbG9nJywgdGhpcy5wcmVmaXhdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB2YXIgX2NvbnNvbGU7XG5cbiAgICAgIChfY29uc29sZSA9IGNvbnNvbGUpLmxvZy5hcHBseShfY29uc29sZSwgW3RoaXMucHJlZml4XS5jb25jYXQoYXJncykpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uZXJyb3IgPSBmdW5jdGlvbiBlcnJvcigpIHtcbiAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgIGFyZ3NbX2tleTNdID0gYXJndW1lbnRzW19rZXkzXTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZE1lc3NhZ2UuYXBwbHkodGhpcywgWydlcnJvcicsIHRoaXMucHJlZml4XS5jb25jYXQoYXJncykpO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdmFyIF9jb25zb2xlMjtcblxuICAgICAgKF9jb25zb2xlMiA9IGNvbnNvbGUpLmVycm9yLmFwcGx5KF9jb25zb2xlMiwgW3RoaXMucHJlZml4XS5jb25jYXQoYXJncykpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8ud2FybiA9IGZ1bmN0aW9uIHdhcm4oKSB7XG4gICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgfVxuXG4gICAgdGhpcy5hZGRNZXNzYWdlLmFwcGx5KHRoaXMsIFsnd2FybicsIHRoaXMucHJlZml4XS5jb25jYXQoYXJncykpO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdmFyIF9jb25zb2xlMztcblxuICAgICAgKF9jb25zb2xlMyA9IGNvbnNvbGUpLndhcm4uYXBwbHkoX2NvbnNvbGUzLCBbdGhpcy5wcmVmaXhdLmNvbmNhdChhcmdzKSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5kZWJ1ZyA9IGZ1bmN0aW9uIGRlYnVnKCkge1xuICAgIGZvciAodmFyIF9sZW41ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNSksIF9rZXk1ID0gMDsgX2tleTUgPCBfbGVuNTsgX2tleTUrKykge1xuICAgICAgYXJnc1tfa2V5NV0gPSBhcmd1bWVudHNbX2tleTVdO1xuICAgIH1cblxuICAgIHRoaXMuYWRkTWVzc2FnZS5hcHBseSh0aGlzLCBbJ2RlYnVnJywgdGhpcy5wcmVmaXhdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB2YXIgX2NvbnNvbGU0O1xuXG4gICAgICAoX2NvbnNvbGU0ID0gY29uc29sZSkubG9nLmFwcGx5KF9jb25zb2xlNCwgWyclYycgKyB0aGlzLnByZWZpeCwgdGhpcy5jc3NdLmNvbmNhdChhcmdzKSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBMb2c7XG59KCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTG9nO1xudmFyIF9sb2dzID0ge307XG5cbnZhciBpbml0ID0gZnVuY3Rpb24gaW5pdChwcmVmaXgsIGVuYWJsZWQpIHtcbiAgdmFyIGVuYWIgPSB0eXBlb2YgZW5hYmxlZCA9PT0gJ2Jvb2xlYW4nID8gZW5hYmxlZCA6IGZhbHNlO1xuICB2YXIgaW5zdGFuY2UgPSBuZXcgTG9nKHByZWZpeCwgZW5hYik7XG4gIF9sb2dzW3ByZWZpeF0gPSBpbnN0YW5jZTtcbiAgcmV0dXJuIGluc3RhbmNlO1xufTtcblxuZXhwb3J0cy5pbml0ID0gaW5pdDtcblxudmFyIGVuYWJsZSA9IGZ1bmN0aW9uIGVuYWJsZShlbmFibGVkKSB7XG4gIGZvciAodmFyIF9pID0gMCwgX09iamVjdCRrZXlzID0gT2JqZWN0LmtleXMoX2xvZ3MpOyBfaSA8IF9PYmplY3Qka2V5cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgbCA9IF9PYmplY3Qka2V5c1tfaV07XG4gICAgX2xvZ3NbbF0uZW5hYmxlZCA9IGVuYWJsZWQ7XG4gIH1cbn07XG5cbmV4cG9ydHMuZW5hYmxlID0gZW5hYmxlO1xuXG52YXIgZ2V0TG9nID0gZnVuY3Rpb24gZ2V0TG9nKGFyZ3MpIHtcbiAgLy8gaWZcbiAgdmFyIGxvZ3MgPSBbXTtcblxuICBmb3IgKHZhciBfaTIgPSAwLCBfT2JqZWN0JGtleXMyID0gT2JqZWN0LmtleXMoX2xvZ3MpOyBfaTIgPCBfT2JqZWN0JGtleXMyLmxlbmd0aDsgX2kyKyspIHtcbiAgICB2YXIgbCA9IF9PYmplY3Qka2V5czJbX2kyXTtcbiAgICBsb2dzID0gbG9ncy5jb25jYXQoX2xvZ3NbbF0ubWVzc2FnZXMpO1xuICB9XG5cbiAgbG9ncy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGEudGltZXN0YW1wIC0gYi50aW1lc3RhbXA7XG4gIH0pO1xuICByZXR1cm4gbG9ncztcbn07XG5cbmV4cG9ydHMuZ2V0TG9nID0gZ2V0TG9nO1xuXG52YXIgZW5hYmxlQnlQcmVmaXggPSBmdW5jdGlvbiBlbmFibGVCeVByZWZpeChwcmVmaXgsIGVuYWJsZWQpIHtcbiAgaWYgKF9sb2dzW3ByZWZpeF0pIHtcbiAgICBfbG9nc1twcmVmaXhdLmVuYWJsZWQgPSBlbmFibGVkO1xuICB9XG59OyAvLyBUT0RPOiBlbmFibGUvZGlzYWJsZSBsb2cgYXQgcnVudGltZVxuXG5cbmV4cG9ydHMuZW5hYmxlQnlQcmVmaXggPSBlbmFibGVCeVByZWZpeDtcblxudmFyIHBvcHVwQ29uc29sZSA9IGZ1bmN0aW9uIHBvcHVwQ29uc29sZSh0YWcsIHBvc3RNZXNzYWdlKSB7XG4gIHZhciBjID0gZ2xvYmFsLmNvbnNvbGU7XG4gIHZhciBvcmlnID0ge1xuICAgIGVycm9yOiBjLmVycm9yLFxuICAgIC8vIHdhcm46IGMud2FybixcbiAgICBpbmZvOiBjLmluZm8sXG4gICAgZGVidWc6IGMuZGVidWcsXG4gICAgbG9nOiBjLmxvZ1xuICB9O1xuICB2YXIgbG9nID0gW107XG5cbiAgdmFyIGluamVjdCA9IGZ1bmN0aW9uIGluamVjdChtZXRob2QsIGxldmVsKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIGFyZ3MudW5zaGlmdCgnW3BvcHVwLmpzXScpO1xuICAgICAgdmFyIHRpbWUgPSBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKCk7XG5cbiAgICAgIGZvciAodmFyIF9sZW42ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNiksIF9rZXk2ID0gMDsgX2tleTYgPCBfbGVuNjsgX2tleTYrKykge1xuICAgICAgICBhcmdzW19rZXk2XSA9IGFyZ3VtZW50c1tfa2V5Nl07XG4gICAgICB9XG5cbiAgICAgIGxvZy5wdXNoKFtsZXZlbCwgdGltZV0uY29uY2F0KGFyZ3MpKTtcbiAgICAgIHBvc3RNZXNzYWdlLmFwcGx5KF90aGlzLCBbe1xuICAgICAgICB0eXBlOiB0YWcsXG4gICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgdGltZTogdGltZSxcbiAgICAgICAgYXJnczogSlNPTi5zdHJpbmdpZnkoYXJncylcbiAgICAgIH1dKTtcbiAgICAgIHJldHVybiBtZXRob2QuYXBwbHkoYywgYXJncyk7XG4gICAgfTtcbiAgfTtcblxuICBmb3IgKHZhciBsZXZlbCBpbiBvcmlnKSB7XG4gICAgY1tsZXZlbF0gPSBpbmplY3Qob3JpZ1tsZXZlbF0sIGxldmVsKTtcbiAgfVxufTtcblxuZXhwb3J0cy5wb3B1cENvbnNvbGUgPSBwb3B1cENvbnNvbGU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/utils/debug.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/utils/deferred.js":
/*!***********************************************************!*\
!*** ./node_modules/trezor-connect/lib/utils/deferred.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.create = create;\nexports.createAsync = createAsync;\nexports.resolveTimeoutPromise = resolveTimeoutPromise;\nexports.rejectTimeoutPromise = rejectTimeoutPromise;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nfunction create(arg, device) {\n var localResolve = function localResolve(t) {};\n\n var localReject = function localReject(e) {};\n\n var id;\n var promise = new Promise(\n /*#__PURE__*/\n function () {\n var _ref = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(resolve, reject) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n localResolve = resolve;\n localReject = reject;\n\n if (!(typeof arg === 'function')) {\n _context.next = 11;\n break;\n }\n\n _context.prev = 3;\n _context.next = 6;\n return arg();\n\n case 6:\n _context.next = 11;\n break;\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](3);\n reject(_context.t0);\n\n case 11:\n if (typeof arg === 'string') id = arg;\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 8]]);\n }));\n\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n return {\n id: id,\n device: device,\n resolve: localResolve,\n reject: localReject,\n promise: promise\n };\n}\n\nfunction createAsync(innerFn) {\n var localResolve = function localResolve(t) {};\n\n var localReject = function localReject(e) {};\n\n var promise = new Promise(function (resolve, reject) {\n localResolve = resolve;\n localReject = reject;\n });\n\n var inner =\n /*#__PURE__*/\n function () {\n var _ref2 = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee2() {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return innerFn();\n\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function inner() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n return {\n resolve: localResolve,\n reject: localReject,\n promise: promise,\n run: function run() {\n inner();\n return promise;\n }\n };\n}\n\nfunction resolveTimeoutPromise(delay, result) {\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve(result);\n }, delay);\n });\n}\n\nfunction rejectTimeoutPromise(delay, error) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n reject(error);\n }, delay);\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi91dGlscy9kZWZlcnJlZC5qcz8zMWI0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQ0FBMEMsbUJBQU8sQ0FBQyxzRkFBNEI7O0FBRTlFLGdEQUFnRCxtQkFBTyxDQUFDLDBHQUF5Qzs7QUFFakc7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy90cmV6b3ItY29ubmVjdC9saWIvdXRpbHMvZGVmZXJyZWQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jcmVhdGUgPSBjcmVhdGU7XG5leHBvcnRzLmNyZWF0ZUFzeW5jID0gY3JlYXRlQXN5bmM7XG5leHBvcnRzLnJlc29sdmVUaW1lb3V0UHJvbWlzZSA9IHJlc29sdmVUaW1lb3V0UHJvbWlzZTtcbmV4cG9ydHMucmVqZWN0VGltZW91dFByb21pc2UgPSByZWplY3RUaW1lb3V0UHJvbWlzZTtcblxudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcblxudmFyIF9hc3luY1RvR2VuZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvclwiKSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZShhcmcsIGRldmljZSkge1xuICB2YXIgbG9jYWxSZXNvbHZlID0gZnVuY3Rpb24gbG9jYWxSZXNvbHZlKHQpIHt9O1xuXG4gIHZhciBsb2NhbFJlamVjdCA9IGZ1bmN0aW9uIGxvY2FsUmVqZWN0KGUpIHt9O1xuXG4gIHZhciBpZDtcbiAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShcbiAgLyojX19QVVJFX18qL1xuICBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9yZWYgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyW1wiZGVmYXVsdFwiXSkoXG4gICAgLyojX19QVVJFX18qL1xuICAgIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ubWFyayhmdW5jdGlvbiBfY2FsbGVlKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkge1xuICAgICAgICB3aGlsZSAoMSkge1xuICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgbG9jYWxSZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgICAgICAgbG9jYWxSZWplY3QgPSByZWplY3Q7XG5cbiAgICAgICAgICAgICAgaWYgKCEodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMztcbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDY7XG4gICAgICAgICAgICAgIHJldHVybiBhcmcoKTtcblxuICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTE7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSA4O1xuICAgICAgICAgICAgICBfY29udGV4dC50MCA9IF9jb250ZXh0W1wiY2F0Y2hcIl0oMyk7XG4gICAgICAgICAgICAgIHJlamVjdChfY29udGV4dC50MCk7XG5cbiAgICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykgaWQgPSBhcmc7XG5cbiAgICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzMsIDhdXSk7XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7XG4gICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH0oKSk7XG4gIHJldHVybiB7XG4gICAgaWQ6IGlkLFxuICAgIGRldmljZTogZGV2aWNlLFxuICAgIHJlc29sdmU6IGxvY2FsUmVzb2x2ZSxcbiAgICByZWplY3Q6IGxvY2FsUmVqZWN0LFxuICAgIHByb21pc2U6IHByb21pc2VcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXN5bmMoaW5uZXJGbikge1xuICB2YXIgbG9jYWxSZXNvbHZlID0gZnVuY3Rpb24gbG9jYWxSZXNvbHZlKHQpIHt9O1xuXG4gIHZhciBsb2NhbFJlamVjdCA9IGZ1bmN0aW9uIGxvY2FsUmVqZWN0KGUpIHt9O1xuXG4gIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGxvY2FsUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgbG9jYWxSZWplY3QgPSByZWplY3Q7XG4gIH0pO1xuXG4gIHZhciBpbm5lciA9XG4gIC8qI19fUFVSRV9fKi9cbiAgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcmVmMiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgICAvKiNfX1BVUkVfXyovXG4gICAgX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkge1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcltcImRlZmF1bHRcIl0ud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7XG4gICAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgICAgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjtcbiAgICAgICAgICAgICAgcmV0dXJuIGlubmVyRm4oKTtcblxuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUyKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXIoKSB7XG4gICAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9KCk7XG5cbiAgcmV0dXJuIHtcbiAgICByZXNvbHZlOiBsb2NhbFJlc29sdmUsXG4gICAgcmVqZWN0OiBsb2NhbFJlamVjdCxcbiAgICBwcm9taXNlOiBwcm9taXNlLFxuICAgIHJ1bjogZnVuY3Rpb24gcnVuKCkge1xuICAgICAgaW5uZXIoKTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRpbWVvdXRQcm9taXNlKGRlbGF5LCByZXN1bHQpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgfSwgZGVsYXkpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVqZWN0VGltZW91dFByb21pc2UoZGVsYXksIGVycm9yKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZWplY3QoZXJyb3IpO1xuICAgIH0sIGRlbGF5KTtcbiAgfSk7XG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/utils/deferred.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/utils/networkUtils.js":
/*!***************************************************************!*\
!*** ./node_modules/trezor-connect/lib/utils/networkUtils.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.getOrigin = exports.httpRequest = void 0;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\n__webpack_require__(/*! whatwg-fetch */ \"./node_modules/next/dist/build/polyfills/fetch/whatwg-fetch.js\");\n\nvar httpRequest =\n/*#__PURE__*/\nfunction () {\n var _ref = (0, _asyncToGenerator2[\"default\"])(\n /*#__PURE__*/\n _regenerator[\"default\"].mark(function _callee(url, type) {\n var response, txt;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (type === void 0) {\n type = 'text';\n }\n\n _context.next = 3;\n return fetch(url, {\n credentials: 'same-origin'\n });\n\n case 3:\n response = _context.sent;\n\n if (!response.ok) {\n _context.next = 23;\n break;\n }\n\n if (!(type === 'json')) {\n _context.next = 12;\n break;\n }\n\n _context.next = 8;\n return response.text();\n\n case 8:\n txt = _context.sent;\n return _context.abrupt(\"return\", JSON.parse(txt));\n\n case 12:\n if (!(type === 'binary')) {\n _context.next = 18;\n break;\n }\n\n _context.next = 15;\n return response.arrayBuffer();\n\n case 15:\n return _context.abrupt(\"return\", _context.sent);\n\n case 18:\n _context.next = 20;\n return response.text();\n\n case 20:\n return _context.abrupt(\"return\", _context.sent);\n\n case 21:\n _context.next = 24;\n break;\n\n case 23:\n throw new Error(\"httpRequest error: \" + url + \" \" + response.statusText);\n\n case 24:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function httpRequest(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.httpRequest = httpRequest;\n\nvar getOrigin = function getOrigin(url) {\n // eslint-disable-next-line no-irregular-whitespace, no-useless-escape\n var parts = url.match(/^.+\\:\\/\\/[^\\/]+/);\n return Array.isArray(parts) && parts.length > 0 ? parts[0] : 'unknown';\n};\n\nexports.getOrigin = getOrigin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi91dGlscy9uZXR3b3JrVXRpbHMuanM/ZDIxZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQyxvSEFBOEM7O0FBRW5GO0FBQ0E7O0FBRUEsMENBQTBDLG1CQUFPLENBQUMsc0ZBQTRCOztBQUU5RSxnREFBZ0QsbUJBQU8sQ0FBQywwR0FBeUM7O0FBRWpHLG1CQUFPLENBQUMsb0ZBQWM7O0FBRXRCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHJlem9yLWNvbm5lY3QvbGliL3V0aWxzL25ldHdvcmtVdGlscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmdldE9yaWdpbiA9IGV4cG9ydHMuaHR0cFJlcXVlc3QgPSB2b2lkIDA7XG5cbnZhciBfcmVnZW5lcmF0b3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvclwiKSk7XG5cbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xuXG5yZXF1aXJlKFwid2hhdHdnLWZldGNoXCIpO1xuXG52YXIgaHR0cFJlcXVlc3QgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICB2YXIgX3JlZiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjJbXCJkZWZhdWx0XCJdKShcbiAgLyojX19QVVJFX18qL1xuICBfcmVnZW5lcmF0b3JbXCJkZWZhdWx0XCJdLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSh1cmwsIHR5cGUpIHtcbiAgICB2YXIgcmVzcG9uc2UsIHR4dDtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yW1wiZGVmYXVsdFwiXS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICB3aGlsZSAoMSkge1xuICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgaWYgKHR5cGUgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgICB0eXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMztcbiAgICAgICAgICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmVzcG9uc2UgPSBfY29udGV4dC5zZW50O1xuXG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyMztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKHR5cGUgPT09ICdqc29uJykpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEyO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDg7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgdHh0ID0gX2NvbnRleHQuc2VudDtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgSlNPTi5wYXJzZSh0eHQpKTtcblxuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBpZiAoISh0eXBlID09PSAnYmluYXJ5JykpIHtcbiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDE4O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDE1O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7XG5cbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dC5zZW50KTtcblxuICAgICAgICAgIGNhc2UgMTg6XG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjA7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQuc2VudCk7XG5cbiAgICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDI0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaHR0cFJlcXVlc3QgZXJyb3I6IFwiICsgdXJsICsgXCIgXCIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTtcblxuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF9jYWxsZWUpO1xuICB9KSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGh0dHBSZXF1ZXN0KF94LCBfeDIpIHtcbiAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufSgpO1xuXG5leHBvcnRzLmh0dHBSZXF1ZXN0ID0gaHR0cFJlcXVlc3Q7XG5cbnZhciBnZXRPcmlnaW4gPSBmdW5jdGlvbiBnZXRPcmlnaW4odXJsKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pcnJlZ3VsYXItd2hpdGVzcGFjZSwgbm8tdXNlbGVzcy1lc2NhcGVcbiAgdmFyIHBhcnRzID0gdXJsLm1hdGNoKC9eLitcXDpcXC9cXC9bXlxcL10rLyk7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnRzKSAmJiBwYXJ0cy5sZW5ndGggPiAwID8gcGFydHNbMF0gOiAndW5rbm93bic7XG59O1xuXG5leHBvcnRzLmdldE9yaWdpbiA9IGdldE9yaWdpbjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/utils/networkUtils.js\n");
/***/ }),
/***/ "./node_modules/trezor-connect/lib/webusb/button.js":
/*!**********************************************************!*\
!*** ./node_modules/trezor-connect/lib/webusb/button.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar render = function render(className, url, origin) {\n var query = className || '.trezor-webusb-button';\n var buttons = document.querySelectorAll(query);\n var src = url + \"?\" + Date.now();\n buttons.forEach(function (b) {\n if (b.getElementsByTagName('iframe').length < 1) {\n var bounds = b.getBoundingClientRect();\n var btnIframe = document.createElement('iframe');\n btnIframe.frameBorder = '0';\n btnIframe.width = Math.round(bounds.width) + 'px';\n btnIframe.height = Math.round(bounds.height) + 'px';\n btnIframe.style.position = 'absolute';\n btnIframe.style.top = '0px';\n btnIframe.style.left = '0px';\n btnIframe.style.zIndex = '1'; // btnIframe.style.opacity = '0'; // this makes click impossible on cross-origin\n\n btnIframe.setAttribute('allow', 'usb');\n btnIframe.setAttribute('scrolling', 'no');\n\n btnIframe.onload = function () {\n btnIframe.contentWindow.postMessage({// style: JSON.stringify( window.getComputedStyle(b) ),\n // outer: b.outerHTML,\n // inner: b.innerHTML\n }, origin);\n };\n\n btnIframe.src = src; // inject iframe into button\n\n b.append(btnIframe);\n }\n });\n};\n\nvar _default = render;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi93ZWJ1c2IvYnV0dG9uLmpzP2IxOWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGtDQUFrQzs7QUFFckU7QUFDQTs7QUFFQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBLDBCQUEwQjs7QUFFMUI7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3RyZXpvci1jb25uZWN0L2xpYi93ZWJ1c2IvYnV0dG9uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoY2xhc3NOYW1lLCB1cmwsIG9yaWdpbikge1xuICB2YXIgcXVlcnkgPSBjbGFzc05hbWUgfHwgJy50cmV6b3Itd2VidXNiLWJ1dHRvbic7XG4gIHZhciBidXR0b25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChxdWVyeSk7XG4gIHZhciBzcmMgPSB1cmwgKyBcIj9cIiArIERhdGUubm93KCk7XG4gIGJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbiAoYikge1xuICAgIGlmIChiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKS5sZW5ndGggPCAxKSB7XG4gICAgICB2YXIgYm91bmRzID0gYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciBidG5JZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICAgIGJ0bklmcmFtZS5mcmFtZUJvcmRlciA9ICcwJztcbiAgICAgIGJ0bklmcmFtZS53aWR0aCA9IE1hdGgucm91bmQoYm91bmRzLndpZHRoKSArICdweCc7XG4gICAgICBidG5JZnJhbWUuaGVpZ2h0ID0gTWF0aC5yb3VuZChib3VuZHMuaGVpZ2h0KSArICdweCc7XG4gICAgICBidG5JZnJhbWUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgYnRuSWZyYW1lLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgICAgYnRuSWZyYW1lLnN0eWxlLmxlZnQgPSAnMHB4JztcbiAgICAgIGJ0bklmcmFtZS5zdHlsZS56SW5kZXggPSAnMSc7IC8vIGJ0bklmcmFtZS5zdHlsZS5vcGFjaXR5ID0gJzAnOyAvLyB0aGlzIG1ha2VzIGNsaWNrIGltcG9zc2libGUgb24gY3Jvc3Mtb3JpZ2luXG5cbiAgICAgIGJ0bklmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgJ3VzYicpO1xuICAgICAgYnRuSWZyYW1lLnNldEF0dHJpYnV0ZSgnc2Nyb2xsaW5nJywgJ25vJyk7XG5cbiAgICAgIGJ0bklmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGJ0bklmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHsvLyBzdHlsZTogSlNPTi5zdHJpbmdpZnkoIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIpICksXG4gICAgICAgICAgLy8gb3V0ZXI6IGIub3V0ZXJIVE1MLFxuICAgICAgICAgIC8vIGlubmVyOiBiLmlubmVySFRNTFxuICAgICAgICB9LCBvcmlnaW4pO1xuICAgICAgfTtcblxuICAgICAgYnRuSWZyYW1lLnNyYyA9IHNyYzsgLy8gaW5qZWN0IGlmcmFtZSBpbnRvIGJ1dHRvblxuXG4gICAgICBiLmFwcGVuZChidG5JZnJhbWUpO1xuICAgIH1cbiAgfSk7XG59O1xuXG52YXIgX2RlZmF1bHQgPSByZW5kZXI7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/trezor-connect/lib/webusb/button.js\n");
/***/ })
}]);