(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!***************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/main.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("__webpack_require__(/*! uni-pages */ 1);var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 107));\n\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 61));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function 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;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n_vue.default.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n_vue.default.prototype.baseUrl = '/bfwcs';\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({},\n_App.default));\n\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwiJG1vdW50Il0sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBbUI7OztBQUduQixzRTtBQUNBQSxhQUFJQyxNQUFKLENBQVdDLGFBQVgsR0FBMkIsS0FBM0I7QUFDQUYsYUFBSUcsU0FBSixDQUFjQyxRQUFkLEdBQXlCLFNBQXpCO0FBQ0FKLGFBQUlHLFNBQUosQ0FBY0UsT0FBZCxHQUF3QixRQUF4QjtBQUNBQyxhQUFJQyxNQUFKLEdBQWEsS0FBYjtBQUNBLElBQU1DLEdBQUcsR0FBRyxJQUFJUixZQUFKO0FBQ0xNLFlBREssRUFBWjs7QUFHQUUsR0FBRyxDQUFDQyxNQUFKIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7aW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcclxuXHJcblxyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS5iYXNlSHR0cCA9ICdodHRwOi8vJ1xyXG5WdWUucHJvdG90eXBlLmJhc2VVcmwgPSAnL2Jmd2NzJ1xyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XHJcbiAgICAuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ /*!******************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages.json ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { if (typeof Promise !== 'undefined' && !Promise.prototype.finally) { Promise.prototype.finally = function (callback) { var promise = this.constructor; return this.then(function (value) { return promise.resolve(callback()).then(function () { return value; }); }, function (reason) { return promise.resolve(callback()).then(function () { throw reason; }); }); }; } if (typeof uni !== 'undefined' && uni && uni.requireGlobal) { var global = uni.requireGlobal(); ArrayBuffer = global.ArrayBuffer; Int8Array = global.Int8Array; Uint8Array = global.Uint8Array; Uint8ClampedArray = global.Uint8ClampedArray; Int16Array = global.Int16Array; Uint16Array = global.Uint16Array; Int32Array = global.Int32Array; Uint32Array = global.Uint32Array; Float32Array = global.Float32Array; Float64Array = global.Float64Array; BigInt64Array = global.BigInt64Array; BigUint64Array = global.BigUint64Array; } if (uni.restoreGlobal) { uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); } __definePage('pages/home/home', function () {return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 2).default);}); __definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 79).default);}); __definePage('pages/index/monitor', function () {return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 102).default);}); /***/ }), /* 2 */ /*!***************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?mpType=page ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 3);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 76);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaG9tZS9ob21lLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n"); /***/ }), /* 3 */ /*!*********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***! \*********************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=44021cb6&mpType=page */ 4); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 4 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 5) .default, yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 13).default, qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 18) .default } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, [ _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.homeMode, show: _vm.homeViewShow, _i: 1 } }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "home-view"), attrs: { _i: 2 } }, [ _c( "view", { staticClass: _vm._$s(3, "sc", "head"), attrs: { _i: 3 } }, [_c("text")] ), _c( "view", { staticClass: _vm._$s(5, "sc", "time-tools"), attrs: { _i: 5 } }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(6, "sc", "button-left"), attrs: { _i: 6 }, on: { click: function($event) { return _vm.ejected() } } }), _c("view", { staticClass: _vm._$s(7, "sc", "button-right"), attrs: { _i: 7 }, on: { click: function($event) { return _vm.ejected() } } }), _c( "view", { staticClass: _vm._$s(8, "sc", "main"), attrs: { _i: 8 } }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "mian-item"), attrs: { _i: 9 } }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "mian-item-box"), attrs: { _i: 10 } }, [ _c("y-box", { attrs: { _i: 11 } }, [ _c( "view", { staticClass: _vm._$s(12, "sc", "box-item"), attrs: { _i: 12 } }, [ _c("text", { staticClass: _vm._$s(13, "sc", "item-title"), attrs: { _i: 13 } }), _c("text", { staticClass: _vm._$s( 14, "sc", "item-subTitle" ), attrs: { _i: 14 } }), _c("text", { staticClass: _vm._$s(15, "sc", "item-text"), attrs: { _i: 15 } }) ] ), _c( "view", { staticClass: _vm._$s(16, "sc", "box-item"), attrs: { _i: 16 } }, [ _c("text", { staticClass: _vm._$s(17, "sc", "item-title"), attrs: { _i: 17 } }), _c("text", { staticClass: _vm._$s( 18, "sc", "item-subTitle" ), attrs: { _i: 18 } }), _c( "view", { staticClass: _vm._$s(19, "sc", "img-box"), attrs: { _i: 19 } }, [ _c( "view", { staticClass: _vm._$s( 20, "sc", "item-img" ), attrs: { _i: 20 } }, [ _c("image", { attrs: { src: _vm._$s( 21, "a-src", __webpack_require__(/*! ../../static/a1.png */ 71) ), _i: 21 } }), _c( "view", { staticClass: _vm._$s( 22, "sc", "flex-col" ), attrs: { _i: 22 } }, [ _c( "view", { staticClass: _vm._$s( 23, "sc", "flex-row" ), attrs: { _i: 23 } }, [ _c("view", [ _vm._v( _vm._$s( 24, "t0-0", _vm._s( _vm.baseInfo.xDistance ) ) ) ]), _c("view") ] ), _c("view") ] ) ] ), _c( "view", { staticClass: _vm._$s( 27, "sc", "item-img" ), attrs: { _i: 27 } }, [ _c("image", { attrs: { src: _vm._$s( 28, "a-src", __webpack_require__(/*! ../../static/b1.png */ 72) ), _i: 28 } }), _c( "view", { staticClass: _vm._$s( 29, "sc", "flex-col" ), attrs: { _i: 29 } }, [ _c( "view", { staticClass: _vm._$s( 30, "sc", "flex-row" ), attrs: { _i: 30 } }, [ _c("view", [ _vm._v( _vm._$s( 31, "t0-0", _vm._s( _vm.baseInfo.yDistance ) ) ) ]), _c("view") ] ), _c("view") ] ) ] ), _c( "view", { staticClass: _vm._$s( 34, "sc", "item-img" ), attrs: { _i: 34 } }, [ _c("image", { attrs: { src: _vm._$s( 35, "a-src", __webpack_require__(/*! ../../static/c1.png */ 73) ), _i: 35 } }), _c( "view", { staticClass: _vm._$s( 36, "sc", "flex-col" ), attrs: { _i: 36 } }, [ _c( "view", { staticClass: _vm._$s( 37, "sc", "flex-row" ), attrs: { _i: 37 } }, [ _c("view", [ _vm._v( _vm._$s( 38, "t0-0", _vm._s( _vm.baseInfo.xDuration ) ) ) ]), _c("view") ] ), _c("view") ] ) ] ), _c( "view", { staticClass: _vm._$s( 41, "sc", "item-img" ), attrs: { _i: 41 } }, [ _c("image", { attrs: { src: _vm._$s( 42, "a-src", __webpack_require__(/*! ../../static/d1.png */ 74) ), _i: 42 } }), _c( "view", { staticClass: _vm._$s( 43, "sc", "flex-col" ), attrs: { _i: 43 } }, [ _c( "view", { staticClass: _vm._$s( 44, "sc", "flex-row" ), attrs: { _i: 44 } }, [ _c("view", [ _vm._v( _vm._$s( 45, "t0-0", _vm._s( _vm.baseInfo.yDuration ) ) ) ]), _c("view") ] ), _c("view") ] ) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(48, "sc", "box-item"), attrs: { _i: 48 } }, [ _c( "view", { staticClass: _vm._$s(49, "sc", "flex-row"), attrs: { _i: 49 } }, [ _c( "view", { staticClass: _vm._$s( 50, "sc", "flex-col" ), attrs: { _i: 50 } }, [ _c("text", { staticClass: _vm._$s( 51, "sc", "item-title" ), attrs: { _i: 51 } }), _c("text", { staticClass: _vm._$s( 52, "sc", "item-subTitle" ), attrs: { _i: 52 } }) ] ), _c("view", [ _c( "view", { staticClass: _vm._$s( 54, "sc", "flex-col" ), attrs: { _i: 54 } }, [ _c( "text", { staticClass: _vm._$s( 55, "sc", "item-title" ), attrs: { _i: 55 } }, [ _vm._v( _vm._$s( 55, "t0-0", _vm._s(_vm.baseInfo.usedPr) ) ) ] ), _c("text", { staticClass: _vm._$s( 56, "sc", "item-subTitle" ), attrs: { _i: 56 } }) ] ) ]) ] ), _c( "view", { staticClass: _vm._$s(57, "sc", "flex-col"), attrs: { _i: 57 } }, [ _c( "view", { staticClass: _vm._$s( 58, "sc", "flex-row" ), attrs: { _i: 58 } }, [ _c( "view", { staticClass: _vm._$s( 59, "sc", "progressBar" ), attrs: { _i: 59 } }, [ _c("view", { staticClass: _vm._$s( 60, "sc", "progress" ), style: _vm._$s( 60, "s", "width:" + _vm.baseInfo.usedPr + "%" ), attrs: { _i: 60 } }) ] ), _c("view", [ _vm._v( _vm._$s( 61, "t0-0", _vm._s(_vm.baseInfo.used) ) ) ]) ] ) ] ) ] ) ]) ], 1 ) ] ), _c( "view", { staticClass: _vm._$s(62, "sc", "mian-item"), attrs: { _i: 62 } }, [ _c( "view", { staticClass: _vm._$s(63, "sc", "mian-item-box"), attrs: { _i: 63 } }, [ _c("view", [ _c( "view", [ _c("y-box", { attrs: { _i: 66 } }, [ _c( "view", { staticClass: _vm._$s( 67, "sc", "box-item" ), attrs: { _i: 67 } }, [ _c( "view", { staticClass: _vm._$s( 68, "sc", "flex-row" ), attrs: { _i: 68 } }, [ _c( "view", { staticClass: _vm._$s( 69, "sc", "flex-col" ), attrs: { _i: 69 } }, [ _c("text", { staticClass: _vm._$s( 70, "sc", "item-title" ), attrs: { _i: 70 } }), _c("text", { staticClass: _vm._$s( 71, "sc", "item-subTitle" ), attrs: { _i: 71 } }) ] ), _c("view", [ _c( "view", { staticClass: _vm._$s( 73, "sc", "flex-col" ), attrs: { _i: 73 } }, [ _c("text", { staticClass: _vm._$s( 74, "sc", "item-title" ), attrs: { _i: 74 } }), _c("text", { staticClass: _vm._$s( 75, "sc", "item-subTitle" ), attrs: { _i: 75 } }) ] ) ]) ] ), _c( "view", { staticClass: _vm._$s( 76, "sc", "charts-box" ), attrs: { _i: 76 } }, [ _c("qiun-data-charts", { attrs: { type: "line", chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, _i: 77 } }) ], 1 ) ] ) ]) ], 1 ), _c("view"), _c( "view", [ _c("y-box", { attrs: { _i: 80 } }, [ _c( "view", { staticClass: _vm._$s( 81, "sc", "box-item" ), attrs: { _i: 81 } }, [ _c( "view", { staticClass: _vm._$s( 82, "sc", "flex-row" ), attrs: { _i: 82 } }, [ _c( "view", { staticClass: _vm._$s( 83, "sc", "flex-col" ), attrs: { _i: 83 } }, [ _c("text", { staticClass: _vm._$s( 84, "sc", "item-title" ), attrs: { _i: 84 } }), _c("text", { staticClass: _vm._$s( 85, "sc", "item-subTitle" ), attrs: { _i: 85 } }) ] ), _c("view", [ _c( "view", { staticClass: _vm._$s( 87, "sc", "flex-col" ), attrs: { _i: 87 } }, [ _c("text", { staticClass: _vm._$s( 88, "sc", "item-title" ), attrs: { _i: 88 } }), _c("text", { staticClass: _vm._$s( 89, "sc", "item-subTitle" ), attrs: { _i: 89 } }) ] ) ]) ] ), _c( "view", { staticClass: _vm._$s( 90, "sc", "flex-row" ), attrs: { _i: 90 } }, [ _c( "view", { staticClass: _vm._$s( 91, "sc", "charts-box-ring" ), attrs: { _i: 91 } }, [ _c("qiun-data-charts", { attrs: { type: "ring", opts: { legend: { position: "bottom" } }, eopts: _vm.ringOpts, chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, _i: 92 } }) ], 1 ), _c("view", [ _c( "view", { staticClass: _vm._$s( 94, "sc", "flex-row sub-info" ), attrs: { _i: 94 } }, [ _c("image", { attrs: { src: _vm._$s( 95, "a-src", __webpack_require__(/*! ../../static/g1.png */ 75) ), _i: 95 } }), _c("view"), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 98, "sc", "flex-row sub-info" ), attrs: { _i: 98 } }, [ _c("image", { attrs: { src: _vm._$s( 99, "a-src", __webpack_require__(/*! ../../static/g1.png */ 75) ), _i: 99 } }), _c("view"), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 102, "sc", "flex-row sub-info" ), attrs: { _i: 102 } }, [ _c("image", { attrs: { src: _vm._$s( 103, "a-src", __webpack_require__(/*! ../../static/g1.png */ 75) ), _i: 103 } }), _c("view"), _c("view") ] ) ]) ] ) ] ) ]) ], 1 ), _c("view"), _c( "view", [ _c("y-box", { attrs: { _i: 108 } }, [ _c("view", { staticClass: _vm._$s(109, "sc", "flex-col"), attrs: { _i: 109 } }) ]) ], 1 ) ]) ] ) ] ) ] ) ] ) ] ), _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.infoMode, show: _vm.infoViewShow, _i: 110 } }, [ _c( "view", { staticClass: _vm._$s(111, "sc", "info-view"), attrs: { _i: 111 } }, [ _c( "view", { staticClass: _vm._$s(112, "sc", "head"), attrs: { _i: 112 } }, [_c("text")] ), _c( "view", { staticClass: _vm._$s(114, "sc", "time-tools"), attrs: { _i: 114 } }, [_vm._v(_vm._$s(114, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(115, "sc", "button-left"), attrs: { _i: 115 } }), _c("view", { staticClass: _vm._$s(116, "sc", "button-right"), attrs: { _i: 116 } }), _c( "view", { staticClass: _vm._$s(117, "sc", "info-main"), attrs: { _i: 117 } }, [ _c( "view", { staticClass: _vm._$s(118, "sc", "info-box"), attrs: { _i: 118 } }, [ _c("y-box", { attrs: { _i: 119 } }, [ _vm._v(_vm._$s(119, "t0-0", _vm._s(_vm.text))) ]) ], 1 ) ] ) ] ) ] ), _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.errorInfoMode, show: _vm.errorInfoViewShow, _i: 120 } }, [ _c( "view", { staticClass: _vm._$s(121, "sc", "error-info-view"), attrs: { _i: 121 } }, [ _c( "view", { staticClass: _vm._$s(122, "sc", "head"), attrs: { _i: 122 } }, [_c("text")] ), _c( "view", { staticClass: _vm._$s(124, "sc", "time-tools"), attrs: { _i: 124 } }, [_vm._v(_vm._$s(124, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(125, "sc", "button-left"), attrs: { _i: 125 } }), _c("view", { staticClass: _vm._$s(126, "sc", "button-right"), attrs: { _i: 126 } }), _c( "view", { staticClass: _vm._$s(127, "sc", "info-main"), attrs: { _i: 127 } }, [ _c( "view", { staticClass: _vm._$s(128, "sc", "info-box"), attrs: { _i: 128 } }, [_c("y-box", { attrs: { _i: 129 } })], 1 ) ] ) ] ) ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(130, "v-show", _vm.ejectShow), expression: "_$s(130,'v-show',ejectShow)" } ], staticClass: _vm._$s(130, "sc", "eject-mask"), attrs: { _i: 130 } }, [ _c( "view", { staticClass: _vm._$s(131, "sc", "eject"), attrs: { _i: 131 } }, [ _c("view", { staticClass: _vm._$s(132, "sc", "eject-title"), attrs: { _i: 132 } }), _c( "view", { staticClass: _vm._$s(133, "sc", "eject-input"), attrs: { _i: 133 } }, [ _c( "view", { staticClass: _vm._$s(134, "sc", "item"), attrs: { _i: 134 } }, [ _c("view", { staticClass: _vm._$s(135, "sc", "desc"), attrs: { _i: 135 } }), _c( "view", { staticClass: _vm._$s(136, "sc", "input"), attrs: { _i: 136 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP" } ], attrs: { _i: 137 }, domProps: { value: _vm._$s(137, "v-model", _vm.baseIP) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(138, "sc", "item"), attrs: { _i: 138 } }, [ _c("view", { staticClass: _vm._$s(139, "sc", "desc"), attrs: { _i: 139 } }), _c( "view", { staticClass: _vm._$s(140, "sc", "input"), attrs: { _i: 140 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort" } ], attrs: { _i: 141 }, domProps: { value: _vm._$s(141, "v-model", _vm.basePort) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(142, "sc", "item"), attrs: { _i: 142 } }, [ _c("view", { staticClass: _vm._$s(143, "sc", "desc"), attrs: { _i: 143 } }), _c( "view", { staticClass: _vm._$s(144, "sc", "input"), attrs: { _i: 144 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId" } ], attrs: { _i: 145 }, domProps: { value: _vm._$s(145, "v-model", _vm.baseLedId) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(146, "sc", "item"), attrs: { _i: 146 } }, [ _c("view", { staticClass: _vm._$s(147, "sc", "desc"), attrs: { _i: 147 } }), _c( "view", { staticClass: _vm._$s(148, "sc", "input"), attrs: { _i: 148 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId" } ], attrs: { _i: 149 }, domProps: { value: _vm._$s(149, "v-model", _vm.baseCrnId) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value } } }) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(150, "sc", "eject-button"), attrs: { _i: 150 } }, [ _c("view", { staticClass: _vm._$s(151, "sc", "button-item"), attrs: { _i: 151 }, on: { click: _vm.ejectClose } }), _c("view", { staticClass: _vm._$s(152, "sc", "button-item"), attrs: { _i: 152 }, on: { click: _vm.ejectConfirm } }) ] ) ] ) ] ) ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 5 */ /*!*******************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 6);\n/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 8);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-transition/components/uni-transition/uni-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTYzNjlmOGM0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n"); /***/ }), /* 6 */ /*!**************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \**************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 7); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 7 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.isShow) ? _c( "view", { ref: "ani", class: _vm._$s(0, "c", _vm.customClass), style: _vm._$s(0, "s", _vm.transformStyles), attrs: { animation: _vm._$s(0, "a-animation", _vm.animationData), _i: 0 }, on: { click: _vm.onClick } }, [_vm._t("default", null, { _i: 1 })], 2 ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 8 */ /*!********************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=script&lang=js& */ 9);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWt0QixDQUFnQiw0ckJBQUcsRUFBQyIsImZpbGUiOiI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktdHJhbnNpdGlvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8\n"); /***/ }), /* 9 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 11);function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === \"Object\" && o.constructor) n = o.constructor.name;if (n === \"Map\" || n === \"Set\") return Array.from(o);if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _iterableToArray(iter) {if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function 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;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n\n/**\r\n * Transition 过渡动画\r\n * @description 简单过渡动画组件\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=985\r\n * @property {Boolean} show = [false|true] 控制组件显示或隐藏\r\n * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型\r\n * @value fade 渐隐渐出过渡\r\n * @value slide-top 由上至下过渡\r\n * @value slide-right 由右至左过渡\r\n * @value slide-bottom 由下至上过渡\r\n * @value slide-left 由左至右过渡\r\n * @value zoom-in 由小到大过渡\r\n * @value zoom-out 由大到小过渡\r\n * @property {Number} duration 过渡动画持续时间\r\n * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`\r\n */var _default2 =\n{\n name: 'uniTransition',\n emits: ['click', 'change'],\n props: {\n show: {\n type: Boolean,\n default: false },\n\n modeClass: {\n type: [Array, String],\n default: function _default() {\n return 'fade';\n } },\n\n duration: {\n type: Number,\n default: 300 },\n\n styles: {\n type: Object,\n default: function _default() {\n return {};\n } },\n\n customClass: {\n type: String,\n default: '' } },\n\n\n data: function data() {\n return {\n isShow: false,\n transform: '',\n opacity: 1,\n animationData: {},\n durationTime: 300,\n config: {} };\n\n },\n watch: {\n show: {\n handler: function handler(newVal) {\n if (newVal) {\n this.open();\n } else {\n // 避免上来就执行 close,导致动画错乱\n if (this.isShow) {\n this.close();\n }\n }\n },\n immediate: true } },\n\n\n computed: {\n // 生成样式数据\n stylesObject: function stylesObject() {\n var styles = _objectSpread(_objectSpread({},\n this.styles), {}, {\n 'transition-duration': this.duration / 1000 + 's' });\n\n var transform = '';\n for (var i in styles) {\n var line = this.toLine(i);\n transform += line + ':' + styles[i] + ';';\n }\n return transform;\n },\n // 初始化动画条件\n transformStyles: function transformStyles() {\n return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject;\n } },\n\n created: function created() {\n // 动画默认配置\n this.config = {\n duration: this.duration,\n timingFunction: 'ease',\n transformOrigin: '50% 50%',\n delay: 0 };\n\n this.durationTime = this.duration;\n },\n methods: {\n /**\r\n * ref 触发 初始化动画\r\n */\n init: function init() {var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (obj.duration) {\n this.durationTime = obj.duration;\n }\n this.animation = (0, _createAnimation.createAnimation)(Object.assign(this.config, obj), this);\n },\n /**\r\n * 点击组件触发回调\r\n */\n onClick: function onClick() {\n this.$emit('click', {\n detail: this.isShow });\n\n },\n /**\r\n * ref 触发 动画分组\r\n * @param {Object} obj\r\n */\n step: function step(obj) {var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.animation) return;\n for (var i in obj) {\n try {\n if (typeof obj[i] === 'object') {var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, _toConsumableArray(obj[i]));\n } else {\n this.animation[i](obj[i]);\n }\n } catch (e) {\n __f__(\"error\", \"\\u65B9\\u6CD5 \".concat(i, \" \\u4E0D\\u5B58\\u5728\"), \" at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:139\");\n }\n }\n this.animation.step(config);\n return this;\n },\n /**\r\n * ref 触发 执行动画\r\n */\n run: function run(fn) {\n if (!this.animation) return;\n this.animation.run(fn);\n },\n // 开始过度动画\n open: function open() {var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;var _this$styleInit =\n this.styleInit(false),opacity = _this$styleInit.opacity,transform = _this$styleInit.transform;\n if (typeof opacity !== 'undefined') {\n this.opacity = opacity;\n }\n this.transform = transform;\n // 确保动态样式已经生效后,执行动画,如果不加 nextTick ,会导致 wx 动画执行异常\n this.$nextTick(function () {\n // TODO 定时器保证动画完全执行,目前有些问题,后面会取消定时器\n _this.timer = setTimeout(function () {\n _this.animation = (0, _createAnimation.createAnimation)(_this.config, _this);\n _this.tranfromInit(false).step();\n _this.animation.run();\n _this.$emit('change', {\n detail: _this.isShow });\n\n }, 20);\n });\n },\n // 关闭过度动画\n close: function close(type) {var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).\n step().\n run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;var _this2$styleInit =\n _this2.styleInit(false),opacity = _this2$styleInit.opacity,transform = _this2$styleInit.transform;\n _this2.opacity = opacity || 1;\n _this2.transform = transform;\n _this2.$emit('change', {\n detail: _this2.isShow });\n\n });\n },\n // 处理动画开始前的默认样式\n styleInit: function styleInit(type) {var _this3 = this;\n var styles = {\n transform: '' };\n\n var buildStyle = function buildStyle(type, mode) {\n if (mode === 'fade') {\n styles.opacity = _this3.animationType(type)[mode];\n } else {\n styles.transform += _this3.animationType(type)[mode] + ' ';\n }\n };\n if (typeof this.modeClass === 'string') {\n buildStyle(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildStyle(type, mode);\n });\n }\n return styles;\n },\n // 处理内置组合动画\n tranfromInit: function tranfromInit(type) {var _this4 = this;\n var buildTranfrom = function buildTranfrom(type, mode) {\n var aniNum = null;\n if (mode === 'fade') {\n aniNum = type ? 0 : 1;\n } else {\n aniNum = type ? '-100%' : '0';\n if (mode === 'zoom-in') {\n aniNum = type ? 0.8 : 1;\n }\n if (mode === 'zoom-out') {\n aniNum = type ? 1.2 : 1;\n }\n if (mode === 'slide-right') {\n aniNum = type ? '100%' : '0';\n }\n if (mode === 'slide-bottom') {\n aniNum = type ? '100%' : '0';\n }\n }\n _this4.animation[_this4.animationMode()[mode]](aniNum);\n };\n if (typeof this.modeClass === 'string') {\n buildTranfrom(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildTranfrom(type, mode);\n });\n }\n\n return this.animation;\n },\n animationType: function animationType(type) {\n return {\n fade: type ? 1 : 0,\n 'slide-top': \"translateY(\".concat(type ? '0' : '-100%', \")\"),\n 'slide-right': \"translateX(\".concat(type ? '0' : '100%', \")\"),\n 'slide-bottom': \"translateY(\".concat(type ? '0' : '100%', \")\"),\n 'slide-left': \"translateX(\".concat(type ? '0' : '-100%', \")\"),\n 'zoom-in': \"scaleX(\".concat(type ? 1 : 0.8, \") scaleY(\").concat(type ? 1 : 0.8, \")\"),\n 'zoom-out': \"scaleX(\".concat(type ? 1 : 1.2, \") scaleY(\").concat(type ? 1 : 1.2, \")\") };\n\n },\n // 内置动画类型与实际动画对应字典\n animationMode: function animationMode() {\n return {\n fade: 'opacity',\n 'slide-top': 'translateY',\n 'slide-right': 'translateX',\n 'slide-bottom': 'translateY',\n 'slide-left': 'translateX',\n 'zoom-in': 'scale',\n 'zoom-out': 'scale' };\n\n },\n // 驼峰转中横线\n toLine: function toLine(name) {\n return name.replace(/([A-Z])/g, '-$1').toLowerCase();\n } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSx3RTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUNBLHVCQURBO0FBRUEsNEJBRkE7QUFHQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxvQkFGQSxFQURBOztBQUtBO0FBQ0EsMkJBREE7QUFFQSxhQUZBLHNCQUVBO0FBQ0E7QUFDQSxPQUpBLEVBTEE7O0FBV0E7QUFDQSxrQkFEQTtBQUVBLGtCQUZBLEVBWEE7O0FBZUE7QUFDQSxrQkFEQTtBQUVBLGFBRkEsc0JBRUE7QUFDQTtBQUNBLE9BSkEsRUFmQTs7QUFxQkE7QUFDQSxrQkFEQTtBQUVBLGlCQUZBLEVBckJBLEVBSEE7OztBQTZCQSxNQTdCQSxrQkE2QkE7QUFDQTtBQUNBLG1CQURBO0FBRUEsbUJBRkE7QUFHQSxnQkFIQTtBQUlBLHVCQUpBO0FBS0EsdUJBTEE7QUFNQSxnQkFOQTs7QUFRQSxHQXRDQTtBQXVDQTtBQUNBO0FBQ0EsYUFEQSxtQkFDQSxNQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BVkE7QUFXQSxxQkFYQSxFQURBLEVBdkNBOzs7QUFzREE7QUFDQTtBQUNBLGdCQUZBLDBCQUVBO0FBQ0E7QUFDQSxpQkFEQTtBQUVBLHlEQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBYkE7QUFjQTtBQUNBLG1CQWZBLDZCQWVBO0FBQ0E7QUFDQSxLQWpCQSxFQXREQTs7QUF5RUEsU0F6RUEscUJBeUVBO0FBQ0E7QUFDQTtBQUNBLDZCQURBO0FBRUEsNEJBRkE7QUFHQSxnQ0FIQTtBQUlBLGNBSkE7O0FBTUE7QUFDQSxHQWxGQTtBQW1GQTtBQUNBOzs7QUFHQSxRQUpBLGtCQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVRBO0FBVUE7OztBQUdBLFdBYkEscUJBYUE7QUFDQTtBQUNBLDJCQURBOztBQUdBLEtBakJBO0FBa0JBOzs7O0FBSUEsUUF0QkEsZ0JBc0JBLEdBdEJBLEVBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQU5BLENBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FyQ0E7QUFzQ0E7OztBQUdBLE9BekNBLGVBeUNBLEVBekNBLEVBeUNBO0FBQ0E7QUFDQTtBQUNBLEtBNUNBO0FBNkNBO0FBQ0EsUUE5Q0Esa0JBOENBO0FBQ0E7QUFDQTtBQUNBLHlCQUhBO0FBSUEsMkJBSkEsQ0FJQSxPQUpBLG1CQUlBLE9BSkEsQ0FJQSxTQUpBLG1CQUlBLFNBSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FEQTs7QUFHQSxTQVBBLEVBT0EsRUFQQTtBQVFBLE9BVkE7QUFXQSxLQW5FQTtBQW9FQTtBQUNBLFNBckVBLGlCQXFFQSxJQXJFQSxFQXFFQTtBQUNBO0FBQ0E7QUFDQSxVQURBO0FBRUEsU0FGQSxDQUVBO0FBQ0E7QUFDQTtBQUNBLGdDQUhBO0FBSUEsK0JBSkEsQ0FJQSxPQUpBLG9CQUlBLE9BSkEsQ0FJQSxTQUpBLG9CQUlBLFNBSkE7QUFLQTtBQUNBO0FBQ0E7QUFDQSwrQkFEQTs7QUFHQSxPQVpBO0FBYUEsS0FwRkE7QUFxRkE7QUFDQSxhQXRGQSxxQkFzRkEsSUF0RkEsRUFzRkE7QUFDQTtBQUNBLHFCQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxPQU5BO0FBT0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUZBO0FBR0E7QUFDQTtBQUNBLEtBekdBO0FBMEdBO0FBQ0EsZ0JBM0dBLHdCQTJHQSxJQTNHQSxFQTJHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FwQkE7QUFxQkE7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUZBO0FBR0E7O0FBRUE7QUFDQSxLQTFJQTtBQTJJQSxpQkEzSUEseUJBMklBLElBM0lBLEVBMklBO0FBQ0E7QUFDQSwwQkFEQTtBQUVBLG9FQUZBO0FBR0EscUVBSEE7QUFJQSxzRUFKQTtBQUtBLHFFQUxBO0FBTUEsNEZBTkE7QUFPQSw2RkFQQTs7QUFTQSxLQXJKQTtBQXNKQTtBQUNBLGlCQXZKQSwyQkF1SkE7QUFDQTtBQUNBLHVCQURBO0FBRUEsaUNBRkE7QUFHQSxtQ0FIQTtBQUlBLG9DQUpBO0FBS0Esa0NBTEE7QUFNQSwwQkFOQTtBQU9BLDJCQVBBOztBQVNBLEtBaktBO0FBa0tBO0FBQ0EsVUFuS0Esa0JBbUtBLElBbktBLEVBbUtBO0FBQ0E7QUFDQSxLQXJLQSxFQW5GQSxFIiwiZmlsZSI6IjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgdi1pZj1cImlzU2hvd1wiIHJlZj1cImFuaVwiIDphbmltYXRpb249XCJhbmltYXRpb25EYXRhXCIgOmNsYXNzPVwiY3VzdG9tQ2xhc3NcIiA6c3R5bGU9XCJ0cmFuc2Zvcm1TdHlsZXNcIiBAY2xpY2s9XCJvbkNsaWNrXCI+PHNsb3Q+PC9zbG90Pjwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB7IGNyZWF0ZUFuaW1hdGlvbiB9IGZyb20gJy4vY3JlYXRlQW5pbWF0aW9uJ1xyXG5cclxuLyoqXHJcbiAqIFRyYW5zaXRpb24g6L+H5rih5Yqo55S7XHJcbiAqIEBkZXNjcmlwdGlvbiDnroDljZXov4fmuKHliqjnlLvnu4Tku7ZcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTk4NVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IHNob3cgPSBbZmFsc2V8dHJ1ZV0g5o6n5Yi257uE5Lu25pi+56S65oiW6ZqQ6JePXHJcbiAqIEBwcm9wZXJ0eSB7QXJyYXl8U3RyaW5nfSBtb2RlQ2xhc3MgPSBbZmFkZXxzbGlkZS10b3B8c2xpZGUtcmlnaHR8c2xpZGUtYm90dG9tfHNsaWRlLWxlZnR8em9vbS1pbnx6b29tLW91dF0g6L+H5rih5Yqo55S757G75Z6LXHJcbiAqICBAdmFsdWUgZmFkZSDmuJDpmpDmuJDlh7rov4fmuKFcclxuICogIEB2YWx1ZSBzbGlkZS10b3Ag55Sx5LiK6Iez5LiL6L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtcmlnaHQg55Sx5Y+z6Iez5bem6L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtYm90dG9tIOeUseS4i+iHs+S4iui/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLWxlZnQg55Sx5bem6Iez5Y+z6L+H5rihXHJcbiAqICBAdmFsdWUgem9vbS1pbiDnlLHlsI/liLDlpKfov4fmuKFcclxuICogIEB2YWx1ZSB6b29tLW91dCDnlLHlpKfliLDlsI/ov4fmuKFcclxuICogQHByb3BlcnR5IHtOdW1iZXJ9IGR1cmF0aW9uIOi/h+a4oeWKqOeUu+aMgee7reaXtumXtFxyXG4gKiBAcHJvcGVydHkge09iamVjdH0gc3R5bGVzIOe7hOS7tuagt+W8j++8jOWQjCBjc3Mg5qC35byP77yM5rOo5oSP5bim4oCZLeKAmOi/nuaOpeespueahOWxnuaAp+mcgOimgeS9v+eUqOWwj+mpvOWzsOWGmeazleWmgu+8mmBiYWNrZ3JvdW5kQ29sb3I6cmVkYFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlUcmFuc2l0aW9uJyxcclxuXHRlbWl0czpbJ2NsaWNrJywnY2hhbmdlJ10sXHJcblx0cHJvcHM6IHtcclxuXHRcdHNob3c6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHRtb2RlQ2xhc3M6IHtcclxuXHRcdFx0dHlwZTogW0FycmF5LCBTdHJpbmddLFxyXG5cdFx0XHRkZWZhdWx0KCkge1xyXG5cdFx0XHRcdHJldHVybiAnZmFkZSdcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGR1cmF0aW9uOiB7XHJcblx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0ZGVmYXVsdDogMzAwXHJcblx0XHR9LFxyXG5cdFx0c3R5bGVzOiB7XHJcblx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0ZGVmYXVsdCgpIHtcclxuXHRcdFx0XHRyZXR1cm4ge31cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGN1c3RvbUNsYXNzOntcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGlzU2hvdzogZmFsc2UsXHJcblx0XHRcdHRyYW5zZm9ybTogJycsXHJcblx0XHRcdG9wYWNpdHk6IDEsXHJcblx0XHRcdGFuaW1hdGlvbkRhdGE6IHt9LFxyXG5cdFx0XHRkdXJhdGlvblRpbWU6IDMwMCxcclxuXHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0d2F0Y2g6IHtcclxuXHRcdHNob3c6IHtcclxuXHRcdFx0aGFuZGxlcihuZXdWYWwpIHtcclxuXHRcdFx0XHRpZiAobmV3VmFsKSB7XHJcblx0XHRcdFx0XHR0aGlzLm9wZW4oKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyDpgb/lhY3kuIrmnaXlsLHmiafooYwgY2xvc2Us5a+86Ie05Yqo55S76ZSZ5LmxXHJcblx0XHRcdFx0XHRpZiAodGhpcy5pc1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jbG9zZSgpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHQvLyDnlJ/miJDmoLflvI/mlbDmja5cclxuXHRcdHN0eWxlc09iamVjdCgpIHtcclxuXHRcdFx0bGV0IHN0eWxlcyA9IHtcclxuXHRcdFx0XHQuLi50aGlzLnN0eWxlcyxcclxuXHRcdFx0XHQndHJhbnNpdGlvbi1kdXJhdGlvbic6IHRoaXMuZHVyYXRpb24gLyAxMDAwICsgJ3MnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdGZvciAobGV0IGkgaW4gc3R5bGVzKSB7XHJcblx0XHRcdFx0bGV0IGxpbmUgPSB0aGlzLnRvTGluZShpKVxyXG5cdFx0XHRcdHRyYW5zZm9ybSArPSBsaW5lICsgJzonICsgc3R5bGVzW2ldICsgJzsnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRyYW5zZm9ybVxyXG5cdFx0fSxcclxuXHRcdC8vIOWIneWni+WMluWKqOeUu+adoeS7tlxyXG5cdFx0dHJhbnNmb3JtU3R5bGVzKCkge1xyXG5cdFx0XHRyZXR1cm4gJ3RyYW5zZm9ybTonICsgdGhpcy50cmFuc2Zvcm0gKyAnOycgKyAnb3BhY2l0eTonICsgdGhpcy5vcGFjaXR5ICsgJzsnICsgdGhpcy5zdHlsZXNPYmplY3RcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyDliqjnlLvpu5jorqTphY3nva5cclxuXHRcdHRoaXMuY29uZmlnID0ge1xyXG5cdFx0XHRkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcclxuXHRcdFx0dGltaW5nRnVuY3Rpb246ICdlYXNlJyxcclxuXHRcdFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJScsXHJcblx0XHRcdGRlbGF5OiAwXHJcblx0XHR9XHJcblx0XHR0aGlzLmR1cmF0aW9uVGltZSA9IHRoaXMuZHVyYXRpb25cclxuXHR9LFxyXG5cdG1ldGhvZHM6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICogIHJlZiDop6blj5Eg5Yid5aeL5YyW5Yqo55S7XHJcblx0XHQgKi9cclxuXHRcdGluaXQob2JqID0ge30pIHtcclxuXHRcdFx0aWYgKG9iai5kdXJhdGlvbikge1xyXG5cdFx0XHRcdHRoaXMuZHVyYXRpb25UaW1lID0gb2JqLmR1cmF0aW9uXHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5hbmltYXRpb24gPSBjcmVhdGVBbmltYXRpb24oT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgb2JqKSx0aGlzKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog54K55Ye757uE5Lu26Kem5Y+R5Zue6LCDXHJcblx0XHQgKi9cclxuXHRcdG9uQ2xpY2soKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NsaWNrJywge1xyXG5cdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIHJlZiDop6blj5Eg5Yqo55S75YiG57uEXHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gb2JqXHJcblx0XHQgKi9cclxuXHRcdHN0ZXAob2JqLCBjb25maWcgPSB7fSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0Zm9yIChsZXQgaSBpbiBvYmopIHtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIG9ialtpXSA9PT0gJ29iamVjdCcpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXSguLi5vYmpbaV0pXHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dGhpcy5hbmltYXRpb25baV0ob2JqW2ldKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoYOaWueazlSAke2l9IOS4jeWtmOWcqGApXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uLnN0ZXAoY29uZmlnKVxyXG5cdFx0XHRyZXR1cm4gdGhpc1xyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICogIHJlZiDop6blj5Eg5omn6KGM5Yqo55S7XHJcblx0XHQgKi9cclxuXHRcdHJ1bihmbikge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKGZuKVxyXG5cdFx0fSxcclxuXHRcdC8vIOW8gOWni+i/h+W6puWKqOeUu1xyXG5cdFx0b3BlbigpIHtcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gJydcclxuXHRcdFx0dGhpcy5pc1Nob3cgPSB0cnVlXHJcblx0XHRcdGxldCB7IG9wYWNpdHksIHRyYW5zZm9ybSB9ID0gdGhpcy5zdHlsZUluaXQoZmFsc2UpXHJcblx0XHRcdGlmICh0eXBlb2Ygb3BhY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cclxuXHRcdFx0Ly8g56Gu5L+d5Yqo5oCB5qC35byP5bey57uP55Sf5pWI5ZCO77yM5omn6KGM5Yqo55S777yM5aaC5p6c5LiN5YqgIG5leHRUaWNrIO+8jOS8muWvvOiHtCB3eCDliqjnlLvmiafooYzlvILluLhcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdC8vIFRPRE8g5a6a5pe25Zmo5L+d6K+B5Yqo55S75a6M5YWo5omn6KGM77yM55uu5YmN5pyJ5Lqb6Zeu6aKY77yM5ZCO6Z2i5Lya5Y+W5raI5a6a5pe25ZmoXHJcblx0XHRcdFx0dGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBjcmVhdGVBbmltYXRpb24odGhpcy5jb25maWcsIHRoaXMpXHJcblx0XHRcdFx0XHR0aGlzLnRyYW5mcm9tSW5pdChmYWxzZSkuc3RlcCgpXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbi5ydW4oKVxyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0sIDIwKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdC8vIOWFs+mXrei/h+W6puWKqOeUu1xyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cclxuXHRcdFx0dGhpcy50cmFuZnJvbUluaXQodHJ1ZSlcclxuXHRcdFx0XHQuc3RlcCgpXHJcblx0XHRcdFx0LnJ1bigoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmlzU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbkRhdGEgPSBudWxsXHJcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbiA9IG51bGxcclxuXHRcdFx0XHRcdGxldCB7IG9wYWNpdHksIHRyYW5zZm9ybSB9ID0gdGhpcy5zdHlsZUluaXQoZmFsc2UpXHJcblx0XHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5IHx8IDFcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNmb3JtID0gdHJhbnNmb3JtXHJcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDlpITnkIbliqjnlLvlvIDlp4vliY3nmoTpu5jorqTmoLflvI9cclxuXHRcdHN0eWxlSW5pdCh0eXBlKSB7XHJcblx0XHRcdGxldCBzdHlsZXMgPSB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiAnJ1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBidWlsZFN0eWxlID0gKHR5cGUsIG1vZGUpID0+IHtcclxuXHRcdFx0XHRpZiAobW9kZSA9PT0gJ2ZhZGUnKSB7XHJcblx0XHRcdFx0XHRzdHlsZXMub3BhY2l0eSA9IHRoaXMuYW5pbWF0aW9uVHlwZSh0eXBlKVttb2RlXVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzdHlsZXMudHJhbnNmb3JtICs9IHRoaXMuYW5pbWF0aW9uVHlwZSh0eXBlKVttb2RlXSArICcgJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodHlwZW9mIHRoaXMubW9kZUNsYXNzID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdGJ1aWxkU3R5bGUodHlwZSwgdGhpcy5tb2RlQ2xhc3MpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5tb2RlQ2xhc3MuZm9yRWFjaChtb2RlID0+IHtcclxuXHRcdFx0XHRcdGJ1aWxkU3R5bGUodHlwZSwgbW9kZSlcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBzdHlsZXNcclxuXHRcdH0sXHJcblx0XHQvLyDlpITnkIblhoXnva7nu4TlkIjliqjnlLtcclxuXHRcdHRyYW5mcm9tSW5pdCh0eXBlKSB7XHJcblx0XHRcdGxldCBidWlsZFRyYW5mcm9tID0gKHR5cGUsIG1vZGUpID0+IHtcclxuXHRcdFx0XHRsZXQgYW5pTnVtID0gbnVsbFxyXG5cdFx0XHRcdGlmIChtb2RlID09PSAnZmFkZScpIHtcclxuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAwIDogMVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJy0xMDAlJyA6ICcwJ1xyXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLWluJykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gMC44IDogMVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLW91dCcpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDEuMiA6IDFcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtcmlnaHQnKSB7XHJcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAnMTAwJScgOiAnMCdcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtYm90dG9tJykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuYW5pbWF0aW9uW3RoaXMuYW5pbWF0aW9uTW9kZSgpW21vZGVdXShhbmlOdW0pXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRidWlsZFRyYW5mcm9tKHR5cGUsIHRoaXMubW9kZUNsYXNzKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XHJcblx0XHRcdFx0XHRidWlsZFRyYW5mcm9tKHR5cGUsIG1vZGUpXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIHRoaXMuYW5pbWF0aW9uXHJcblx0XHR9LFxyXG5cdFx0YW5pbWF0aW9uVHlwZSh0eXBlKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0ZmFkZTogdHlwZSA/IDEgOiAwLFxyXG5cdFx0XHRcdCdzbGlkZS10b3AnOiBgdHJhbnNsYXRlWSgke3R5cGUgPyAnMCcgOiAnLTEwMCUnfSlgLFxyXG5cdFx0XHRcdCdzbGlkZS1yaWdodCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICcxMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxyXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogYHRyYW5zbGF0ZVgoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcclxuXHRcdFx0XHQnem9vbS1pbic6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDAuOH0pIHNjYWxlWSgke3R5cGUgPyAxIDogMC44fSlgLFxyXG5cdFx0XHRcdCd6b29tLW91dCc6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDEuMn0pIHNjYWxlWSgke3R5cGUgPyAxIDogMS4yfSlgXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHQvLyDlhoXnva7liqjnlLvnsbvlnovkuI7lrp7pmYXliqjnlLvlr7nlupTlrZflhbhcclxuXHRcdGFuaW1hdGlvbk1vZGUoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0ZmFkZTogJ29wYWNpdHknLFxyXG5cdFx0XHRcdCdzbGlkZS10b3AnOiAndHJhbnNsYXRlWScsXHJcblx0XHRcdFx0J3NsaWRlLXJpZ2h0JzogJ3RyYW5zbGF0ZVgnLFxyXG5cdFx0XHRcdCdzbGlkZS1ib3R0b20nOiAndHJhbnNsYXRlWScsXHJcblx0XHRcdFx0J3NsaWRlLWxlZnQnOiAndHJhbnNsYXRlWCcsXHJcblx0XHRcdFx0J3pvb20taW4nOiAnc2NhbGUnLFxyXG5cdFx0XHRcdCd6b29tLW91dCc6ICdzY2FsZSdcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIOmpvOWzsOi9rOS4reaoque6v1xyXG5cdFx0dG9MaW5lKG5hbWUpIHtcclxuXHRcdFx0cmV0dXJuIG5hbWUucmVwbGFjZSgvKFtBLVpdKS9nLCAnLSQxJykudG9Mb3dlckNhc2UoKVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n"); /***/ }), /* 10 */ /*!*********************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***! \*********************************************************************/ /*! exports provided: log, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; }); function typof (v) { var s = Object.prototype.toString.call(v) return s.substring(8, s.length - 1) } function isDebugMode () { /* eslint-disable no-undef */ return typeof __channelId__ === 'string' && __channelId__ } function jsonStringifyReplacer (k, p) { switch (typof(p)) { case 'Function': return 'function() { [native code] }' default : return p } } function log (type) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key] } console[type].apply(console, args) } function formatLog () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key] } var type = args.shift() if (isDebugMode()) { args.push(args.pop().replace('at ', 'uni-app:///')) return console[type].apply(console, args) } var msgs = args.map(function (v) { var type = Object.prototype.toString.call(v).toLowerCase() if (type === '[object object]' || type === '[object array]') { try { v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---' } catch (e) { v = type } } else { if (v === null) { v = '---NULL---' } else if (v === undefined) { v = '---UNDEFINED---' } else { var vType = typof(v).toUpperCase() if (vType === 'NUMBER' || vType === 'BOOLEAN') { v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---' } else { v = String(v) } } } return v }) var msg = '' if (msgs.length > 1) { var lastMsg = msgs.pop() msg = msgs.join('---COMMA---') if (lastMsg.indexOf(' at ') === 0) { msg += lastMsg } else { msg += '---COMMA---' + lastMsg } } else { msg = msgs[0] } console[type](msg) } /***/ }), /* 11 */ /*!*******************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.createAnimation = createAnimation;function 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;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;} // const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar\n\n\nMPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {_classCallCheck(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n\n }_createClass(MPAnimation, [{ key: \"_nvuePushAnimates\", value: function _nvuePushAnimates(\n\n type, args) {\n var aniObj = this.currentStepAnimates[this.next];\n var styles = {};\n if (!aniObj) {\n styles = {\n styles: {},\n config: {} };\n\n } else {\n styles = aniObj;\n }\n if (animateTypes1.includes(type)) {\n if (!styles.styles.transform) {\n styles.styles.transform = '';\n }\n var unit = '';\n if (type === 'rotate') {\n unit = 'deg';\n }\n styles.styles.transform += \"\".concat(type, \"(\").concat(args + unit, \") \");\n } else {\n styles.styles[type] = \"\".concat(args);\n }\n this.currentStepAnimates[this.next] = styles;\n } }, { key: \"_animateRun\", value: function _animateRun()\n {var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ref = this.$.$refs['ani'].ref;\n if (!ref) return;\n return new Promise(function (resolve, reject) {\n nvueAnimation.transition(ref, _objectSpread({\n styles: styles },\n config),\n function (res) {\n resolve();\n });\n });\n } }, { key: \"_nvueNextAnimate\", value: function _nvueNextAnimate(\n\n animates) {var _this2 = this;var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {var\n\n styles =\n\n obj.styles,config = obj.config;\n this._animateRun(styles, config).then(function () {\n step += 1;\n _this2._nvueNextAnimate(animates, step, fn);\n });\n } else {\n this.currentStepAnimates = {};\n typeof fn === 'function' && fn();\n this.isEnd = true;\n }\n } }, { key: \"step\", value: function step()\n\n {var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.animation.step(config);\n\n\n\n\n\n\n return this;\n } }, { key: \"run\", value: function run(\n\n fn) {\n\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n\n\n\n\n\n\n\n\n } }]);return MPAnimation;}();\n\n\n\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',\n'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',\n'translateZ'];\n\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {var _this$animation;\n\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n\n\n\n\n return this;\n };\n});\n\nfunction createAnimation(option, _this) {\n if (!_this) return;\n clearTimeout(_this.timer);\n return new MPAnimation(option, _this);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiJpeURBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSU1BLFc7QUFDTCx1QkFBWUMsT0FBWixFQUFxQkMsS0FBckIsRUFBNEI7QUFDM0IsU0FBS0QsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0UsU0FBTCxHQUFpQkMsR0FBRyxDQUFDQyxlQUFKLENBQW9CSixPQUFwQixDQUFqQjtBQUNBLFNBQUtLLG1CQUFMLEdBQTJCLEVBQTNCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLENBQVo7QUFDQSxTQUFLQyxDQUFMLEdBQVNOLEtBQVQ7O0FBRUEsRzs7QUFFaUJPLFEsRUFBTUMsSSxFQUFNO0FBQzdCLFVBQUlDLE1BQU0sR0FBRyxLQUFLTCxtQkFBTCxDQUF5QixLQUFLQyxJQUE5QixDQUFiO0FBQ0EsVUFBSUssTUFBTSxHQUFHLEVBQWI7QUFDQSxVQUFJLENBQUNELE1BQUwsRUFBYTtBQUNaQyxjQUFNLEdBQUc7QUFDUkEsZ0JBQU0sRUFBRSxFQURBO0FBRVJDLGdCQUFNLEVBQUUsRUFGQSxFQUFUOztBQUlBLE9BTEQsTUFLTztBQUNORCxjQUFNLEdBQUdELE1BQVQ7QUFDQTtBQUNELFVBQUlHLGFBQWEsQ0FBQ0MsUUFBZCxDQUF1Qk4sSUFBdkIsQ0FBSixFQUFrQztBQUNqQyxZQUFJLENBQUNHLE1BQU0sQ0FBQ0EsTUFBUCxDQUFjSSxTQUFuQixFQUE4QjtBQUM3QkosZ0JBQU0sQ0FBQ0EsTUFBUCxDQUFjSSxTQUFkLEdBQTBCLEVBQTFCO0FBQ0E7QUFDRCxZQUFJQyxJQUFJLEdBQUcsRUFBWDtBQUNBLFlBQUdSLElBQUksS0FBSyxRQUFaLEVBQXFCO0FBQ3BCUSxjQUFJLEdBQUcsS0FBUDtBQUNBO0FBQ0RMLGNBQU0sQ0FBQ0EsTUFBUCxDQUFjSSxTQUFkLGNBQThCUCxJQUE5QixjQUFzQ0MsSUFBSSxHQUFDTyxJQUEzQztBQUNBLE9BVEQsTUFTTztBQUNOTCxjQUFNLENBQUNBLE1BQVAsQ0FBY0gsSUFBZCxjQUF5QkMsSUFBekI7QUFDQTtBQUNELFdBQUtKLG1CQUFMLENBQXlCLEtBQUtDLElBQTlCLElBQXNDSyxNQUF0QztBQUNBLEs7QUFDcUMsU0FBMUJBLE1BQTBCLHVFQUFqQixFQUFpQixLQUFiQyxNQUFhLHVFQUFKLEVBQUk7QUFDckMsVUFBSUssR0FBRyxHQUFHLEtBQUtWLENBQUwsQ0FBT1csS0FBUCxDQUFhLEtBQWIsRUFBb0JELEdBQTlCO0FBQ0EsVUFBSSxDQUFDQSxHQUFMLEVBQVU7QUFDVixhQUFPLElBQUlFLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDdkNDLHFCQUFhLENBQUNDLFVBQWQsQ0FBeUJOLEdBQXpCO0FBQ0NOLGdCQUFNLEVBQU5BLE1BREQ7QUFFSUMsY0FGSjtBQUdHLGtCQUFBWSxHQUFHLEVBQUk7QUFDVEosaUJBQU87QUFDUCxTQUxEO0FBTUEsT0FQTSxDQUFQO0FBUUEsSzs7QUFFZ0JLLFksRUFBd0IsdUJBQWRDLElBQWMsdUVBQVAsQ0FBTyxLQUFKQyxFQUFJO0FBQ3hDLFVBQUlDLEdBQUcsR0FBR0gsUUFBUSxDQUFDQyxJQUFELENBQWxCO0FBQ0EsVUFBSUUsR0FBSixFQUFTOztBQUVQakIsY0FGTzs7QUFJSmlCLFdBSkksQ0FFUGpCLE1BRk8sQ0FHUEMsTUFITyxHQUlKZ0IsR0FKSSxDQUdQaEIsTUFITztBQUtSLGFBQUtpQixXQUFMLENBQWlCbEIsTUFBakIsRUFBeUJDLE1BQXpCLEVBQWlDa0IsSUFBakMsQ0FBc0MsWUFBTTtBQUMzQ0osY0FBSSxJQUFJLENBQVI7QUFDQSxnQkFBSSxDQUFDSyxnQkFBTCxDQUFzQk4sUUFBdEIsRUFBZ0NDLElBQWhDLEVBQXNDQyxFQUF0QztBQUNBLFNBSEQ7QUFJQSxPQVRELE1BU087QUFDTixhQUFLdEIsbUJBQUwsR0FBMkIsRUFBM0I7QUFDQSxlQUFPc0IsRUFBUCxLQUFjLFVBQWQsSUFBNEJBLEVBQUUsRUFBOUI7QUFDQSxhQUFLSyxLQUFMLEdBQWEsSUFBYjtBQUNBO0FBQ0QsSzs7QUFFaUIsU0FBYnBCLE1BQWEsdUVBQUosRUFBSTs7QUFFakIsV0FBS1YsU0FBTCxDQUFld0IsSUFBZixDQUFvQmQsTUFBcEI7Ozs7Ozs7QUFPQSxhQUFPLElBQVA7QUFDQSxLOztBQUVHZSxNLEVBQUk7O0FBRVAsV0FBS3BCLENBQUwsQ0FBTzBCLGFBQVAsR0FBdUIsS0FBSy9CLFNBQUwsQ0FBZWdDLE1BQWYsRUFBdkI7QUFDQSxXQUFLM0IsQ0FBTCxDQUFPNEIsS0FBUCxHQUFlQyxVQUFVLENBQUMsWUFBTTtBQUMvQixlQUFPVCxFQUFQLEtBQWMsVUFBZCxJQUE0QkEsRUFBRSxFQUE5QjtBQUNBLE9BRndCLEVBRXRCLEtBQUtwQixDQUFMLENBQU84QixZQUZlLENBQXpCOzs7Ozs7Ozs7QUFXQSxLOzs7O0FBSUYsSUFBTXhCLGFBQWEsR0FBRyxDQUFDLFFBQUQsRUFBVyxVQUFYLEVBQXVCLFFBQXZCLEVBQWlDLFVBQWpDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLE9BQTlFLEVBQXVGLFNBQXZGO0FBQ3JCLFFBRHFCLEVBQ1gsUUFEVyxFQUNELFFBREMsRUFDUyxNQURULEVBQ2lCLE9BRGpCLEVBQzBCLE9BRDFCLEVBQ21DLFdBRG5DLEVBQ2dELGFBRGhELEVBQytELFlBRC9ELEVBQzZFLFlBRDdFO0FBRXJCLFlBRnFCLENBQXRCOztBQUlBLElBQU15QixhQUFhLEdBQUcsQ0FBQyxTQUFELEVBQVksaUJBQVosQ0FBdEI7QUFDQSxJQUFNQyxhQUFhLEdBQUcsQ0FBQyxPQUFELEVBQVUsUUFBVixFQUFvQixNQUFwQixFQUE0QixPQUE1QixFQUFxQyxLQUFyQyxFQUE0QyxRQUE1QyxDQUF0QjtBQUNBMUIsYUFBYSxDQUFDMkIsTUFBZCxDQUFxQkYsYUFBckIsRUFBb0NDLGFBQXBDLEVBQW1ERSxPQUFuRCxDQUEyRCxVQUFBakMsSUFBSSxFQUFJO0FBQ2xFVCxhQUFXLENBQUMyQyxTQUFaLENBQXNCbEMsSUFBdEIsSUFBOEIsWUFBa0I7O0FBRS9DLDRCQUFLTixTQUFMLEVBQWVNLElBQWY7Ozs7O0FBS0EsV0FBTyxJQUFQO0FBQ0EsR0FSRDtBQVNBLENBVkQ7O0FBWU8sU0FBU0osZUFBVCxDQUF5QnVDLE1BQXpCLEVBQWlDMUMsS0FBakMsRUFBd0M7QUFDOUMsTUFBRyxDQUFDQSxLQUFKLEVBQVc7QUFDWDJDLGNBQVksQ0FBQzNDLEtBQUssQ0FBQ2tDLEtBQVAsQ0FBWjtBQUNBLFNBQU8sSUFBSXBDLFdBQUosQ0FBZ0I0QyxNQUFoQixFQUF3QjFDLEtBQXhCLENBQVA7QUFDQSIsImZpbGUiOiIxMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n"); /***/ }), /* 12 */ /*!**********************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***! \**********************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode, /* vue-cli only */ components, // fixed by xxxxxx auto components renderjs // fixed by xxxxxx renderjs ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // fixed by xxxxxx auto components if (components) { if (!options.components) { options.components = {} } var hasOwn = Object.prototype.hasOwnProperty for (var name in components) { if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) { options.components[name] = components[name] } } } // fixed by xxxxxx renderjs if (renderjs) { (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() { this[renderjs.__module] = this }); (options.mixins || (options.mixins = [])).push(renderjs) } // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /* 13 */ /*!**********************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/components/y-box/y-box.vue ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./y-box.vue?vue&type=template&id=799f6118& */ 14);\n/* harmony import */ var _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./y-box.vue?vue&type=script&lang=js& */ 16);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"components/y-box/y-box.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0g7QUFDbEg7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSxnRkFBTTtBQUNSLEVBQUUseUZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OTlmNjExOCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcImNvbXBvbmVudHMveS1ib3gveS1ib3gudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ /*!*****************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*****************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=template&id=799f6118& */ 15); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 15 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "box"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "box-border box-border1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "box-border box-border2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "box-border box-border3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "box-border box-border4"), attrs: { _i: 4 } }), _c( "view", { staticClass: _vm._$s(5, "sc", "box-main"), attrs: { _i: 5 } }, [_vm._t("default", null, { _i: 6 })], 2 ) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 16 */ /*!***********************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/components/y-box/y-box.vue?vue&type=script&lang=js& ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=script&lang=js& */ 17);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlyQixDQUFnQixtckJBQUcsRUFBQyIsImZpbGUiOiIxNi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///16\n"); /***/ }), /* 17 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/components/y-box/y-box.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n props: {\n title: {\n type: [String, Number],\n default: '标题' } },\n\n\n computed: {\n titleText: function titleText() {\n return this.title;\n } },\n\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy95LWJveC95LWJveC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUEsbUJBRkEsRUFEQSxFQURBOzs7QUFPQTtBQUNBLGFBREEsdUJBQ0E7QUFDQTtBQUNBLEtBSEEsRUFQQTs7QUFZQSxNQVpBLGtCQVlBO0FBQ0E7OztBQUdBLEdBaEJBLEUiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJib3hcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMlwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94LW1haW5cIj5cclxuXHRcdFx0PHNsb3QvPlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0dGl0bGU6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJ+agh+mimCdcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHR0aXRsZVRleHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMudGl0bGUgXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0LmJveCB7XHJcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMC4ydmgpO1xyXG5cdFx0aGVpZ2h0OiBjYWxjKDEwMCUgLSAwLjJ2aCk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRib3JkZXI6IDAuMXZoIHNvbGlkIHJnYmEoMjAsIDgwLCAxMzYsIDEpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxuXHQuYm94LW1haW4ge1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMzMWM0YzQ7ICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjNENEOTY0OyAqL1xyXG5cdFx0d2lkdGg6IDEuNXZoO1xyXG5cdFx0aGVpZ2h0OiAxLjV2aDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIxIHtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3JkZXItbGVmdDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci10b3A6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMiB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvcmRlci1yaWdodDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci10b3A6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMyB7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1sZWZ0OiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjQge1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3JkZXItcmlnaHQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItYm90dG9tOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n"); /***/ }), /* 18 */ /*!*************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***! \*************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 19);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 56);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"fe947b98\",\n null,\n false,\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNNE9Ea3dMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVME5qY3lmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJmZTk0N2I5OFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1kYXRhLWNoYXJ0cy9xaXVuLWRhdGEtY2hhcnRzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///18\n"); /***/ }), /* 19 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 20); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 20 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 21) .default, qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 51) .default } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { id: _vm._$s(0, "a-id", "ChartBoxId" + _vm.cid), _i: 0 } }, [ _vm._$s(1, "i", _vm.mixinDatacomLoading) ? _c( "view", [ _c("qiun-loading", { attrs: { loadingType: _vm.loadingType, _i: 2 } }) ], 1 ) : _vm._e(), _vm._$s(3, "i", _vm.mixinDatacomErrorMessage && _vm.errorShow) ? _c( "view", { attrs: { _i: 3 }, on: { click: _vm.reloading } }, [ _c("qiun-error", { attrs: { errorMessage: _vm.errorMessage, _i: 4 } }) ], 1 ) : _vm._e(), _vm._$s(5, "i", _vm.echarts) ? [ _c("view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(6, "v-show", _vm.showchart), expression: "_$s(6,'v-show',showchart)" } ], wxsProps: { "change:resize": "echartsResize", "change:prop": "echartsOpts" }, style: _vm._$s(6, "s", { background: _vm.background }), attrs: { "data-directory": _vm._$s(6, "a-data-directory", _vm.directory), id: _vm._$s(6, "a-id", "EC" + _vm.cid), prop: _vm._$s(6, "change:echartsOpts", _vm.echartsOpts), resize: _vm._$s(6, "change:echartsResize", _vm.echartsResize), _i: 6 } }) ] : [ _c( "view", { wxsProps: { "change:prop": "uchartsOpts" }, attrs: { id: _vm._$s(8, "a-id", "UC" + _vm.cid), prop: _vm._$s(8, "change:uchartsOpts", _vm.uchartsOpts), _i: 8 }, on: {} }, [ _c("canvas", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(9, "v-show", _vm.showchart), expression: "_$s(9,'v-show',showchart)" } ], style: _vm._$s(9, "s", { width: _vm.cWidth + "px", height: _vm.cHeight + "px", background: _vm.background }), attrs: { id: _vm._$s(9, "a-id", _vm.cid), canvasId: _vm._$s(9, "a-canvasId", _vm.cid), "disable-scroll": _vm._$s( 9, "a-disable-scroll", _vm.disableScroll ), _i: 9 }, on: { error: _vm._error } }) ] ) ] ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 21 */ /*!*****************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 22);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 24);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvcWl1bi1sb2FkaW5nLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///21\n"); /***/ }), /* 22 */ /*!************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 23); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 23 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", [ _vm._$s(1, "i", _vm.loadingType == 1) ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(), _vm._$s(2, "i", _vm.loadingType == 2) ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(), _vm._$s(3, "i", _vm.loadingType == 3) ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(), _vm._$s(4, "i", _vm.loadingType == 4) ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(), _vm._$s(5, "i", _vm.loadingType == 5) ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e() ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 24 */ /*!******************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 25);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWd0QixDQUFnQiwwckJBQUcsRUFBQyIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n"); /***/ }), /* 25 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 26));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 31));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 36));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 41));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 46));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { components: { Loading1: _loading.default, Loading2: _loading2.default, Loading3: _loading3.default, Loading4: _loading4.default, Loading5: _loading5.default }, name: 'qiun-loading', props: { loadingType: { type: Number, default: 2 } }, data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRjs7Ozs7Ozs7OztlQUNBLEVBQ0EsOEpBREEsRUFFQSxvQkFGQSxFQUdBLFNBQ0EsZUFDQSxZQURBLEVBRUEsVUFGQSxFQURBLEVBSEEsRUFTQSxJQVRBLGtCQVNBO0FBQ0E7OztBQUdBLEdBYkEsRSIsImZpbGUiOiIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n"); /***/ }), /* 26 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 27);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4e769ee\",\n null,\n false,\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRlNzY5ZWVcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n"); /***/ }), /* 27 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 28); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 28 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading1"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 } }) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 29 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 30);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n"); /***/ }), /* 30 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading1',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 32);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 34);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4cb3aec\",\n null,\n false,\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRjYjNhZWNcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 33); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 33 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading2"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 } }) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 34 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 35);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading2',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///35\n"); /***/ }), /* 36 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 37);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 39);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4af0bea\",\n null,\n false,\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRhZjBiZWFcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n"); /***/ }), /* 37 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 38); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 38 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading3"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 } }) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 39 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 40);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading3',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n"); /***/ }), /* 41 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 42);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 44);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e492dce8\",\n null,\n false,\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ5MmRjZThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 43); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 43 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading5"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 } }) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 44 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 45);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///44\n"); /***/ }), /* 45 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading5',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n"); /***/ }), /* 46 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 47);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 49);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e476ade6\",\n null,\n false,\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ3NmFkZTZcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n"); /***/ }), /* 47 */ /*!********************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \********************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 48); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 48 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading6"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 } }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 } }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 } }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 } }) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 49 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 50);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'loading6',\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzZcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc2JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNjb3BlZD1cInRydWVcIj5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sb2FkaW5nNiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmc2IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDEycHg7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nNiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUxIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUyIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTMgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlNCAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); /***/ }), /* 51 */ /*!*************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 52);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 54);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MDdmMWY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWVycm9yL3FpdW4tZXJyb3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n"); /***/ }), /* 52 */ /*!********************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 53); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 53 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "charts-error"), attrs: { _i: 1 } }), _c( "view", { staticClass: _vm._$s(2, "sc", "charts-font"), attrs: { _i: 2 } }, [ _vm._v( _vm._$s( 2, "t0-0", _vm._s(_vm.errorMessage == null ? "请点击重试" : _vm.errorMessage) ) ) ] ) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 54 */ /*!**************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 55);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThzQixDQUFnQix3ckJBQUcsRUFBQyIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n"); /***/ }), /* 55 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: 'qiun-error',\n props: {\n errorMessage: {\n type: String,\n default: null } },\n\n\n data: function data() {\n return {};\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQTtBQUNBLG9CQURBO0FBRUE7QUFDQTtBQUNBLGtCQURBO0FBRUEsbUJBRkEsRUFEQSxFQUZBOzs7QUFRQSxNQVJBLGtCQVFBO0FBQ0E7OztBQUdBLEdBWkEsRSIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWVycm9yXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtZm9udFwiPnt7ZXJyb3JNZXNzYWdlPT1udWxsPyfor7fngrnlh7vph43or5UnOmVycm9yTWVzc2FnZX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZXJyb3InLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5jaGFydHN2aWV3IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuY2hhcnRzLWZvbnR7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI0NDQ0NDQztcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cdC5jaGFydHMtZXJyb3J7XHJcblx0XHR3aWR0aDogMTI4cHg7XHJcblx0XHRoZWlnaHQ6IDEyOHB4O1xyXG5cdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FZQUFBRERQbUhMQUFBVXowbEVRVlI0WHUxZGUzQmMxWDMrem1wM2pZVldma1BBZ0NXd1k4ekxFZ2xOUUNTVzB5VDlvMlNRYURLZE51bFV5a3dmTStrMDlwK0ozSW1ZSVBKWGk5eVp6RFNaWml3eWFadVpCQ3duTkcxRE1vZ0VtVUFBeTd4cy9NQXlOaENNaldXdHNLMWRlVS9uMjNPdnRMdTZqM1B2M3QyOWQ3MW54ak9TZGU0NTUvNSszL205ejdrQ2pSWTRCUjdlSzdma2NtaHJhc0xUMzdoYlRBWStRWUFEaWdESGFnd0ZZR2hjN2dad0hNQVVnRzRoTVB6TmU4Um9XSW5UQUVDQW5IbDRyK3lSRXQwRFhXSWJoeDNjSjVmSFA4VFlqbnRGUjREVEJEcVVJd0JtTXJKREN0eVBIRG9RdzBROGprZVhpbkNMdEVDcDQzR3doNTZSMjJJeFRCYnUrS0Z4T1RiUUpibzlEbFcxN3JZQVNHZGxOeVNlS2wySkFEcGJrbUtpYWl0MG1XaG9YSFprbXpFNTJDa29jbXZhdnZPc2JNdmw4TWhBbCtqbFFyZzJDUXp1NkJJOU5WMll3K1QyQUppVm8rRHVMMmtTZUxRMUtmckM4a0xjWWJrWUJ2L3BiakVXaGpVTmpVdlNwazlLU0FpY20ydEdYeGpBYVVjYmV3QmtKQW02eGVMQnAxUEoyb3MwNnR0Y0RsOEgwQ0VFYUdudkdlZ1NnMkVBUVpUVzRCMEFFbnRTUzJvdjBtaGdKYzVqbXdUNklERVdpMkUwek5aMldFRmhDNENaakNSeEg3R3dBZnBia21Ja0xDOUVGUUJnMjBCWGVPeVNzTkJHWngyT1hrQjZWZzVDZ0FiTVpnRDdCVERTa2hURE9nTTMra1NEQXI3aUFOTno4bjRoUVJkeG9qVXU5a1RqVlJ1cnRLS0FKd0JJS1pmUFpQT3VZV0ZnWTZ3bGdWNGhhdStHTlZqc25RS2VBSkRPU0lwL1d0NmxiU0tlUUc4alNPU2RBYlYrd2lzQTdGeERTR0FxQm13TlM1RElpR0l1Y3lOd0tpR2VkdXRUejMvM0JnQ2I0SkJKb0dxRElKMlZXNFJFbXhSb2cwUzNsR2dUL05sZlkzUnpDZ0pqUW1KU0NreGVEdUR3QmdDYjhIQWh2UWtDSWRDYlNnUWZtU1BEbVdHRHpIc20xVXF3akJFVUFNYnFFUkNlQUVCR3oyUmtud1IydVcweUFaUWRMNkRSK1dFVzkwc3lYTG1qdFc4U28wSmc5TW9FOXRTRDRlc1pBTlVBQWQxTTVOQWpHT1VMYWFPa0F6Q0tHRWFqN0FyN0FvQkhFR3hyU1lxZE9ueE1aK1czWkE1OVplaHhuV2tDN3lNbEprVU1JeTF4N0l5YVZQQU5BQU1FSFRsZ1RBQ08xcllFUmxxVG90K0o4bmJwNThDNVZjRUJEZnRuT0VwQUtBc0FnWVBBUGdOWlFiWUZQM1FlQ0F5YkovQmcyQ1ZDMlFEd0NvSlVBdHVkaUpLdUV4Q1FMb1piUEtpckFvT0hvdnVJVGhWQnl1WGlpMmpFL0M5STJUYVhCWXNmbVRoeWFoTXRDV3kxQTRFUmJqN3J2dlJJOWFDYTNGN3BJTm0zbjVYZFhndGpGZ0hBWUNRclc0djhiQm82TVlGZXA1Y3dtRWVmdVN3UXBETlNSb3E5K29zZHJxUmFHQnFYTWhmRFZpOGdXQVNBZEVidXN3dXlHQ0tOU0xhdEJ5Z1hCSFVxQVFvaE1tSEVTQUtycXpTcm80VElTMnlPcTEwZFZRUUF1eUtRVW9DN0JYbkl4SFFXd3dMNGF5L3FJTS84REhhRkp1aWp2N005OVF6YU5tQXg2aHpRRnN2aEtTbXh2YWtKbzdvSFVvb0E0TVVBMHdIQlREWWZRblZVQjZiRm5MYzFKSHFpRmdQd3hQblN6aEtqTFVuMEIrVXBzRG9xRmtPZkx2TzVITjhBTU41bE9KVVUyKzJJTUQwbmUwUU90Q2NxMGs3T0FOZTFWR1RvYWc3cWFCUlhlaUZGQUpqT3lCRU5zVjIwSnFjZ2oyRlFIZ3Z5SldZdkFRZlBBSnV2QXY3MTk4QURtNERNSEpCS0FtdWFnNXlwZW1QcEdOaVZXazJwRGNDREREUUNQVFU3RU9nbWpyeE1SZ0E4ZGdCWW13Sk9Yd0J1V2dIODdtM2d6MjZPTGdEeTZxOUc5UlNMdklBeW1GWlVHc2FDakp6RTdxQjErdnZuZ1hSR1FlYkc1UUIvUDMwZWFGMmlRQkhsbGs4d3hkRGZHcS9lWVZMTFFKQmZFT1FOT3BrMy9CZzg2aGJBOGlBWnd0Mi9hNzhhc1g4enNLUkovZnpZUWVEdHRGSUhVYmNKcWkwSm5NNEZhT1g5ZzJTdzdsZ0hUZ1BUczBESFJ4VGpUNXdEdHF6VGZUcjgvYW9KQXJmVHdYMDU1UDE1MTlxNmFwR1Y0djgvWGxVNm56di92bzhDdnp3SzNMMFcyTFM2V3F1by9EelZBb0ZyTWlpdnl6VlN2cFVueWNJTVZBVVUvLy8ya2dJQzliK3BEcXE1amlyTVZYRVgwUlVBZk1rd2dvRHJNb0ZRQlViVWNvcXhWRkpzcmRRQ3RBQVFaaEJVaWpDaEdsZml3ZFNTeXB4ODFnYUFBUUxMQTZPaElsYU5GMk1HcXJpTW0xY0ZxSm9FdGxhaTBsb2JBSXpxWmJQWUY3UnJWMk4rQlQ3OUw5OWM4RWgrZHpJNDc0UkdZU3FCOXFEeUJ1YUxhd01nblpFOEV4amF1MjRDNTZUUEFaOCt2c0QwNTk0R1BySFc1MERXandWdUQyZ0J3RGdtL3ExQVg2Vk9CL3Y1WWVEV05lcmxYbnNmK01LR1lGL1VMUXZyZFRaWEFGUWlvZU4xa1ZIcVR4dUFnU28yeGlXQ2RrK0RWZ1d1QUVqUHl0MzFYcUFSSllBWmE5MlpTcXE3Q010dGpnQ29oMXI5Y2drVTF1ZUR1cTdQRVFEVHMvSlkwTm04c0JJMGd1c0t4Q0NNWkRJb2dzeXF6SklEaUEzWUFxQ3greXZEczRCSExWc0tCRm9QRVBETE5ZYlRvVUNaVXNBU0FGSFkvU2ZUQ3hXdHE1cUJLNHppRUIyYTFWbWZzcVRBSWdCVXVwTFhML0V2c2hqME5OQ2FCTTdOQXI4OXNURFNwNjRIT2ovaWQrVG9QMWVPUjdBWUFENHFnNnRCd3VmZUFSaGFiVjhCZlBKYUZXeFpFZ2VTTVdEVG1zdGFBcEQ4dnVNQ1JRQUk0N0dzMzd3RnJHNEdya3NCUjg4Mm1HMjEyVmhXM3JwRXRQdlppTDZPaHZtWnlPc3pGUG03RDZxcVgrNzZMNnhmR0lIL2w3bWtWTUdOS3k3NzNaOG5qSXloMTA4MWNmSEJrSkFFZmdxWnYya1Y4Q21qNEhQL0g0QURaMVJCcU5tWWJmdkV0VjdoVlgvOS9YN0hZUjRBWVVyNlBQbW1ZalNaLzdrYmxSVDQ3eU9LOFV5dThEeEE2eFhxSEFEVncyWHNBUlFodVNXQkZWN3JCZVlCb0hzeXVOSjc1ODJ6d0JOSGdOVkxnYis4VFRILzhZT3Evbys3ZmZQVkN3eW5wQWlDK1crY1VmT2Nud091dmxJZE80dGk4Nk1HNWdHUWRya0Z0Rm9FMmZVeWtKNEYrdTRBa25IZ3g2K3BuZi9aZHVDVzFRRDlmM29EUEEvQTV0Y0ZwQTN4OGluZ3hYY1Z1UEo2MURndDI3TVJ1S0cxV204YzZEeWV2WUU4QU1Kay9mL25xOEJOSzVWZU4xMC9rOG12bndaK1pSdzFwZmpuWWRDT3ExVlp1SmQyL0J6d3YwY1hHTDlocGRyMVBHTklnTVVGOE9lM0FxdVdlaGsxRkgwblVrblI2V1VsZVFDRU5lMzd2WmVVRk9pL0F5aFVEYlFML0p3RTVxNG5nSTRZTnhCeGw3TmlaNWtCb0NlUEFiOS9SNG1CcTY0RWVqY0dYOURoaFRsKytzWVRhUGR5YTdzQ2dQb3lTTTFMdnVqek04RHpkM2N1TU55MDhpa1plQnFZcW9FN25qdjF0MjhwM2MzZi8raGFwU0xzMmpzekFJMUx1bzQwSk1uNGo2NHM3djNQenltcFFOZVNnTHRuTGZEeGlIa1lYa3ZHRkFBMHIyWWpzZjNzUEYwa20vci9IKzlhRVA4UDhPUlBFaGg1ZWNFcklQTnBHTEp4RjcvM29XTGNmZXNWODByYm9RK1V5RGY3ZjNIVFl1UHgrWGVBWDAwQ3Q2OEJQbjBEOE84VGFzeXZiZ1pha3JwdkVJcCtudXlBUEFDbU0vS3NXN2szYitONC9BQkE1bFNxOGNJSDAvbzM5ZjlmM0tvWVFZYWIwdURuUjRCalo0R3YzTFlBZ0IrOXFpUUIreGUyWDArcTRrdzIyaEw4Vjlyb1RYejNCVFhQMXo2bVZBSnpEZnhIcVVJRE5FTE4wMmY5aEk3L1Q2djd6U2tsYm1sOE1mRkNYenpvUnAxUHY1N24vV2o1TS9SckpubjIvUUc0cmxWSklQTTQrRGZ2V1ZqQjkvWXBGZkZKSXpCRVp2N2lNSEFpclVUKzU5cUJPMnpjdTd6dWYxZnRmck9LdHhBVVZFbEJGM2NHVFR0elBCYU50aWFGaFJ5MG5sSG9HSURjL2ErZlVsZXowRHEvWlkyNmtpWG9Sb0NSMEc1V3ZSa29NbmYwL3h3Rlhud1BpQUZJTmdFM0xBT21Md0tualBFb0tlamZXN1hqMCtxME1lZjkyc2VMVlFOTHZGOTVIL2lUbTRDTkpmWkMwTzhlNUhoZUFrSkNOd0JrSHN2Kyt6dURYS3Evc1NnZC91dTF4ZjQ3Z2ZuV09SNW1WZU5lMVF4OGFkT0NsVzhsK244d29RekRMOTY4MkNpazdmRFRnOEQxS2FEM1puOXJyZFJUbEhBMG1tbXZMSkpPSG9wRVJGZzhBSytFSWdpb21vNmRBeTdPS2RYd054M0FpUm5nUnk4RE9RbDBYZ044WnAxOXRKRE1KWk1MUlgvcE9oN2Vxd2hNTlJDbVp0cGtWcmVpZVBFRUNBRExqMFNINldXZDFrSWdQUDZHMnNWdHk0QXYzNnBFLys0M2dETVgxSzYrYjhOaUVKaEdIcVhFVjI2M0J3bTlBWTczMVE2Z0pWRjdxbkRuVDd5bmJDUzZ6RHg4UXBYSmdOaThKUEJ3bWxqb3VvQzFmM1g3RmRESEgzMERtTXNCRzFZb3NVK20wVmc4ZXhHNHBrVjVCMmJlZ0NGZzVodElNQ2Y3Z0RPYWRzQ1hiZ0d1c2JFanFra2JNcCtpdjdRUjVQT0crZVVHQURML3JXbWdTUUJ6RXVpNEN2alQ5Y0JVQm5qaWtQcWJDWUp6RjRFZkdCZE5NVzVnNXhtWUJLWTNjT2dNc0dFVmNDbFhUVlk3eitXa0FyeFVDSWtvRklBNmtlTFh4NERYVGl1RGIydWJpaGRrY3NDbkRaK2ZEUHpaSVJYK3BZdkpSQlBGNkdmYlZQUlF0MTI0RkU0QVVMSlpCT2UwWXdGVUFaRzltdjJGZDRHOUo0dGRPRWIwZm5OQ1ZReHR1UUhvdWc0Z0NINXlBRGd4cmRqdFpQUlplUXF2bkZJU2dFbWlNRFY2WmpidWVQMERnQm05UFllczlUaXpocjg0bXI5OE9sOVF3cHM2Nk9zelpPeUYrV1MyR1NRS2l3MmdDY0Q2QmtCTUFCVDlETkxZNlhGS2dpY25WV0NJdVFSNkJNd2IwT2p6MGhoaXBnM3g1ZHNpbFI2dWJ3QTB4d0dDZ0R2YUxzSkhKdFBQUC95Qkt2UWc4NjJTUUc1Z1lCeUFyWkk1RUxjMStQaTdQZ0NtTTVKZnVBck5SWkJ1TDB1R01rZGc1ZHNYUGt0d2NQZlM0UE1xOXMxeHpEQXhTOUtabFl4UTB3ZEFsT0lBRk9QVTVXeG0xczZLS2ZUenFidkxZVDdITldNQU5DWlppeGloVnA4QVlIU1BscnhkV3BjTU1pTjgvUG11YTFRVzBFK0xhamJRZU5mNkE0QloxTUd3NXo5OGJERkx5YkFuRHF2WVBwdE9rTWNKR0JHdUIrQnJhUmVGUkNZVS9PUFhnVk1mV2pPVytwNEduMW51NVJiZWRaTUlIT2U3TDZwZXZKYStFcWx2dHpXVTlYZFBvZUNRMUFNNnZiQ3ArMHQzUDNjOTZ3Slp6TUhHNmw0V2RKUjdWdUNSNTRFTGM2cTR4RXUwc0N5bUJmaXdwMnlnYmoxQWdPdnpQQlFqY1U4ZEw5YnBOUFFvcHMxZFQ3c2dDR1l4U2NTeEdVUmEyK3J1YlhoK21Xbzg0S2tlSUN1N0ljRmJRRVBiNlBxeDZtZHBYQlY5SHZsZ29SaWt0TFM3bkpjdzlYNGlwdUlNOUNKV1hxSFN4VkZxWGtyRFJaZ09oZGdST1pzRHZ2OFNjTW5NV2dpVjl1V09YeGZBQ1I2cUVycDhCSnBWWTdLRjJVVzNVclV3Z0VRQzUxcVRRcnRpVTFVRno4cEpJUkRxajY3TXpBR1B2YTVFUHNPN3pQa0h3WHlPOThOWDFJZW9tRTRteUZnblFIQXh5c2lRTWtQQkxJWmxzV29FbXJZTHlIZnhkQzZnMWkvUHhmSmtEOU8vYk9XSWYvT2FHZXA3TnVyOGVFd0JvTkNGcEhRdzZ3Yi85czd5RGN3cTBGRGJCVndBUUFROGdVTENVVlNQbjF5NEo0QmxYK3VXcWZJdjg1aVhGYUhONGc3dWFKNElOcjg0d3RMenJBUmVlRnM5OVZlM0Z4OE8vWmZuVmQzaFhkZXFieE9GdVhueEFPWUJFTmFMb1p3SVRXbkEzY3Q2QVBOMEwvdFRiRk9FWHhGWFAzT25UMTFVSTVIeGhZMkhQbmpZaENxRnBlWTgrOEJXR0duazg5L2ZCOUFPWVdQUkNYTUxZVzFlRE1CNUFQQ0hxQmFHRUFpc0RXQ0krUERaNHR0RFNwbEVZS3hmb2R5Nzl1VUtLT2FwSTU1SjRHbGcyZ0lzSnFGNklZQUlNdlpoLzJNR1FHNWJBM3ltTFhnSTBJQVRBajNtbDBHOFZteExpZU90UzRTbmxZWHVmb0J5eWRvVVV3ZEhlVWhrZGs2ZExxYnp3Q05uZE84S0c1bk84REdaYmxZSHMyYndKd2VMZ1dRR21GZ2J5RGdCRzA4T1h4K0FCMUswSUF2LzNjdEhQUDFjRXhPNkcwTEtCWUR1ODJRK3E0YTUyeW5TV1RsVUdFRmtLcGh0K1pKaXU0TC9UOC9nOCsxQWM2SlkvZWpPYmRjdmxSU1dSV2M4dlNVbFJ0M1M5bVhkRUtKelJyRGNGd3pMODZ5blo3cVl6Vyt0QUEzS254NVFoYWEwR2NvdHJIUTcwNmYxNlQ2SjBaWWsrcjNjRTFTRXVIUkdUZ0RZSEJaR1ZXSWRoY3ozV2hsY3VKN0NkREdEVW4vY3JvekpjcHJiRHRZQ0FlRHBZNVBGQUlpWU8raVYyTnoxNXVkY3lrMFhjKzdDcWlQZUtQTEF4dkpBb1BPNVdPT3I3S011Z1R0dEVCUUJvSjdWUUNIekdTOXdxaVgwQWl5Q3dLeEJxQllJalBBOXY5THVKSzBuNGduMHVsMFhFNW03Z3Iwd3BiU3ZlWXFtbkRGMG53M3FXaG0zZ0k0T0NIUWt5aUlBNk53WG9FdU1zUFNqSDgvSVgyYXVzaXVpSWNqYXdYSnRBWE9WZ1lCQVlqS1ZSS2VkWVdqM3ZZRFFKNGNxeThyd2pPNEdBcTUwMnVXR2R5ZmpzdkhGa1BEdzJuNGxBb09waEhqUWFhbE9JSEFDa1NVQXFGL1NXVXk2QlI2aVFMdDZXYU1FUmxxVG90OHJDQmhlVGlUUVlXY00yaDUzOUJLQ3JCY2loLzA5ZEVCQXZ1V0FZVzVlTWg4eDlKblh5QnU1aFMzNTl4UVlhNGxqcCtONTF5Z1Vpb1NkYVVHdmp5QklKYkRkTGRwSEtWN1l4eXF4eE55Qkl3RHEwU01JbWlFMUdrODcwR091eitvRUdOMUUxeFB2VVRvNlZpTm0xR3BhVHlDd0MvTzdBb0NoUnduc3E5VmJOdVoxcElBMkNDeTlCSWs5cmdEZzlPbU1IQWJ3OVFZelFra0JMUkFZa2NOUkFNb0lCUFlMb0U4TEFBWUk2ajVUR0VyMjZpM0tVeUZvNFpEYUFOQk1SZW90dDlFclVBcTQxUkk0VGFZTkFBNFNoV05rZ1ZJMlFvUFpWUk81dllJdEFJYkdaWWNRV0paWml2MkRuY0lvaDh4L1hDTFNONHU2RVNTcWZ3OFVBRVBqZWFPdmoxK2tCTEN1cVFtZDM3aGI4R2Z6KzBKdXVlaW8wakdTNi9aVERHcSs2Q0lKTUxoUExrK2N4OWxZRE8xaytrUFB5QkVoTURuUUpRYk5oMWc0a3MxaW9wRXJxRGhlOXNjVDZKbkxZQmdDOTF2TjVoYnJkMXZoSWdCODUxblpsc3ZoV0xZWkt5ajZEV21BZ1M2eHJYQ3dobEhvUnRyeS9zNGEvMVFTSFdZNGw2RmNLYkN0Y05PeFQweWdweVVwNktINWFwWTJnTEhydDFBRkNJSE9XQXdkcGdvb25LVVJLdlpGYzllSHVLdGpRSGNwWS9NbGUzTm9Rdzdkc2drVGZyNFZYRHE1clJINDhGN1prOHVocmFrSm8xYk1Od2RxWkExZCtlbXBneDN6UFEzaW9iTW5OOUJ1M0FZSVBGRGNvV3UxbWMrbEJBSUFEc1FEcHNoaHBHRVkrZ05ETFpnZkNBRG9OU1F2cVBMa1RTdXhmdU5xN0l3SmhPRFRDdjRZVVl1bnNqa2MzZjgrQm83TTR2OEtZeTVjaXhtUEtWeFhhV3ltbkRXWExRR0d4aVZqQW1hQ29aeTFYUGJQU29uOU8rNFZIU1loYUlkSmlkMmxoSkVTVXp2dTFmODBuQk5oeXdZQTNjWTVvT2hJOHVxbGFMaytoZldYUFVjMUNIQWlqU09uTDJDR1hlUEFaS0hCemQwUGdFRzUwalpSNnBaclRHWFpwV3dBK0oyNDhWdzRLTkFBUURqNFVMTlZCQTZBYno4cnU4VWw5U1Z5SVRDVmJVWS9EUnNqeEx4TFNtaGRZU1lFSGgzb0VpTWNoMnJtMGlYc3NxSFN4STU3eGZaS1UvQ2haK1FqQU9iMWM2WG5NK2czVDROS3pSYzRBSWJHWlI4VFNlYUNZekgwVWE4WkllWThRelhiU0JFQWN2bFNaeXZ3QktZUG5kYjEwTGprQlExYTROVjhQNTF1OHpUUTZleW5UK0FBOExPSXhqTzFvMEFEQUxXamZTaG1qaHdBQ2dOUG9hQ2dzbldPTytWTHdySk9xM1ZFRGdDR0xyYk1qZGVLMEVFR1pxcjlEcEVEZ0ZYZ3FkcEVLNTB2bHNQVVFKZi9uSHd0MS8vLzg5YnFEakNQV1BBQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n"); /***/ }), /* 56 */ /*!**************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 57);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///56\n"); /***/ }), /* 57 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 68));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 69));\n\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 70));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nfunction deepCloneAssign() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}for (var i in args) {for (var key in args[i]) {if (args[i].hasOwnProperty(key)) {origin[key] = args[i][key] && typeof args[i][key] === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];}}}return origin;}function formatterAssign(args, formatter) {for (var key in args) {if (args.hasOwnProperty(key) && args[key] !== null && typeof args[key] === 'object') {formatterAssign(args[key], formatter);} else if (key === 'format' && typeof args[key] === 'string') {args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;}}return args;} // 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {var seperator = \"-\";var year = date.getFullYear();var month = date.getMonth() + 1;var strDate = date.getDate();if (month >= 1 && month <= 9) {month = \"0\" + month;}if (strDate >= 0 && strDate <= 9) {strDate = \"0\" + strDate;}var currentdate = year + seperator + month + seperator + strDate;return currentdate;}var lastMoveTime = null; /**\r\n * 防抖\r\n *\r\n * @param { Function } fn 要执行的方法\r\n * @param { Number } wait 防抖多少毫秒\r\n *\r\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\r\n * move(){ // 错误调用方式\r\n * debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)});\r\n * 应该直接使用:// 正确调用方式\r\n * move: debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)\r\n */function debounce(fn, wait) {var timer = false;return function () {var _arguments = arguments,_this = this;clearTimeout(timer);timer && clearTimeout(timer);timer = setTimeout(function () {timer = false;fn.apply(_this, _arguments); // 把参数传进去\n }, wait);};}var _default2 = { name: 'qiun-data-charts', mixins: [uniCloud.mixinDatacom], props: { type: { type: String, default: null }, canvasId: { type: String, default: 'uchartsid' }, canvas2d: { type: Boolean, default: false }, background: { type: String, default: 'rgba(0,0,0,0)' }, animation: { type: Boolean, default: true }, chartData: { type: Object, default: function _default() {return { categories: [], series: [] };} }, opts: { type: Object, default: function _default() {return {};} }, eopts: { type: Object, default: function _default() {return {};} }, loadingType: { type: Number, default: 2 }, errorShow: { type: Boolean, default: true }, errorReload: { type: Boolean, default: true }, errorMessage: { type: String, default: null }, inScrollView: { type: Boolean, default: false }, reshow: { type: Boolean, default: false }, reload: { type: Boolean, default: false }, disableScroll: { type: Boolean, default: false }, optsWatch: { type: Boolean, default: true }, onzoom: { type: Boolean, default: false }, ontap: { type: Boolean, default: true }, ontouch: { type: Boolean, default: false }, onmouse: { type: Boolean, default: true }, onmovetip: { type: Boolean, default: false }, echartsH5: { type: Boolean, default: false },\n echartsApp: {\n type: Boolean,\n default: false },\n\n tooltipShow: {\n type: Boolean,\n default: true },\n\n tooltipFormat: {\n type: String,\n default: undefined },\n\n tooltipCustom: {\n type: Object,\n default: undefined },\n\n startDate: {\n type: String,\n default: undefined },\n\n endDate: {\n type: String,\n default: undefined },\n\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n } },\n\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n } },\n\n pageScrollTop: {\n type: Number,\n default: 0 },\n\n directory: {\n type: String,\n default: '/' },\n\n tapLegend: {\n type: Boolean,\n default: true },\n\n menus: {\n type: Array,\n default: function _default() {\n return [];\n } } },\n\n\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 375,\n cHeight: 250,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false },\n\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null };\n\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n\n\n\n\n\n\n\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {var _this2 = this;\n\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n\n uni.offWindowResize(function () {});\n\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if (typeof val === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true },\n\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true },\n\n optsProps: {\n handler: function handler(val, oldval) {\n if (typeof val === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true },\n\n eoptsProps: {\n handler: function handler(val, oldval) {\n if (typeof val === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true },\n\n reshow: function reshow(val, oldval) {var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({ name: 'error', params: { type: \"error\", errorShow: this.errorShow, msg: val, id: this.cid } });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:611\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n } },\n\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n } },\n\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if (typeof this.chartData === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = { categories: [], series: [] };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({ name: item.group, data: [] });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{ name: '默认分组', data: [] }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({ \"name\": resdata[_i3].text, \"value\": resdata[_i3].value });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.\n createSelectorQuery().\n\n in(this).\n\n select('#ChartBoxId' + this.cid).\n boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).\n exec();\n },\n getCloudData: function getCloudData() {var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().\n then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).\n catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if (typeof ctx === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.\n createSelectorQuery().\n\n in(this).\n\n select('#ChartBoxId' + cid).\n boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.\n select('#' + cid).\n fields({ node: true, size: true }).\n exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).\n exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n\n\n\n\n\n\n\n\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000 });\n\n } });\n\n\n } },\n this);\n },\n getImage: function getImage() {var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({ name: 'getImage', params: { type: \"getImage\", base64: res.tempFilePath } });\n } },\n this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.\n select('#' + this.cid).\n fields({ node: true, size: true }).\n exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({ name: 'getImage', params: { type: \"getImage\", base64: canvas.toDataURL('image/png') } });\n }\n });\n }\n },\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 58)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4SkE7QUFDQTs7QUFFQSxvSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLCtQQUNBLHFCQUNBLDBCQUNBLGtDQUNBLGtLQUNBLENBQ0EsQ0FDQSxDQUNBLGNBQ0EsQ0FFQSwyQ0FDQSx1QkFDQSxzRkFDQSxzQ0FDQSxDQUZBLE1BRUEsd0RBQ0EsNEVBQ0EsQ0FDQSxDQUNBLFlBQ0EsQyxDQUVBO0FBQ0EsOEJBQ0Esb0JBQ0EsOEJBQ0EsZ0NBQ0EsNkJBQ0EsK0JBQ0Esb0JBQ0EsQ0FDQSxtQ0FDQSx3QkFDQSxDQUNBLGlFQUNBLG1CQUNBLENBRUEsd0IsQ0FDQTs7Ozs7Ozs7Ozs7Ozs7OzhXQWdCQSw2QkFDQSxrQkFDQSw0REFDQSxvQkFDQSw2QkFDQSxnQ0FDQSxjQUNBLDRCQUZBLENBRUE7QUFDQSxLQUhBLEVBR0EsSUFIQSxFQUlBLENBUEEsQ0FRQSxDLGdCQUVBLEVBQ0Esd0JBREEsRUFFQSwrQkFGQSxFQUdBLFNBQ0EsUUFDQSxZQURBLEVBRUEsYUFGQSxFQURBLEVBS0EsWUFDQSxZQURBLEVBRUEsb0JBRkEsRUFMQSxF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QUE2VkEsYUE3VkEsdUJBNlZBO0FBQ0E7QUFDQSwwQkFEQTtBQUVBOzs7Ozs7Ozs7QUFTQTtBQUNBLHNDQURBO0FBRUE7QUFDQTtBQUNBLDZCQURBO0FBRUEsOEJBRkE7O0FBSUEsYUFQQTs7O0FBVUEsU0FyQkE7QUFzQkEsVUF0QkE7QUF1QkEsS0FyWEE7QUFzWEEsWUF0WEEsc0JBc1hBO0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUE7QUFDQTtBQUNBLFdBSkE7QUFLQSxZQUxBO0FBTUEsT0FQQSxNQU9BO0FBQ0E7QUFDQTtBQUNBLGNBREEsQ0FDQSxjQURBO0FBRUEsY0FGQSxDQUVBLDBCQUZBO0FBR0EsWUFIQSxDQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQVJBO0FBU0E7QUFDQSxLQTFZQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4aUJBLFVBOWlCQSxrQkE4aUJBLENBOWlCQSxFQThpQkE7QUFDQTtBQUNBLEtBaGpCQTtBQWlqQkEsV0FqakJBLG1CQWlqQkEsR0FqakJBLEVBaWpCQTtBQUNBO0FBQ0EsS0FuakJBO0FBb2pCQSxpQkFwakJBLDJCQW9qQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBempCQTtBQTBqQkEsVUExakJBLG9CQTBqQkE7QUFDQTtBQUNBLEtBNWpCQSxFQXRaQSxFIiwiZmlsZSI6IjU3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuICAgICAgPCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcbiAgICAgIDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIlxyXG4gICAgICAgIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcbiAgICAgICAgOmlkPVwiJ0VDJytjaWRcIiBcclxuICAgICAgICA6cHJvcD1cImVjaGFydHNPcHRzXCIgXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgXHJcbiAgICAgICAgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG4gICAgICAgIDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtZWxzZT5cclxuICAgICAgPHZpZXdcclxuICAgICAgICB2LW9uOnRhcD1cInJkY2hhcnRzLnRhcFwiXHJcbiAgICAgICAgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIlxyXG4gICAgICAgIHYtb246bW91c2Vkb3duPVwicmRjaGFydHMubW91c2VEb3duXCJcclxuICAgICAgICB2LW9uOm1vdXNldXA9XCJyZGNoYXJ0cy5tb3VzZVVwXCJcclxuICAgICAgICB2LW9uOnRvdWNoc3RhcnQ9XCJyZGNoYXJ0cy50b3VjaFN0YXJ0XCJcclxuICAgICAgICB2LW9uOnRvdWNobW92ZT1cInJkY2hhcnRzLnRvdWNoTW92ZVwiXHJcbiAgICAgICAgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCJcclxuICAgICAgICA6aWQ9XCInVUMnK2NpZFwiXHJcbiAgICAgICAgOnByb3A9XCJ1Y2hhcnRzT3B0c1wiXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMudWNpbml0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc2FibGVTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDmlK/ku5jlrp3lsI/nqIvluo8gLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC1BTElQQVkgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cIm9udG91Y2hcIj5cclxuICAgICAgPGNhbnZhc1xyXG4gICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiXHJcbiAgICAgICAgOmhlaWdodD1cImNIZWlnaHQgKiBwaXhlbFwiXHJcbiAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhb250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICAgIDwhLS0g5YW25LuW5bCP56iL5bqP6YCa6L+HdnVl5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtMzYwIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtV0VJWElOIHx8IE1QLUtVQUlTSE9VIHx8IE1QLUxBUksgfHwgTVAtSkQgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cInR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhdHlwZTJkXCI+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgICAgPHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdGFwPVwiX3RhcFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1pZj1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB1Q2hhcnRzIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy91LWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuLy8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuaW1wb3J0IGNmZSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMnO1xyXG4vLyAjZW5kaWZcclxuXHJcbmZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG4gIGZvciAobGV0IGkgaW4gYXJncykge1xyXG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3NbaV0pIHtcclxuICAgICAgaWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIG9yaWdpbltrZXldID0gYXJnc1tpXVtrZXldICYmIHR5cGVvZiBhcmdzW2ldW2tleV0gPT09ICdvYmplY3QnID8gZGVlcENsb25lQXNzaWduKEFycmF5LmlzQXJyYXkoYXJnc1tpXVtrZXldKSA/IFtdIDoge30sIG9yaWdpbltrZXldLCBhcmdzW2ldW2tleV0pIDogYXJnc1tpXVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvcmlnaW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvcHRzV2F0Y2g6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9uem9vbToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9udGFwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBvbnRvdWNoOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgb25tb3VzZToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25tb3ZldGlwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0g1OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0FwcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRm9ybWF0OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEN1c3RvbToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHN0YXJ0RGF0ZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIGVuZERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICB0ZXh0RW51bToge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBncm91cEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcGFnZVNjcm9sbFRvcDoge1xyXG4gICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgIGRlZmF1bHQ6IDBcclxuICAgIH0sXHJcbiAgICBkaXJlY3Rvcnk6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAnLydcclxuICAgIH0sXHJcbiAgICB0YXBMZWdlbmQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG1lbnVzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNpZDogJ3VjaGFydHNpZCcsXHJcbiAgICAgIGluV3g6IGZhbHNlLFxyXG4gICAgICBpbkFsaTogZmFsc2UsXHJcbiAgICAgIGluVHQ6IGZhbHNlLFxyXG4gICAgICBpbkJkOiBmYWxzZSxcclxuICAgICAgaW5INTogZmFsc2UsXHJcbiAgICAgIGluQXBwOiBmYWxzZSxcclxuICAgICAgaW5XaW46IGZhbHNlLFxyXG4gICAgICB0eXBlMmQ6IHRydWUsXHJcbiAgICAgIGRpc1Njcm9sbDogZmFsc2UsXHJcbiAgICAgIG9wZW5tb3VzZTogZmFsc2UsXHJcbiAgICAgIHBpeGVsOiAxLFxyXG4gICAgICBjV2lkdGg6IDM3NSxcclxuICAgICAgY0hlaWdodDogMjUwLFxyXG4gICAgICBzaG93Y2hhcnQ6IGZhbHNlLFxyXG4gICAgICBlY2hhcnRzOiBmYWxzZSxcclxuICAgICAgZWNoYXJ0c1Jlc2l6ZTp7XHJcbiAgICAgICAgc3RhdGU6ZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgdWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBlY2hhcnRzT3B0czoge30sXHJcbiAgICAgIGRyYXdEYXRhOnt9LFxyXG4gICAgICBsYXN0RHJhd1RpbWU6bnVsbCxcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCl7XHJcbiAgICB0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuICAgIGlmICh0aGlzLmNhbnZhc0lkID09ICd1Y2hhcnRzaWQnIHx8IHRoaXMuY2FudmFzSWQgPT0gJycpIHtcclxuICAgICAgbGV0IHQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcclxuICAgICAgbGV0IGxlbiA9IHQubGVuZ3RoXHJcbiAgICAgIGxldCBpZCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xyXG4gICAgICAgIGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaWQgPSBpZFxyXG4gICAgfVxyXG4gICAgY29uc3Qgc3lzdGVtSW5mbyA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcbiAgICBpZihzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnd2luZG93cycgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ21hYycpe1xyXG4gICAgICB0aGlzLmluV2luID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vICNpZmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMuaW5XeCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jYW52YXMyZCA9PT0gZmFsc2UgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKSB7XHJcbiAgICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50eXBlMmQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvL+mdnuW+ruS/oeWwj+eoi+W6j+err+W8uuWItuWFs+mXrWNhbnZhczJk5qih5byPXHJcbiAgICAvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG4gICAgdGhpcy50eXBlMmQgPSBmYWxzZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmICBNUC1UT1VUSUFPIHx8IE1QLUxBUksgfHwgTVAtQUxJUEFZXHJcbiAgICB0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICBpZiAodmFsLnNlcmllcyAmJiB2YWwuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpjaGFydERhdGHmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2FsZGF0YTp7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9wdHNQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmxvY2FsZGF0YS5sZW5ndGg+MCl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLmxvY2FsZGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2NhbGRhdGFJbml0KHJlc2RhdGEpe1xyXG4gICAgICAvL+abv+aNomVudW3nsbvlnovkuLrmraPnoa7nmoTmj4/ov7BcclxuICAgICAgaWYodGhpcy5ncm91cEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmdyb3VwRW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLmdyb3VwID09PSB0aGlzLmdyb3VwRW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS5ncm91cCA9IHRoaXMuZ3JvdXBFbnVtW2pdLnRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnRleHRFbnVtLmxlbmd0aD4wKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy50ZXh0RW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLnRleHQgPT09IHRoaXMudGV4dEVudW1bal0udmFsdWUpe1xyXG4gICAgICAgICAgICAgIHJlc2RhdGFbaV0udGV4dCA9IHRoaXMudGV4dEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG1wRGF0YSA9IHtjYXRlZ29yaWVzOltdLCBzZXJpZXM6W119XHJcbiAgICAgIGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuICAgICAgbGV0IHRtcHNlcmllcyA9IFtdO1xyXG4gICAgICAvL+aLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgaWYodGhpcy5lY2hhcnRzID09PSB0cnVlKXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmZS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbmVlZENhdGVnb3JpZXMgPSBjZnUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgIC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG4gICAgICAgIGlmKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0bXBjYXRlZ29yaWVzID0gdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzmmK/ml6XmnJ/nsbvlnovnmoTmlbDmja7vvIzkuI3nrqHmmK/mnKzlnLDmlbDmja7ov5jmmK/kupHmlbDmja7vvIzpg73mjInotbfmraLml6XmnJ/oh6rliqjmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICBpZih0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpe1xyXG4gICAgICAgICAgICBsZXQgaWRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSlcclxuICAgICAgICAgICAgbGV0IGVkYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlKVxyXG4gICAgICAgICAgICB3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuICAgICAgICAgICAgXHR0bXBjYXRlZ29yaWVzLnB1c2goZ2V0Rm9ybWF0RGF0ZShpZGF0ZSkpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBpZGF0ZS5zZXREYXRlKGlkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGV0IHRlbXBja2V5ID0ge307XHJcbiAgICAgICAgICAgIHJlc2RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAhPSB1bmRlZmluZWQgJiYgIXRlbXBja2V5W2l0ZW0udGV4dF0pIHtcclxuICAgICAgICAgICAgICAgIHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcbiAgICAgICAgICAgICAgICB0ZW1wY2tleVtpdGVtLnRleHRdID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICAvL+aLvOaOpXNlcmllc1xyXG4gICAgICBsZXQgdGVtcHNrZXkgPSB7fTtcclxuICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cCAhPSB1bmRlZmluZWQgJiYgIXRlbXBza2V5W2l0ZW0uZ3JvdXBdKSB7XHJcbiAgICAgICAgICB0bXBzZXJpZXMucHVzaCh7IG5hbWU6IGl0ZW0uZ3JvdXAsIGRhdGE6IFtdIH0pO1xyXG4gICAgICAgICAgdGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcbiAgICAgIGlmICh0bXBzZXJpZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0bXBzZXJpZXMgPSBbeyBuYW1lOiAn6buY6K6k5YiG57uEJywgZGF0YTogW10gfV07XHJcbiAgICAgICAgLy/lpoLmnpzmmK/pnIDopoFjYXRlZ29yaWVz55qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXJpZXNkYXRhID0gMDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc2RhdGFbaV0udGV4dCA9PSB0bXBjYXRlZ29yaWVzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRtcHNlcmllc1swXS5kYXRhLnB1c2goe1wibmFtZVwiOiByZXNkYXRhW2ldLnRleHQsXCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAvL+WmguaenOacieWIhue7hOWQjVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAvL+WmguaenOaciWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmICh0bXBjYXRlZ29yaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VyaWVzZGF0YSA9IHJlc2RhdGFbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2goc2VyaWVzZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5aaC5p6c5Lyg5LqGZ3JvdXDogIzmsqHmnInkvKB0ZXh077yM5Y2z5rKh5pyJY2F0ZWdvcmllc++8iOato+W4uOaDheWGteS4i+i/meenjeaVsOaNruaYr+S4jeespuWQiOaVsOaNruimgeaxguinhOiMg+eahO+8iVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2gocmVzZGF0YVtpXS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRtcERhdGEuc2VyaWVzID0gdG1wc2VyaWVzXHJcbiAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICB0aGlzLmRyYXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCB0bXBEYXRhKTtcclxuICAgICAgdGhpcy5jaGVja0RhdGEodG1wRGF0YSlcclxuICAgIH0sXHJcbiAgICByZWxvYWRpbmcoKSB7XHJcbiAgICAgIGlmKHRoaXMuZXJyb3JSZWxvYWQgPT09IGZhbHNlKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICAvL+WkjeS9jW9wdHPmiJZlb3B0c1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5lb3B0cyk7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodGhpcy50eXBlICYmIGNmdS50eXBlLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1W3RoaXMudHlwZV0sIHRoaXMub3B0cyk7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mnByb3Bz5Y+C5pWw5LitdHlwZeexu+Wei+S4jeato+ehric7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8v5oyC6L29Y2F0ZWdvcmllc+WSjHNlcmllc1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgYW55RGF0YSk7XHJcbiAgICAgIGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYXRlZ29yaWVzID0gbmV3RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnNlcmllcyA9IG5ld0RhdGEuc2VyaWVzO1xyXG4gICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgdGhpcy5pbml0KClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVzaXplSGFuZGxlcigpIHtcclxuICAgICAgLy/muLLmn5PpmLLmipZcclxuICAgICAgbGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lP3RoaXMubGFzdERyYXdUaW1lOmN1cnJUaW1lLTMwMDA7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJUaW1lIC0gbGFzdERyYXdUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJyt0aGlzLmNpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCAhPT0gdGhpcy5jV2lkdGggfHwgZGF0YS5oZWlnaHQgIT09IHRoaXMuY0hlaWdodCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0Q2xvdWREYXRhKCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21HZXQoKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEgPSByZXMucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5taXhpbkRhdGFjb21SZXNEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn6K+35rGC6ZSZ6K+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hhcnRzICE9PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0uY29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG4gICAgICAgIGlmKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSl7XHJcbiAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoKnRoaXMucGl4ZWwsIHRoaXMuY0hlaWdodCp0aGlzLnBpeGVsKTtcclxuICAgICAgICAgIGN0eC5kcmF3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgLmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhLndpZHRoID4gMCAmJiBkYXRhLmhlaWdodCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sYXN0RHJhd1RpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuY0hlaWdodCA9IGRhdGEuaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZih0aGlzLmVjaGFydHMgIT09IHRydWUpe1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5iYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kID09ICdyZ2JhKDAsMCwwLDApJyA/ICcjRkZGRkZGJyA6IHRoaXMuYmFja2dyb3VuZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzMmQgPSB0aGlzLnR5cGUyZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucGl4ZWxSYXRpbyA9IHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS53aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5fd2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXdDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8muW8gOWQrzJk5qih5byP5ZCO77yM5pyq6I635Y+W5YiwZG9t6IqC54K577yMY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmluQWxpKXtcclxuICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5biD5bGA6ZSZ6K+v77ya5pyq6I635Y+W5Yiw54i25YWD57Sg5a696auY5bC65a+477yBY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgc2F2ZUltYWdlKCl7XHJcbiAgICBcdHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICBcdCAgY2FudmFzSWQ6IHRoaXMuY2lkLFxyXG4gICAgXHQgIHN1Y2Nlc3M6IHJlcz0+e1xyXG4gICAgXHQgICAgLy8jaWZkZWYgSDVcclxuICAgIFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBcdFx0XHRhLmhyZWYgPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgXHRcdFx0YS5kb3dubG9hZCA9IHRoaXMuY2lkO1xyXG4gICAgXHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgXHRcdFx0YS5jbGljaygpO1xyXG4gICAgXHQgICAgLy8jZW5kaWZcclxuICAgIFx0ICAgIC8vI2lmbmRlZiBINVxyXG4gICAgXHQgICAgICB1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0SW1hZ2UoKXtcclxuICAgICAgaWYodGhpcy50eXBlMmQgPT0gZmFsc2Upe1xyXG4gICAgICAgIHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICAgICAgICBjYW52YXNJZDogdGhpcy5jaWQsXHJcbiAgICAgICAgICBzdWNjZXNzOiByZXM9PntcclxuICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW1hZ2UnLCBwYXJhbXM6IHt0eXBlOlwiZ2V0SW1hZ2VcIiwgYmFzZTY0OiByZXMudGVtcEZpbGVQYXRofX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sdGhpcyk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG4gICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAuc2VsZWN0KCcjJyArIHRoaXMuY2lkKVxyXG4gICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgIC5leGVjKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNbMF0pIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbWFnZScsIHBhcmFtczoge3R5cGU6XCJnZXRJbWFnZVwiLCBiYXNlNjQ6IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNpZm5kZWYgQVBQLVZVRSB8fCBINVxyXG4gICAgX25ld0NoYXJ0KGNpZCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzKGNmdS5vcHRpb25bY2lkXSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2NvbXBsZXRlJywgcGFyYW1zOiB7dHlwZTpcImNvbXBsZXRlXCIsIGNvbXBsZXRlOiB0cnVlLCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnc2Nyb2xsTGVmdCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxMZWZ0XCIsIHNjcm9sbExlZnQ6IHRydWUsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxSaWdodCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxSaWdodFwiLCBzY3JvbGxSaWdodDogdHJ1ZSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgX3VwZGF0YVVDaGFydChjaWQpIHtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfc2hvd1Rvb2x0aXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90YXAoZSxtb3ZlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gbnVsbDtcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5TY3JvbGxWaWV3ID09PSB0cnVlIHx8IHRoaXMuaW5BbGkpIHtcclxuICAgICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5zZWxlY3QoJyMnK3RoaXMuY2lkKVxyXG4gICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbkFsaSkge1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLmNsaWVudFggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLmNsaWVudFkgLSBkYXRhLnRvcH0pO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoeyB4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LCB5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3B9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGxlZ2VuZEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7IHR5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCB9LCBjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCwgbGVnZW5kSW5kZXg6IGxlZ2VuZEluZGV4LCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmV4ZWMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcz1bXTtcclxuICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSk7XHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBpZih0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbmRleCcsIHBhcmFtczoge3R5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLngsIHk6IGUuZGV0YWlsLnkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGFzdE1vdmVUaW1lPURhdGUubm93KCk7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6J2dldFRvdWNoU3RhcnQnLCBwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgIH0sXHJcbiAgICBfdG91Y2hNb3ZlKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSBsYXN0TW92ZVRpbWU7XHJcbiAgICAgIGxldCB0b3VjaE1vdmVMaW1pdCA9IGNmdS5vcHRpb25bY2lkXS50b3VjaE1vdmVMaW1pdCB8fCAyNDtcclxuICAgICAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47Ly/mr4/np5I2MOW4p1xyXG4gICAgICBsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuX3RhcChlLHRydWUpXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5vbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgdGhpcy5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRUb3VjaE1vdmUnLCBwYXJhbXM6IHt0eXBlOlwidG91Y2hNb3ZlXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgcmRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLGZvcm1hdHRlcilcclxuICAgIH1lbHNlIGlmKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICBhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBhcmdzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJpZDpudWxsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgcm9vdGRvbSA9IHt0b3A6MCxsZWZ0OjB9XHJcbiAgICAvLyAjaWZkZWYgSDVcclxuICAgIGxldCBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1tYWluJylbMF1cclxuICAgIGlmKGRtID09PSB1bmRlZmluZWQpe1xyXG4gICAgICBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1wYWdlLXdyYXBwZXInKVswXVxyXG4gICAgfVxyXG4gICAgcm9vdGRvbSA9IHt0b3A6ZG0ub2Zmc2V0VG9wLGxlZnQ6ZG0ub2Zmc2V0TGVmdH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBpZih0aGlzLnJpZCA9PT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG4gICAgICB9XHJcbiAgICB9LDIwMClcclxuICB9LFxyXG4gIGRlc3Ryb3llZCgpe1xyXG4gICAgZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2Z1Lmluc3RhbmNlW3RoaXMucmlkXVxyXG4gICAgZGVsZXRlIGNmZS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgZWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBsZXQgY2lkID0gSlNPTi5zdHJpbmdpZnkobmV3VmFsLmlkKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGxldCBlb3B0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgbGV0IHR5cGUgPSBlb3B0cy50eXBlO1xyXG4gICAgICAvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG4gICAgICBpZiAodHlwZSAmJiBjZmUudHlwZS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBjZmVbdHlwZV0sIGVvcHRzKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGVvcHRzKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IGVvcHRzLmNoYXJ0RGF0YTtcclxuICAgICAgaWYobmV3RGF0YSl7XHJcbiAgICAgICAgLy/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS54QXhpcy5kYXRhID0gbmV3RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ueUF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld0RhdGEuc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOiB7fVxyXG4gICAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHRoaXMubmV3RUNoYXJ0KClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuICAgICAgICAvLyAjaWZkZWYgQVBQLVZVRVxyXG4gICAgICAgIHNjcmlwdC5zcmMgPSAnLi91bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9hcHAtcGx1cy9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAvLyAjaWZkZWYgSDVcclxuICAgICAgICBjb25zdCB7IG9yaWdpbiB9ID0gd2luZG93LmxvY2F0aW9uXHJcbiAgICAgICAgY29uc3Qgcm9vdHVybCA9IG9yaWdpbiArIHByb2Nlc3MuZW52LkJBU0VfVVJMXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9IHJvb3R1cmwgKyAndW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9zdGF0aWMvaDUvZWNoYXJ0cy5taW4uanMnXHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHRoaXMubmV3RUNoYXJ0XHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlY3Jlc2l6ZShuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKXtcclxuICAgICAgaWYoY2ZlLmluc3RhbmNlW3RoaXMucmlkXSl7XHJcbiAgICAgICAgY2ZlLmluc3RhbmNlW3RoaXMucmlkXS5yZXNpemUoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbmV3RUNoYXJ0KCl7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbY2lkXSA9PT0gdW5kZWZpbmVkKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXSA9IGVjaGFydHMuaW5pdCh0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdKVxyXG4gICAgICAgIC8vb250YXDlvIDlkK/lkI7miY3op6blj5FjbGlja+S6i+S7tlxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignY2xpY2snLCByZXNkYXRhID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgeDpyZXNkYXRhLmV2ZW50Lm9mZnNldFgseTpyZXNkYXRhLmV2ZW50Lm9mZnNldFlcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIsIHBhcmFtczp7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OmV2ZW50LCBjdXJyZW50SW5kZXg6cmVzZGF0YS5kYXRhSW5kZXgsIHZhbHVlOnJlc2RhdGEuZGF0YSwgc2VyaWVzTmFtZTogcmVzZGF0YS5zZXJpZXNOYW1lLGlkOmNpZH19KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIOWinuWKoEVDaGFydHPnmoRoaWdobGlnaHTmtojmga/vvIzlrp7njrDmjInkuIvnp7vliqjov5Tlm57ntKLlvJXlip/og73jgIJhZGQgYnkgb25lZmlzaCDliJvlu7rkuo4gMjAyMS0xMi0xMSAwOTo1MFxyXG4gICAgICAgICAgY2ZlLmluc3RhbmNlW2NpZF0ub24oJ2hpZ2hsaWdodCcsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRIaWdobGlnaHRcIiwgcGFyYW1zOnt0eXBlOlwiaGlnaGxpZ2h0XCIsIHJlczpyZXNkYXRhLCBpZDpjaWR9fSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGFFQ2hhcnQoY2lkLG9wdGlvbil7XHJcbiAgICAgIC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcbiAgICAgIG9wdGlvbiA9IHJkZm9ybWF0dGVyQXNzaWduKG9wdGlvbixjZmUuZm9ybWF0dGVyKVxyXG4gICAgICBpZihvcHRpb24udG9vbHRpcCl7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdz90cnVlOmZhbHNlO1xyXG4gICAgICAgIG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgIC8vdG9vbHRpcEZvcm1hdOaWueazle+8jOabv+aNoue7hOS7tueahHRvb2x0aXBGb3JtYXTkuLpjb25maWctZWNoYXJ0cy5qc+WGheWvueW6lOeahOaWueazlVxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuICAgICAgaWYgKG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRmb3IgKGxldCBpIGluIG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuICAgICAgXHRcdGlmIChsaW5lYXJHcmFkaWVudCkge1xyXG4gICAgICBcdFx0XHRvcHRpb24uc2VyaWVzW2ldLmNvbG9yID0gbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudChsaW5lYXJHcmFkaWVudFswXSxsaW5lYXJHcmFkaWVudFsxXSxsaW5lYXJHcmFkaWVudFsyXSxsaW5lYXJHcmFkaWVudFszXSxsaW5lYXJHcmFkaWVudFs0XSlcclxuICAgICAgXHRcdH1cclxuICAgICAgXHR9XHJcbiAgICAgIH1cclxuICAgICAgY2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignZmluaXNoZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZH19KVxyXG4gICAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9mZignZmluaXNoZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL+S/ruWkjWluaXTliJ3lp4vljJblrp7kvovojrflj5blrr3pq5jkuI3mraPnoa7pl67pophcclxuICAgICAgaWYoXHJcbiAgICAgICAgdHlwZW9mIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggIT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgTWF0aC5hYnMoIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRXaWR0aCgpICk+MyB8fFxyXG4gICAgICAgICAgICBNYXRoLmFicyggdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQgLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRIZWlnaHQoKSApPjNcclxuICAgICAgICAgIClcclxuICAgICAgKXt0aGlzLmVjcmVzaXplKCk7fVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBQb3NpdGlvbigpe1xyXG4gICAgICByZXR1cm4gKHBvaW50LCBwYXJhbXMsIGRvbSwgcmVjdCwgc2l6ZSkgPT4ge1xyXG4gICAgICBcdGxldCB4ID0gcG9pbnRbMF1cclxuICAgICAgXHRsZXQgeSA9IHBvaW50WzFdXHJcbiAgICAgIFx0bGV0IHZpZXdXaWR0aCA9IHNpemUudmlld1NpemVbMF1cclxuICAgICAgXHRsZXQgdmlld0hlaWdodCA9IHNpemUudmlld1NpemVbMV1cclxuICAgICAgXHRsZXQgYm94V2lkdGggPSBzaXplLmNvbnRlbnRTaXplWzBdXHJcbiAgICAgIFx0bGV0IGJveEhlaWdodCA9IHNpemUuY29udGVudFNpemVbMV1cclxuICAgICAgXHRsZXQgcG9zWCA9IHggKyAzMCBcclxuICAgICAgXHRsZXQgcG9zWSA9IHkgKyAzMCBcclxuICAgICAgXHRpZiAocG9zWCArIGJveFdpZHRoID4gdmlld1dpZHRoKSB7IFxyXG4gICAgICBcdFx0cG9zWCA9IHggLSBib3hXaWR0aCAtIDMwXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdGlmIChwb3NZICsgYm94SGVpZ2h0ID4gdmlld0hlaWdodCkge1xyXG4gICAgICBcdFx0cG9zWSA9IHkgLSBib3hIZWlnaHQgLSAzMFxyXG4gICAgICBcdH1cclxuICAgICAgXHRyZXR1cm4gW3Bvc1gsIHBvc1ldXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivdUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICB1Y2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGlmKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgPT0gSlNPTi5zdHJpbmdpZnkob2xkVmFsKSl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCFuZXdWYWwuY2FudmFzSWQpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgY2lkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwuY2FudmFzSWQpKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGNmdS5vcHRpb25bY2lkXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gcmRmb3JtYXR0ZXJBc3NpZ24oY2Z1Lm9wdGlvbltjaWRdLGNmdS5mb3JtYXR0ZXIpXHJcbiAgICAgIGxldCBjYW52YXNkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaWQpXHJcbiAgICAgIGlmKGNhbnZhc2RvbSAmJiBjYW52YXNkb20uY2hpbGRyZW5bMF0pe1xyXG4gICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY2FudmFzZG9tLmNoaWxkcmVuWzBdLmdldENvbnRleHQoXCIyZFwiKVxyXG4gICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgIHRoaXMudXBkYXRhVUNoYXJ0KClcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMubmV3VUNoYXJ0KClcclxuICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG5ld1VDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHNSRChjZnUub3B0aW9uW2NpZF0pXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwic2Nyb2xsTGVmdFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbExlZnRcIixzY3JvbGxMZWZ0OnRydWUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJzY3JvbGxSaWdodFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbFJpZ2h0XCIsc2Nyb2xsUmlnaHQ6dHJ1ZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRhVUNoYXJ0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lIDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzaG93VG9vbHRpcChlLGNpZCkge1xyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRhcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250YXAgPSBjZnUub3B0aW9uW2NpZF0ub250YXBcclxuICAgICAgbGV0IHRvb2x0aXBTaG93ID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93XHJcbiAgICAgIGxldCB0YXBMZWdlbmQgPSBjZnUub3B0aW9uW2NpZF0udGFwTGVnZW5kXHJcbiAgICAgIGlmKG9udGFwID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXg9bnVsbFxyXG4gICAgICBsZXQgbGVnZW5kSW5kZXg9bnVsbFxyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgaWYoZS5kZXRhaWwueCl7Ly90YXDmiJbogIVjbGlja+eahOS6i+S7tlxyXG4gICAgICAgIHRtcGUgPSB7IHg6IGUuZGV0YWlsLnggLSByY2hhcnRkb20ubGVmdCwgeTplLmRldGFpbC55IC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9ZWxzZXsvL21vdXNl55qE5LqL5Lu2XHJcbiAgICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGN1cnJlbnRJbmRleD1jZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpXHJcbiAgICAgIGxlZ2VuZEluZGV4PWNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKVxyXG4gICAgICBpZih0YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRvb2x0aXBTaG93PT10cnVlKXtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIscGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIixldmVudDp0bXBlLGN1cnJlbnRJbmRleDpjdXJyZW50SW5kZXgsbGVnZW5kSW5kZXg6bGVnZW5kSW5kZXgsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcbiAgICAgIGlmKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID09PSB0cnVlKXtcclxuICAgICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgICAgbGV0IHRtcGUgPSB7IHg6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgICBpZihjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPT09IHRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYob250b3VjaCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaE1vdmVcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsRW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoRW5kXCIscGFyYW1zOnt0eXBlOlwidG91Y2hFbmRcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIG1vdXNlRG93bihlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGlmKG9ubW91c2UgPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBsZXQgdG1wZSA9IHt9XHJcbiAgICAgIHRtcGUgPSB7IHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj10cnVlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaFN0YXJ0XCIscGFyYW1zOnt0eXBlOlwibW91c2VEb3duXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICBtb3VzZU1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBsZXQgdG9vbHRpcFNob3cgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3dcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSlcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJtb3VzZU1vdmVcIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICB9ZWxzZSBpZihjZnUuaW5zdGFuY2VbY2lkXSl7XHJcbiAgICAgICAgaWYodG9vbHRpcFNob3c9PXRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtb3VzZVVwKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj1mYWxzZTtcclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZVVwXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG48IS0tICNlbmRpZiAtLT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5jaGFydHN2aWV3IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n"); /***/ }), /* 58 */ /*!************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global, wx) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 62));var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 65);var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 66));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o, allowArrayLike) {var it;if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {if (it) o = it;var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e32) {throw _e32;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e33) {didErr = true;err = _e33;}, f: function f() {try {if (!normalCompletion && it.return != null) it.return();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}function 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;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _createSuper(Derived) {var hasNativeReflectConstruct = _isNativeReflectConstruct();return function _createSuperInternal() {var Super = _getPrototypeOf(Derived),result;if (hasNativeReflectConstruct) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _wrapNativeSuper(Class) {var _cache = typeof Map === "function" ? new Map() : undefined;_wrapNativeSuper = function _wrapNativeSuper(Class) {if (Class === null || !_isNativeFunction(Class)) return Class;if (typeof Class !== "function") {throw new TypeError("Super expression must either be null or a function");}if (typeof _cache !== "undefined") {if (_cache.has(Class)) return _cache.get(Class);_cache.set(Class, Wrapper);}function Wrapper() {return _construct(Class, arguments, _getPrototypeOf(this).constructor);}Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });return _setPrototypeOf(Wrapper, Class);};return _wrapNativeSuper(Class);}function _construct(Parent, args, Class) {if (_isNativeReflectConstruct()) {_construct = Reflect.construct;} else {_construct = function _construct(Parent, args, Class) {var a = [null];a.push.apply(a, args);var Constructor = Function.bind.apply(Parent, a);var instance = new Constructor();if (Class) _setPrototypeOf(instance, Class.prototype);return instance;};}return _construct.apply(null, arguments);}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _isNativeFunction(fn) {return Function.toString.call(fn).indexOf("[native code]") !== -1;}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}"undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self;function n(e) {return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;}function s(e, t, n) {return e(n = { path: t, exports: {}, require: function require(e, t) {return function () {throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");}(null == t && n.path);} }, n.exports), n.exports;}var o = s(function (e, t) {var n;e.exports = (n = n || function (e, t) {var n = Object.create || function () {function e() {}return function (t) {var n;return e.prototype = t, n = new e(), e.prototype = null, n;};}(),s = {},o = s.lib = {},r = o.Base = { extend: function extend(e) {var t = n(this);return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () {t.$super.init.apply(this, arguments);}), t.init.prototype = t, t.$super = this, t;}, create: function create() {var e = this.extend();return e.init.apply(e, arguments), e;}, init: function init() {}, mixIn: function mixIn(e) {for (var t in e) {e.hasOwnProperty(t) && (this[t] = e[t]);}e.hasOwnProperty("toString") && (this.toString = e.toString);}, clone: function clone() {return this.init.prototype.extend(this);} },i = o.WordArray = r.extend({ init: function init(e, n) {e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length;}, toString: function toString(e) {return (e || c).stringify(this);}, concat: function concat(e) {var t = this.words,n = e.words,s = this.sigBytes,o = e.sigBytes;if (this.clamp(), s % 4) for (var r = 0; r < o; r++) {var i = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;t[s + r >>> 2] |= i << 24 - (s + r) % 4 * 8;} else for (r = 0; r < o; r += 4) {t[s + r >>> 2] = n[r >>> 2];}return this.sigBytes += o, this;}, clamp: function clamp() {var t = this.words,n = this.sigBytes;t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4);}, clone: function clone() {var e = r.clone.call(this);return e.words = this.words.slice(0), e;}, random: function random(t) {for (var n, s = [], o = function o(t) {t = t;var n = 987654321,s = 4294967295;return function () {var o = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s;return o /= 4294967296, (o += .5) * (e.random() > .5 ? 1 : -1);};}, r = 0; r < t; r += 4) {var a = o(4294967296 * (n || e.random()));n = 987654071 * a(), s.push(4294967296 * a() | 0);}return new i.init(s, t);} }),a = s.enc = {},c = a.Hex = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push((r >>> 4).toString(16)), s.push((15 & r).toString(16));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s += 2) {n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4;}return new i.init(n, t / 2);} },u = a.Latin1 = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push(String.fromCharCode(r));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s++) {n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8;}return new i.init(n, t);} },l = a.Utf8 = { stringify: function stringify(e) {try {return decodeURIComponent(escape(u.stringify(e)));} catch (e) {throw new Error("Malformed UTF-8 data");}}, parse: function parse(e) {return u.parse(unescape(encodeURIComponent(e)));} },h = o.BufferedBlockAlgorithm = r.extend({ reset: function reset() {this._data = new i.init(), this._nDataBytes = 0;}, _append: function _append(e) {"string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;}, _process: function _process(t) {var n = this._data,s = n.words,o = n.sigBytes,r = this.blockSize,a = o / (4 * r),c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * r,u = e.min(4 * c, o);if (c) {for (var l = 0; l < c; l += r) {this._doProcessBlock(s, l);}var h = s.splice(0, c);n.sigBytes -= u;}return new i.init(h, u);}, clone: function clone() {var e = r.clone.call(this);return e._data = this._data.clone(), e;}, _minBufferSize: 0 });o.Hasher = h.extend({ cfg: r.extend(), init: function init(e) {this.cfg = this.cfg.extend(e), this.reset();}, reset: function reset() {h.reset.call(this), this._doReset();}, update: function update(e) {return this._append(e), this._process(), this;}, finalize: function finalize(e) {return e && this._append(e), this._doFinalize();}, blockSize: 16, _createHelper: function _createHelper(e) {return function (t, n) {return new e.init(n).finalize(t);};}, _createHmacHelper: function _createHmacHelper(e) {return function (t, n) {return new d.HMAC.init(e, n).finalize(t);};} });var d = s.algo = {};return s;}(Math), n);}),r = (s(function (e, t) {var n;e.exports = (n = o, function (e) {var t = n,s = t.lib,o = s.WordArray,r = s.Hasher,i = t.algo,a = [];!function () {for (var t = 0; t < 64; t++) {a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0;}}();var c = i.MD5 = r.extend({ _doReset: function _doReset() {this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]);}, _doProcessBlock: function _doProcessBlock(e, t) {for (var n = 0; n < 16; n++) {var s = t + n,o = e[s];e[s] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);}var r = this._hash.words,i = e[t + 0],c = e[t + 1],f = e[t + 2],g = e[t + 3],p = e[t + 4],m = e[t + 5],y = e[t + 6],_ = e[t + 7],w = e[t + 8],k = e[t + 9],v = e[t + 10],T = e[t + 11],S = e[t + 12],P = e[t + 13],A = e[t + 14],I = e[t + 15],b = r[0],O = r[1],C = r[2],E = r[3];b = u(b, O, C, E, i, 7, a[0]), E = u(E, b, O, C, c, 12, a[1]), C = u(C, E, b, O, f, 17, a[2]), O = u(O, C, E, b, g, 22, a[3]), b = u(b, O, C, E, p, 7, a[4]), E = u(E, b, O, C, m, 12, a[5]), C = u(C, E, b, O, y, 17, a[6]), O = u(O, C, E, b, _, 22, a[7]), b = u(b, O, C, E, w, 7, a[8]), E = u(E, b, O, C, k, 12, a[9]), C = u(C, E, b, O, v, 17, a[10]), O = u(O, C, E, b, T, 22, a[11]), b = u(b, O, C, E, S, 7, a[12]), E = u(E, b, O, C, P, 12, a[13]), C = u(C, E, b, O, A, 17, a[14]), b = l(b, O = u(O, C, E, b, I, 22, a[15]), C, E, c, 5, a[16]), E = l(E, b, O, C, y, 9, a[17]), C = l(C, E, b, O, T, 14, a[18]), O = l(O, C, E, b, i, 20, a[19]), b = l(b, O, C, E, m, 5, a[20]), E = l(E, b, O, C, v, 9, a[21]), C = l(C, E, b, O, I, 14, a[22]), O = l(O, C, E, b, p, 20, a[23]), b = l(b, O, C, E, k, 5, a[24]), E = l(E, b, O, C, A, 9, a[25]), C = l(C, E, b, O, g, 14, a[26]), O = l(O, C, E, b, w, 20, a[27]), b = l(b, O, C, E, P, 5, a[28]), E = l(E, b, O, C, f, 9, a[29]), C = l(C, E, b, O, _, 14, a[30]), b = h(b, O = l(O, C, E, b, S, 20, a[31]), C, E, m, 4, a[32]), E = h(E, b, O, C, w, 11, a[33]), C = h(C, E, b, O, T, 16, a[34]), O = h(O, C, E, b, A, 23, a[35]), b = h(b, O, C, E, c, 4, a[36]), E = h(E, b, O, C, p, 11, a[37]), C = h(C, E, b, O, _, 16, a[38]), O = h(O, C, E, b, v, 23, a[39]), b = h(b, O, C, E, P, 4, a[40]), E = h(E, b, O, C, i, 11, a[41]), C = h(C, E, b, O, g, 16, a[42]), O = h(O, C, E, b, y, 23, a[43]), b = h(b, O, C, E, k, 4, a[44]), E = h(E, b, O, C, S, 11, a[45]), C = h(C, E, b, O, I, 16, a[46]), b = d(b, O = h(O, C, E, b, f, 23, a[47]), C, E, i, 6, a[48]), E = d(E, b, O, C, _, 10, a[49]), C = d(C, E, b, O, A, 15, a[50]), O = d(O, C, E, b, m, 21, a[51]), b = d(b, O, C, E, S, 6, a[52]), E = d(E, b, O, C, g, 10, a[53]), C = d(C, E, b, O, v, 15, a[54]), O = d(O, C, E, b, c, 21, a[55]), b = d(b, O, C, E, w, 6, a[56]), E = d(E, b, O, C, I, 10, a[57]), C = d(C, E, b, O, y, 15, a[58]), O = d(O, C, E, b, P, 21, a[59]), b = d(b, O, C, E, p, 6, a[60]), E = d(E, b, O, C, T, 10, a[61]), C = d(C, E, b, O, f, 15, a[62]), O = d(O, C, E, b, k, 21, a[63]), r[0] = r[0] + b | 0, r[1] = r[1] + O | 0, r[2] = r[2] + C | 0, r[3] = r[3] + E | 0;}, _doFinalize: function _doFinalize() {var t = this._data,n = t.words,s = 8 * this._nDataBytes,o = 8 * t.sigBytes;n[o >>> 5] |= 128 << 24 - o % 32;var r = e.floor(s / 4294967296),i = s;n[15 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), n[14 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), t.sigBytes = 4 * (n.length + 1), this._process();for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {var l = c[u];c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);}return a;}, clone: function clone() {var e = r.clone.call(this);return e._hash = this._hash.clone(), e;} });function u(e, t, n, s, o, r, i) {var a = e + (t & n | ~t & s) + o + i;return (a << r | a >>> 32 - r) + t;}function l(e, t, n, s, o, r, i) {var a = e + (t & s | n & ~s) + o + i;return (a << r | a >>> 32 - r) + t;}function h(e, t, n, s, o, r, i) {var a = e + (t ^ n ^ s) + o + i;return (a << r | a >>> 32 - r) + t;}function d(e, t, n, s, o, r, i) {var a = e + (n ^ (t | ~s)) + o + i;return (a << r | a >>> 32 - r) + t;}t.MD5 = r._createHelper(c), t.HmacMD5 = r._createHmacHelper(c);}(Math), n.MD5);}), s(function (e, t) {var n, s, r;e.exports = (s = (n = o).lib.Base, r = n.enc.Utf8, void (n.algo.HMAC = s.extend({ init: function init(e, t) {e = this._hasher = new e.init(), "string" == typeof t && (t = r.parse(t));var n = e.blockSize,s = 4 * n;t.sigBytes > s && (t = e.finalize(t)), t.clamp();for (var o = this._oKey = t.clone(), i = this._iKey = t.clone(), a = o.words, c = i.words, u = 0; u < n; u++) {a[u] ^= 1549556828, c[u] ^= 909522486;}o.sigBytes = i.sigBytes = s, this.reset();}, reset: function reset() {var e = this._hasher;e.reset(), e.update(this._iKey);}, update: function update(e) {return this._hasher.update(e), this;}, finalize: function finalize(e) {var t = this._hasher,n = t.finalize(e);return t.reset(), t.finalize(this._oKey.clone().concat(n));} })));}), s(function (e, t) {e.exports = o.HmacMD5;}));var i = "FUNCTION",a = "OBJECT",c = "CLIENT_DB";function u(e) {return Object.prototype.toString.call(e).slice(8, -1).toLowerCase();}function l(e) {return "object" === u(e);}function h(e) {return e && "string" == typeof e ? JSON.parse(e) : e;}var d = "development" === "development",f = "app-plus";var g;switch (f) {case "h5":g = "web";break;case "app-plus":g = "app";break;default:g = f;}var p = h(undefined),m = h([]) || [],y = true;var _ = "";try {{var _e2 = __webpack_require__(/*! uni-stat-config */ 67).default || __webpack_require__(/*! uni-stat-config */ 67);_ = _e2.appid;}} catch (e) {}var w = {};function k(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var n, s;return n = w, s = e, Object.prototype.hasOwnProperty.call(n, s) || (w[e] = t), w[e];}"app" === g && (w = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {});var v = ["invoke", "success", "fail", "complete"],T = k("_globalUniCloudInterceptor");function S(e, t) {T[e] || (T[e] = {}), l(t) && Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];s || (s = T[e][t] = []), -1 === s.indexOf(n) && "function" == typeof n && s.push(n);}(e, n, t[n]);});}function P(e, t) {T[e] || (T[e] = {}), l(t) ? Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];if (!s) return;var o = s.indexOf(n);o > -1 && s.splice(o, 1);}(e, n, t[n]);}) : delete T[e];}function A(e, t) {return e && 0 !== e.length ? e.reduce(function (e, n) {return e.then(function () {return n(t);});}, Promise.resolve()) : Promise.resolve();}function I(e, t) {return T[e] && T[e][t] || [];}function b(e) {S("callObject", e);}var O = k("_globalUniCloudListener"),C = "response",E = "needLogin",R = "refreshToken",U = "clientdb",x = "cloudfunction",L = "cloudobject";function D(e) {return O[e] || (O[e] = []), O[e];}function N(e, t) {var n = D(e);n.includes(t) || n.push(t);}function q(e, t) {var n = D(e),s = n.indexOf(t);-1 !== s && n.splice(s, 1);}function F(e, t) {var n = D(e);for (var _e3 = 0; _e3 < n.length; _e3++) {(0, n[_e3])(t);}}var M = !1;var j = new Promise(function (e) {M && e(), function t() {if ("function" == typeof getCurrentPages) {var _t2 = getCurrentPages();_t2 && _t2[0] && (M = !0, e());}M || setTimeout(function () {t();}, 30);}();});function $() {return j;}function K(e, t) {return t ? function (n) {var _this = this;var s = !1;if ("callFunction" === t) {var _e4 = n && n.type || i;s = _e4 !== i;}var o = "callFunction" === t && !s;var r;r = this.isReady ? Promise.resolve() : this.initUniCloud, n = n || {};var a = r.then(function () {return s ? Promise.resolve() : A(I(t, "invoke"), n);}).then(function () {return e.call(_this, n);}).then(function (e) {return s ? Promise.resolve(e) : A(I(t, "success"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return o && F(C, { type: x, content: e }), Promise.resolve(e);});}, function (e) {return s ? Promise.reject(e) : A(I(t, "fail"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return F(C, { type: x, content: e }), Promise.reject(e);});});if (!(n.success || n.fail || n.complete)) return a;a.then(function (e) {n.success && n.success(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });}, function (e) {n.fail && n.fail(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });});} : function (t) {if (!((t = t || {}).success || t.fail || t.complete)) return e.call(this, t);e.call(this, t).then(function (e) {t.success && t.success(e), t.complete && t.complete(e);}, function (e) {t.fail && t.fail(e), t.complete && t.complete(e);});};}var B = /*#__PURE__*/function (_Error) {_inherits(B, _Error);var _super = _createSuper(B);function B(e) {var _this2;_classCallCheck(this, B);_this2 = _super.call(this, e.message), _this2.errMsg = e.message || "", _this2.errCode = _this2.code = e.code || "SYSTEM_ERROR", _this2.requestId = e.requestId;return _this2;}return B;}( /*#__PURE__*/_wrapNativeSuper(Error));function H() {var e, t;try {if (uni.getLaunchOptionsSync) {if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return;var _uni$getLaunchOptions = uni.getLaunchOptionsSync(),_n = _uni$getLaunchOptions.scene,_s = _uni$getLaunchOptions.channel;e = _s, t = _n;}} catch (e) {}return { channel: e, scene: t };}var W;function z() {var e = uni.getLocale && uni.getLocale() || "en";if (W) return _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });var t = uni.getSystemInfoSync(),n = t.deviceId,s = t.osName,o = t.uniPlatform,r = t.appId,i = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"];for (var _e5 = 0; _e5 < i.length; _e5++) {delete t[i[_e5]];}return W = _objectSpread(_objectSpread({ PLATFORM: o, OS: s, APPID: r, DEVICEID: n }, H()), t), _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });}var J = { sign: function sign(e, t) {var n = "";return Object.keys(e).sort().forEach(function (t) {e[t] && (n = n + "&" + t + "=" + e[t]);}), n = n.slice(1), r(n, t).toString();}, wrappedRequest: function wrappedRequest(e, t) {return new Promise(function (n, s) {t(Object.assign(e, { complete: function complete(e) {e || (e = {}), d && "web" === g && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5");var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"];if (!e.statusCode || e.statusCode >= 400) return s(new B({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t }));var o = e.data;if (o.error) return s(new B({ code: o.error.code, message: o.error.message, requestId: t }));o.result = o.data, o.requestId = t, delete o.data, n(o);} }));});} };var V = { request: function request(e) {return uni.request(e);}, uploadFile: function uploadFile(e) {return uni.uploadFile(e);}, setStorageSync: function setStorageSync(e, t) {return uni.setStorageSync(e, t);}, getStorageSync: function getStorageSync(e) {return uni.getStorageSync(e);}, removeStorageSync: function removeStorageSync(e) {return uni.removeStorageSync(e);}, clearStorageSync: function clearStorageSync() {return uni.clearStorageSync();} },Y = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" };var _e6 = (0, _uniI18n.initVueI18n)({ "zh-Hans": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, "zh-Hant": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, en: Y, fr: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, es: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, ja: Y }, "zh-Hans"),X = _e6.t;var G = /*#__PURE__*/function () {function G(e) {_classCallCheck(this, G);["spaceId", "clientSecret"].forEach(function (t) {if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(X("uniCloud.init.paramRequired", { param: t }));}), this.config = Object.assign({}, { endpoint: "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = V, this._getAccessTokenPromise = null, this._getAccessTokenPromiseStatus = null;}_createClass(G, [{ key: "setAccessToken", value: function setAccessToken(e) {this.accessToken = e;} }, { key: "requestWrapped", value: function requestWrapped(e) {return J.wrappedRequest(e, this.adapter.request);} }, { key: "requestAuth", value: function requestAuth(e) {return this.requestWrapped(e);} }, { key: "request", value: function request(e, t) {var _this3 = this;return Promise.resolve().then(function () {return _this3.hasAccessToken ? t ? _this3.requestWrapped(e) : _this3.requestWrapped(e).catch(function (t) {return new Promise(function (e, n) {!t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e();}).then(function () {return _this3.getAccessToken();}).then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});}) : _this3.getAccessToken().then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});});} }, { key: "rebuildRequest", value: function rebuildRequest(e) {var t = Object.assign({}, e);return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = J.sign(t.data, this.config.clientSecret), t;} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s };} }, { key: "getAccessToken", value: function getAccessToken() {var _this4 = this;if ("pending" === this._getAccessTokenPromiseStatus) return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus = "pending";return this._getAccessTokenPromise = this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) {return new Promise(function (t, n) {e.result && e.result.accessToken ? (_this4.setAccessToken(e.result.accessToken), _this4._getAccessTokenPromiseStatus = "fulfilled", t(_this4.accessToken)) : (_this4._getAccessTokenPromiseStatus = "rejected", n(new B({ code: "AUTH_FAILED", message: "获取accessToken失败" })));});}, function (e) {return _this4._getAccessTokenPromiseStatus = "rejected", Promise.reject(e);}), this._getAccessTokenPromise;} }, { key: "authorize", value: function authorize() {this.getAccessToken();} }, { key: "callFunction", value: function callFunction(e) {var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) };return this.request(this.setupRequest(t));} }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) {var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref) {var _this5 = this;var e = _ref.url,t = _ref.formData,n = _ref.name,s = _ref.filePath,o = _ref.fileType,r = _ref.onUploadProgress;return new Promise(function (i, a) {var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "reportOSSUpload", value: function reportOSSUpload(e) {var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFile", value: function uploadFile(_ref2) {var _this6 = this;var e = _ref2.filePath,t = _ref2.cloudPath,_ref2$fileType = _ref2.fileType,n = _ref2$fileType === void 0 ? "image" : _ref2$fileType,s = _ref2.onUploadProgress,o = _ref2.config;if ("string" !== u(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" });if (!(t = t.trim())) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });if (/:\/\//.test(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath不合法" });var r = o && o.envType || this.config.envType;var i, a;return this.getOSSUploadOptionsFromPath({ env: r, filename: t }).then(function (t) {var o = t.result;i = o.id, a = "https://" + o.cdnDomain + "/" + o.ossPath;var r = { url: "https://" + o.host, formData: { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: o.accessKeyId, Signature: o.signature, host: o.host, id: i, key: o.ossPath, policy: o.policy, success_action_status: 200 }, fileName: "file", name: "file", filePath: e, fileType: n };return _this6.uploadFileToOSS(Object.assign({}, r, { onUploadProgress: s }));}).then(function () {return _this6.reportOSSUpload({ id: i });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: a }) : s(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref3) {var e = _ref3.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ id: e[0] }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref4.fileList;return new Promise(function (t, n) {Array.isArray(e) && 0 !== e.length || n(new B({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t({ fileList: e.map(function (e) {return { fileID: e, tempFileURL: e };}) });});} }, { key: "hasAccessToken", get: function get() {return !!this.accessToken;} }]);return G;}();var Q = { init: function init(e) {var t = new G(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };var Z = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";var ee;!function (e) {e.local = "local", e.none = "none", e.session = "session";}(ee || (ee = {}));var te = function te() {};var ne = function ne() {var e;if (!Promise) {e = function e() {}, e.promise = {};var _t3 = function _t3() {throw new B({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' });};return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e;}var t = new Promise(function (t, n) {e = function e(_e7, s) {return _e7 ? n(_e7) : t(s);};});return e.promise = t, e;};function se(e) {return void 0 === e;}function oe(e) {return "[object Null]" === Object.prototype.toString.call(e);}var re;function ie(e) {var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]);var n;var _iterator = _createForOfIteratorHelper(t),_step;try {for (_iterator.s(); !(_step = _iterator.n()).done;) {var _e8 = _step.value;var _t4 = _e8.isMatch,_n2 = _e8.genAdapter,_s2 = _e8.runtime;if (_t4()) return { adapter: _n2(), runtime: _s2 };}} catch (err) {_iterator.e(err);} finally {_iterator.f();}}!function (e) {e.WEB = "web", e.WX_MP = "wx_mp";}(re || (re = {}));var ae = { adapter: null, runtime: void 0 },ce = ["anonymousUuidKey"];var ue = /*#__PURE__*/function (_te) {_inherits(ue, _te);var _super2 = _createSuper(ue);function ue() {var _this7;_classCallCheck(this, ue);_this7 = _super2.call(this), ae.adapter.root.tcbObject || (ae.adapter.root.tcbObject = {});return _this7;}_createClass(ue, [{ key: "setItem", value: function setItem(e, t) {ae.adapter.root.tcbObject[e] = t;} }, { key: "getItem", value: function getItem(e) {return ae.adapter.root.tcbObject[e];} }, { key: "removeItem", value: function removeItem(e) {delete ae.adapter.root.tcbObject[e];} }, { key: "clear", value: function clear() {delete ae.adapter.root.tcbObject;} }]);return ue;}(te);function le(e, t) {switch (e) {case "local":return t.localStorage || new ue();case "none":return new ue();default:return t.sessionStorage || new ue();}}var he = /*#__PURE__*/function () {function he(e) {_classCallCheck(this, he);if (!this._storage) {this._persistence = ae.adapter.primaryStorage || e.persistence, this._storage = le(this._persistence, ae.adapter);var _t5 = "access_token_".concat(e.env),_n3 = "access_token_expire_".concat(e.env),_s3 = "refresh_token_".concat(e.env),_o = "anonymous_uuid_".concat(e.env),_r = "login_type_".concat(e.env),_i = "user_info_".concat(e.env);this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n3, refreshTokenKey: _s3, anonymousUuidKey: _o, loginTypeKey: _r, userInfoKey: _i };}}_createClass(he, [{ key: "updatePersistence", value: function updatePersistence(e) {if (e === this._persistence) return;var t = "local" === this._persistence;this._persistence = e;var n = le(e, ae.adapter);for (var _e9 in this.keys) {var _s4 = this.keys[_e9];if (t && ce.includes(_e9)) continue;var _o2 = this._storage.getItem(_s4);se(_o2) || oe(_o2) || (n.setItem(_s4, _o2), this._storage.removeItem(_s4));}this._storage = n;} }, { key: "setStore", value: function setStore(e, t, n) {if (!this._storage) return;var s = { version: n || "localCachev1", content: t },o = JSON.stringify(s);try {this._storage.setItem(e, o);} catch (e) {throw e;}} }, { key: "getStore", value: function getStore(e, t) {try {if (!this._storage) return;} catch (e) {return "";}t = t || "localCachev1";var n = this._storage.getItem(e);if (!n) return "";if (n.indexOf(t) >= 0) {return JSON.parse(n).content;}return "";} }, { key: "removeStore", value: function removeStore(e) {this._storage.removeItem(e);} }]);return he;}();var de = {},fe = {};function ge(e) {return de[e];}var pe = function pe(e, t) {_classCallCheck(this, pe);this.data = t || null, this.name = e;};var me = /*#__PURE__*/function (_pe) {_inherits(me, _pe);var _super3 = _createSuper(me);function me(e, t) {var _this8;_classCallCheck(this, me);_this8 = _super3.call(this, "error", { error: e, data: t }), _this8.error = e;return _this8;}return me;}(pe);var ye = new ( /*#__PURE__*/function () {function _class() {_classCallCheck(this, _class);this._listeners = {};}_createClass(_class, [{ key: "on", value: function on(e, t) {return function (e, t, n) {n[e] = n[e] || [], n[e].push(t);}(e, t, this._listeners), this;} }, { key: "off", value: function off(e, t) {return function (e, t, n) {if (n && n[e]) {var _s5 = n[e].indexOf(t);-1 !== _s5 && n[e].splice(_s5, 1);}}(e, t, this._listeners), this;} }, { key: "fire", value: function fire(e, t) {if (e instanceof me) return console.error(e.error), this;var n = "string" == typeof e ? new pe(e, t || {}) : e;var s = n.name;if (this._listens(s)) {n.target = this;var _e10 = this._listeners[s] ? _toConsumableArray(this._listeners[s]) : [];var _iterator2 = _createForOfIteratorHelper(_e10),_step2;try {for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {var _t6 = _step2.value;_t6.call(this, n);}} catch (err) {_iterator2.e(err);} finally {_iterator2.f();}}return this;} }, { key: "_listens", value: function _listens(e) {return this._listeners[e] && this._listeners[e].length > 0;} }]);return _class;}())();function _e(e, t) {ye.on(e, t);}function we(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};ye.fire(e, t);}function ke(e, t) {ye.off(e, t);}var ve = "loginStateChanged",Te = "loginStateExpire",Se = "loginTypeChanged",Pe = "anonymousConverted",Ae = "refreshAccessToken";var Ie;!function (e) {e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL";}(Ie || (Ie = {}));var be = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"],Oe = { "X-SDK-Version": "1.3.5" };function Ce(e, t, n) {var s = e[t];e[t] = function (t) {var o = {},r = {};n.forEach(function (n) {var _n$call = n.call(e, t),s = _n$call.data,i = _n$call.headers;Object.assign(o, s), Object.assign(r, i);});var i = t.data;return i && function () {var e;if (e = i, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, i), o);else for (var _e11 in o) {i.append(_e11, o[_e11]);}}(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), r), s.call(e, t);};}function Ee() {var e = Math.random().toString(16).slice(2);return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, Oe), {}, { "x-seqid": e }) };}var Re = /*#__PURE__*/function () {function Re() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};_classCallCheck(this, Re);var t;this.config = e, this._reqClass = new ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = ge(this.config.env), this._localCache = (t = this.config.env, fe[t]), Ce(this._reqClass, "post", [Ee]), Ce(this._reqClass, "upload", [Ee]), Ce(this._reqClass, "download", [Ee]);}_createClass(Re, [{ key: "post", value: function () {var _post = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return this._reqClass.post(e);case 2:return _context.abrupt("return", _context.sent);case 3:case "end":return _context.stop();}}}, _callee, this);}));function post(_x) {return _post.apply(this, arguments);}return post;}() }, { key: "upload", value: function () {var _upload = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(e) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return this._reqClass.upload(e);case 2:return _context2.abrupt("return", _context2.sent);case 3:case "end":return _context2.stop();}}}, _callee2, this);}));function upload(_x2) {return _upload.apply(this, arguments);}return upload;}() }, { key: "download", value: function () {var _download = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(e) {return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return this._reqClass.download(e);case 2:return _context3.abrupt("return", _context3.sent);case 3:case "end":return _context3.stop();}}}, _callee3, this);}));function download(_x3) {return _download.apply(this, arguments);}return download;}() }, { key: "refreshAccessToken", value: function () {var _refreshAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4() {var e, t;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());_context4.prev = 1;_context4.next = 4;return this._refreshAccessTokenPromise;case 4:e = _context4.sent;_context4.next = 10;break;case 7:_context4.prev = 7;_context4.t0 = _context4["catch"](1);t = _context4.t0;case 10:if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) {_context4.next = 12;break;}throw t;case 12:return _context4.abrupt("return", e);case 13:case "end":return _context4.stop();}}}, _callee4, this, [[1, 7]]);}));function refreshAccessToken() {return _refreshAccessToken2.apply(this, arguments);}return refreshAccessToken;}() }, { key: "_refreshAccessToken", value: function () {var _refreshAccessToken3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5() {var _this$_cache$keys, e, t, n, s, o, r, i, a, _e12, _e13, _t7, _s6;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, o = _this$_cache$keys.anonymousUuidKey;this._cache.removeStore(e), this._cache.removeStore(t);r = this._cache.getStore(n);if (r) {_context5.next = 5;break;}throw new B({ message: "未登录CloudBase" });case 5:i = { refresh_token: r };_context5.next = 8;return this.request("auth.fetchAccessTokenWithRefreshToken", i);case 8:a = _context5.sent;if (!a.data.code) {_context5.next = 21;break;}_e12 = a.data.code;if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 20;break;}if (!(this._cache.getStore(s) === Ie.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 19;break;}_e13 = this._cache.getStore(o);_t7 = this._cache.getStore(n);_context5.next = 17;return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 });case 17:_s6 = _context5.sent;return _context5.abrupt("return", (this.setRefreshToken(_s6.refresh_token), this._refreshAccessToken()));case 19:we(Te), this._cache.removeStore(n);case 20:throw new B({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) });case 21:if (!a.data.access_token) {_context5.next = 23;break;}return _context5.abrupt("return", (we(Ae), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire }));case 23:a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken());case 24:case "end":return _context5.stop();}}}, _callee5, this);}));function _refreshAccessToken() {return _refreshAccessToken3.apply(this, arguments);}return _refreshAccessToken;}() }, { key: "getAccessToken", value: function () {var _getAccessToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6() {var _this$_cache$keys2, e, t, n, s, o, r;return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:_this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey;if (this._cache.getStore(n)) {_context6.next = 3;break;}throw new B({ message: "refresh token不存在,登录状态异常" });case 3:s = this._cache.getStore(e), o = this._cache.getStore(t), r = !0;_context6.t0 = this._shouldRefreshAccessTokenHook;if (!_context6.t0) {_context6.next = 9;break;}_context6.next = 8;return this._shouldRefreshAccessTokenHook(s, o);case 8:_context6.t0 = !_context6.sent;case 9:_context6.t1 = _context6.t0;if (!_context6.t1) {_context6.next = 12;break;}r = !1;case 12:return _context6.abrupt("return", (!s || !o || o < Date.now()) && r ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: o });case 13:case "end":return _context6.stop();}}}, _callee6, this);}));function getAccessToken() {return _getAccessToken.apply(this, arguments);}return getAccessToken;}() }, { key: "request", value: function () {var _request = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee7(e, t, n) {var s, o, r, _e14, i, _e15, _e16, a, c, u, l, h, d, f, g, p;return _regenerator.default.wrap(function _callee7$(_context7) {while (1) {switch (_context7.prev = _context7.next) {case 0:s = "x-tcb-trace_".concat(this.config.env);o = "application/x-www-form-urlencoded";r = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t);if (!(-1 === be.indexOf(e))) {_context7.next = 10;break;}_e14 = this._cache.keys.refreshTokenKey;_context7.t0 = this._cache.getStore(_e14);if (!_context7.t0) {_context7.next = 10;break;}_context7.next = 9;return this.getAccessToken();case 9:r.access_token = _context7.sent.accessToken;case 10:if ("storage.uploadFile" === e) {i = new FormData();for (_e15 in i) {i.hasOwnProperty(_e15) && void 0 !== i[_e15] && i.append(_e15, r[_e15]);}o = "multipart/form-data";} else {o = "application/json", i = {};for (_e16 in r) {void 0 !== r[_e16] && (i[_e16] = r[_e16]);}}a = { headers: { "content-type": o } };n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress);c = this._localCache.getStore(s);c && (a.headers["X-TCB-Trace"] = c);u = t.parse, l = t.inQuery, h = t.search;d = { env: this.config.env };u && (d.parse = !0), l && (d = _objectSpread(_objectSpread({}, l), d));f = function (e, t) {var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var s = /\?/.test(t);var o = "";for (var _e17 in n) {"" === o ? !s && (t += "?") : o += "&", o += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17]));}return /^http(s)?\:\/\//.test(t += o) ? t : "".concat(e).concat(t);}(Z, "//tcb-api.tencentcloudapi.com/web", d);h && (f += h);_context7.next = 22;return this.post(_objectSpread({ url: f, data: i }, a));case 22:g = _context7.sent;p = g.header && g.header["x-tcb-trace"];if (!(p && this._localCache.setStore(s, p), 200 !== Number(g.status) && 200 !== Number(g.statusCode) || !g.data)) {_context7.next = 26;break;}throw new B({ code: "NETWORK_ERROR", message: "network request error" });case 26:return _context7.abrupt("return", g);case 27:case "end":return _context7.stop();}}}, _callee7, this);}));function request(_x4, _x5, _x6) {return _request.apply(this, arguments);}return request;}() }, { key: "send", value: function () {var _send = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee8(e) {var t,n,_n4,_args8 = arguments;return _regenerator.default.wrap(function _callee8$(_context8) {while (1) {switch (_context8.prev = _context8.next) {case 0:t = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};_context8.next = 3;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 3:n = _context8.sent;if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === be.indexOf(e))) {_context8.next = 13;break;}_context8.next = 7;return this.refreshAccessToken();case 7:_context8.next = 9;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 9:_n4 = _context8.sent;if (!_n4.data.code) {_context8.next = 12;break;}throw new B({ code: _n4.data.code, message: _n4.data.message });case 12:return _context8.abrupt("return", _n4.data);case 13:if (!n.data.code) {_context8.next = 15;break;}throw new B({ code: n.data.code, message: n.data.message });case 15:return _context8.abrupt("return", n.data);case 16:case "end":return _context8.stop();}}}, _callee8, this);}));function send(_x7) {return _send.apply(this, arguments);}return send;}() }, { key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys3 = this._cache.keys,t = _this$_cache$keys3.accessTokenKey,n = _this$_cache$keys3.accessTokenExpireKey,s = _this$_cache$keys3.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }]);return Re;}();var Ue = {};function xe(e) {return Ue[e];}var Le = /*#__PURE__*/function () {function Le(e) {_classCallCheck(this, Le);this.config = e, this._cache = ge(e.env), this._request = xe(e.env);}_createClass(Le, [{ key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys4 = this._cache.keys,t = _this$_cache$keys4.accessTokenKey,n = _this$_cache$keys4.accessTokenExpireKey,s = _this$_cache$keys4.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }, { key: "setAccessToken", value: function setAccessToken(e, t) {var _this$_cache$keys5 = this._cache.keys,n = _this$_cache$keys5.accessTokenKey,s = _this$_cache$keys5.accessTokenExpireKey;this._cache.setStore(n, e), this._cache.setStore(s, t);} }, { key: "refreshUserInfo", value: function () {var _refreshUserInfo = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee9() {var _yield$this$_request$, e;return _regenerator.default.wrap(function _callee9$(_context9) {while (1) {switch (_context9.prev = _context9.next) {case 0:_context9.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$ = _context9.sent;e = _yield$this$_request$.data;return _context9.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context9.stop();}}}, _callee9, this);}));function refreshUserInfo() {return _refreshUserInfo.apply(this, arguments);}return refreshUserInfo;}() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e);} }]);return Le;}();var De = /*#__PURE__*/function () {function De(e) {_classCallCheck(this, De);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._envId = e, this._cache = ge(this._envId), this._request = xe(this._envId), this.setUserInfo();}_createClass(De, [{ key: "linkWithTicket", value: function linkWithTicket(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "ticket must be string" });return this._request.send("auth.linkWithTicket", { ticket: e });} }, { key: "linkWithRedirect", value: function linkWithRedirect(e) {e.signInWithRedirect();} }, { key: "updatePassword", value: function updatePassword(e, t) {return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e });} }, { key: "updateEmail", value: function updateEmail(e) {return this._request.send("auth.updateEmail", { newEmail: e });} }, { key: "updateUsername", value: function updateUsername(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "username must be a string" });return this._request.send("auth.updateUsername", { username: e });} }, { key: "getLinkedUidList", value: function () {var _getLinkedUidList = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee10() {var _yield$this$_request$2, e, t, n;return _regenerator.default.wrap(function _callee10$(_context10) {while (1) {switch (_context10.prev = _context10.next) {case 0:_context10.next = 2;return this._request.send("auth.getLinkedUidList", {});case 2:_yield$this$_request$2 = _context10.sent;e = _yield$this$_request$2.data;t = !1;n = e.users;return _context10.abrupt("return", (n.forEach(function (e) {e.wxOpenId && e.wxPublicId && (t = !0);}), { users: n, hasPrimaryUid: t }));case 7:case "end":return _context10.stop();}}}, _callee10, this);}));function getLinkedUidList() {return _getLinkedUidList.apply(this, arguments);}return getLinkedUidList;}() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) {return this._request.send("auth.setPrimaryUid", { uid: e });} }, { key: "unlink", value: function unlink(e) {return this._request.send("auth.unlink", { platform: e });} }, { key: "update", value: function () {var _update = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) {var t, n, s, o, r, i, _yield$this$_request$3, a;return _regenerator.default.wrap(function _callee11$(_context11) {while (1) {switch (_context11.prev = _context11.next) {case 0:t = e.nickName;n = e.gender;s = e.avatarUrl;o = e.province;r = e.country;i = e.city;_context11.next = 8;return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: o, country: r, city: i });case 8:_yield$this$_request$3 = _context11.sent;a = _yield$this$_request$3.data;this.setLocalUserInfo(a);case 11:case "end":return _context11.stop();}}}, _callee11, this);}));function update(_x8) {return _update.apply(this, arguments);}return update;}() }, { key: "refresh", value: function () {var _refresh = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee12() {var _yield$this$_request$4, e;return _regenerator.default.wrap(function _callee12$(_context12) {while (1) {switch (_context12.prev = _context12.next) {case 0:_context12.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$4 = _context12.sent;e = _yield$this$_request$4.data;return _context12.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context12.stop();}}}, _callee12, this);}));function refresh() {return _refresh.apply(this, arguments);}return refresh;}() }, { key: "setUserInfo", value: function setUserInfo() {var _this9 = this;var e = this._cache.keys.userInfoKey,t = this._cache.getStore(e);["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) {_this9[e] = t[e];}), this.location = { country: t.country, province: t.province, city: t.city };} }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e), this.setUserInfo();} }]);return De;}();var Ne = /*#__PURE__*/function () {function Ne(e) {_classCallCheck(this, Ne);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._cache = ge(e);var _this$_cache$keys6 = this._cache.keys,t = _this$_cache$keys6.refreshTokenKey,n = _this$_cache$keys6.accessTokenKey,s = _this$_cache$keys6.accessTokenExpireKey,o = this._cache.getStore(t),r = this._cache.getStore(n),i = this._cache.getStore(s);this.credential = { refreshToken: o, accessToken: r, accessTokenExpire: i }, this.user = new De(e);}_createClass(Ne, [{ key: "isAnonymousAuth", get: function get() {return this.loginType === Ie.ANONYMOUS;} }, { key: "isCustomAuth", get: function get() {return this.loginType === Ie.CUSTOM;} }, { key: "isWeixinAuth", get: function get() {return this.loginType === Ie.WECHAT || this.loginType === Ie.WECHAT_OPEN || this.loginType === Ie.WECHAT_PUBLIC;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return Ne;}();var qe = /*#__PURE__*/function (_Le) {_inherits(qe, _Le);var _super4 = _createSuper(qe);function qe() {_classCallCheck(this, qe);return _super4.apply(this, arguments);}_createClass(qe, [{ key: "signIn", value: function () {var _signIn = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee13() {var _this$_cache$keys7, e, t, n, s, o, _e18;return _regenerator.default.wrap(function _callee13$(_context13) {while (1) {switch (_context13.prev = _context13.next) {case 0:this._cache.updatePersistence("local");_this$_cache$keys7 = this._cache.keys;e = _this$_cache$keys7.anonymousUuidKey;t = _this$_cache$keys7.refreshTokenKey;n = this._cache.getStore(e) || void 0;s = this._cache.getStore(t) || void 0;_context13.next = 8;return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s });case 8:o = _context13.sent;if (!(o.uuid && o.refresh_token)) {_context13.next = 20;break;}this._setAnonymousUUID(o.uuid);this.setRefreshToken(o.refresh_token);_context13.next = 14;return this._request.refreshAccessToken();case 14:we(ve);we(Se, { env: this.config.env, loginType: Ie.ANONYMOUS, persistence: "local" });_e18 = new Ne(this.config.env);_context13.next = 19;return _e18.user.refresh();case 19:return _context13.abrupt("return", _e18);case 20:throw new B({ message: "匿名登录失败" });case 21:case "end":return _context13.stop();}}}, _callee13, this);}));function signIn() {return _signIn.apply(this, arguments);}return signIn;}() }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) {var _this$_cache$keys8, t, n, s, o, r;return _regenerator.default.wrap(function _callee14$(_context14) {while (1) {switch (_context14.prev = _context14.next) {case 0:_this$_cache$keys8 = this._cache.keys;t = _this$_cache$keys8.anonymousUuidKey;n = _this$_cache$keys8.refreshTokenKey;s = this._cache.getStore(t);o = this._cache.getStore(n);_context14.next = 7;return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: o, ticket: e });case 7:r = _context14.sent;if (!r.refresh_token) {_context14.next = 16;break;}this._clearAnonymousUUID();this.setRefreshToken(r.refresh_token);_context14.next = 13;return this._request.refreshAccessToken();case 13:we(Pe, { env: this.config.env });we(Se, { loginType: Ie.CUSTOM, persistence: "local" });return _context14.abrupt("return", { credential: { refreshToken: r.refresh_token } });case 16:throw new B({ message: "匿名转化失败" });case 17:case "end":return _context14.stop();}}}, _callee14, this);}));function linkAndRetrieveDataWithTicket(_x9) {return _linkAndRetrieveDataWithTicket.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) {var _this$_cache$keys9 = this._cache.keys,t = _this$_cache$keys9.anonymousUuidKey,n = _this$_cache$keys9.loginTypeKey;this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, Ie.ANONYMOUS);} }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() {this._cache.removeStore(this._cache.keys.anonymousUuidKey);} }]);return qe;}(Le);var Fe = /*#__PURE__*/function (_Le2) {_inherits(Fe, _Le2);var _super5 = _createSuper(Fe);function Fe() {_classCallCheck(this, Fe);return _super5.apply(this, arguments);}_createClass(Fe, [{ key: "signIn", value: function () {var _signIn2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee15(e) {var t, n;return _regenerator.default.wrap(function _callee15$(_context15) {while (1) {switch (_context15.prev = _context15.next) {case 0:if (!("string" != typeof e)) {_context15.next = 2;break;}throw new B({ param: "PARAM_ERROR", message: "ticket must be a string" });case 2:t = this._cache.keys.refreshTokenKey;_context15.next = 5;return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" });case 5:n = _context15.sent;if (!n.refresh_token) {_context15.next = 15;break;}this.setRefreshToken(n.refresh_token);_context15.next = 10;return this._request.refreshAccessToken();case 10:we(ve);we(Se, { env: this.config.env, loginType: Ie.CUSTOM, persistence: this.config.persistence });_context15.next = 14;return this.refreshUserInfo();case 14:return _context15.abrupt("return", new Ne(this.config.env));case 15:throw new B({ message: "自定义登录失败" });case 16:case "end":return _context15.stop();}}}, _callee15, this);}));function signIn(_x10) {return _signIn2.apply(this, arguments);}return signIn;}() }]);return Fe;}(Le);var Me = /*#__PURE__*/function (_Le3) {_inherits(Me, _Le3);var _super6 = _createSuper(Me);function Me() {_classCallCheck(this, Me);return _super6.apply(this, arguments);}_createClass(Me, [{ key: "signIn", value: function () {var _signIn3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee16(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee16$(_context16) {while (1) {switch (_context16.prev = _context16.next) {case 0:if (!("string" != typeof e)) {_context16.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "email must be a string" });case 2:n = this._cache.keys.refreshTokenKey;_context16.next = 5;return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 5:s = _context16.sent;o = s.refresh_token;r = s.access_token;i = s.access_token_expire;if (!o) {_context16.next = 22;break;}this.setRefreshToken(o);if (!(r && i)) {_context16.next = 15;break;}this.setAccessToken(r, i);_context16.next = 17;break;case 15:_context16.next = 17;return this._request.refreshAccessToken();case 17:_context16.next = 19;return this.refreshUserInfo();case 19:we(ve);we(Se, { env: this.config.env, loginType: Ie.EMAIL, persistence: this.config.persistence });return _context16.abrupt("return", new Ne(this.config.env));case 22:throw s.code ? new B({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "邮箱登录失败" });case 23:case "end":return _context16.stop();}}}, _callee16, this);}));function signIn(_x11, _x12) {return _signIn3.apply(this, arguments);}return signIn;}() }, { key: "activate", value: function () {var _activate = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) {return _regenerator.default.wrap(function _callee17$(_context17) {while (1) {switch (_context17.prev = _context17.next) {case 0:return _context17.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e }));case 1:case "end":return _context17.stop();}}}, _callee17, this);}));function activate(_x13) {return _activate.apply(this, arguments);}return activate;}() }, { key: "resetPasswordWithToken", value: function () {var _resetPasswordWithToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee18(e, t) {return _regenerator.default.wrap(function _callee18$(_context18) {while (1) {switch (_context18.prev = _context18.next) {case 0:return _context18.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t }));case 1:case "end":return _context18.stop();}}}, _callee18, this);}));function resetPasswordWithToken(_x14, _x15) {return _resetPasswordWithToken.apply(this, arguments);}return resetPasswordWithToken;}() }]);return Me;}(Le);var je = /*#__PURE__*/function (_Le4) {_inherits(je, _Le4);var _super7 = _createSuper(je);function je() {_classCallCheck(this, je);return _super7.apply(this, arguments);}_createClass(je, [{ key: "signIn", value: function () {var _signIn4 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee19$(_context19) {while (1) {switch (_context19.prev = _context19.next) {case 0:if (!("string" != typeof e)) {_context19.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:"string" != typeof t && (t = "", console.warn("password is empty"));n = this._cache.keys.refreshTokenKey;_context19.next = 6;return this._request.send("auth.signIn", { loginType: Ie.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 6:s = _context19.sent;o = s.refresh_token;r = s.access_token_expire;i = s.access_token;if (!o) {_context19.next = 23;break;}this.setRefreshToken(o);if (!(i && r)) {_context19.next = 16;break;}this.setAccessToken(i, r);_context19.next = 18;break;case 16:_context19.next = 18;return this._request.refreshAccessToken();case 18:_context19.next = 20;return this.refreshUserInfo();case 20:we(ve);we(Se, { env: this.config.env, loginType: Ie.USERNAME, persistence: this.config.persistence });return _context19.abrupt("return", new Ne(this.config.env));case 23:throw s.code ? new B({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "用户名密码登录失败" });case 24:case "end":return _context19.stop();}}}, _callee19, this);}));function signIn(_x16, _x17) {return _signIn4.apply(this, arguments);}return signIn;}() }]);return je;}(Le);var $e = /*#__PURE__*/function () {function $e(e) {_classCallCheck(this, $e);this.config = e, this._cache = ge(e.env), this._request = xe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), _e(Se, this._onLoginTypeChanged);}_createClass($e, [{ key: "anonymousAuthProvider", value: function anonymousAuthProvider() {return new qe(this.config);} }, { key: "customAuthProvider", value: function customAuthProvider() {return new Fe(this.config);} }, { key: "emailAuthProvider", value: function emailAuthProvider() {return new Me(this.config);} }, { key: "usernameAuthProvider", value: function usernameAuthProvider() {return new je(this.config);} }, { key: "signInAnonymously", value: function () {var _signInAnonymously = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee20() {return _regenerator.default.wrap(function _callee20$(_context20) {while (1) {switch (_context20.prev = _context20.next) {case 0:return _context20.abrupt("return", new qe(this.config).signIn());case 1:case "end":return _context20.stop();}}}, _callee20, this);}));function signInAnonymously() {return _signInAnonymously.apply(this, arguments);}return signInAnonymously;}() }, { key: "signInWithEmailAndPassword", value: function () {var _signInWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) {return _regenerator.default.wrap(function _callee21$(_context21) {while (1) {switch (_context21.prev = _context21.next) {case 0:return _context21.abrupt("return", new Me(this.config).signIn(e, t));case 1:case "end":return _context21.stop();}}}, _callee21, this);}));function signInWithEmailAndPassword(_x18, _x19) {return _signInWithEmailAndPassword.apply(this, arguments);}return signInWithEmailAndPassword;}() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) {return new je(this.config).signIn(e, t);} }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee22(e) {return _regenerator.default.wrap(function _callee22$(_context22) {while (1) {switch (_context22.prev = _context22.next) {case 0:this._anonymousAuthProvider || (this._anonymousAuthProvider = new qe(this.config)), _e(Pe, this._onAnonymousConverted);_context22.next = 3;return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e);case 3:return _context22.abrupt("return", _context22.sent);case 4:case "end":return _context22.stop();}}}, _callee22, this);}));function linkAndRetrieveDataWithTicket(_x20) {return _linkAndRetrieveDataWithTicket2.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "signOut", value: function () {var _signOut = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee23() {var _this$_cache$keys10, e, t, n, s, o;return _regenerator.default.wrap(function _callee23$(_context23) {while (1) {switch (_context23.prev = _context23.next) {case 0:if (!(this.loginType === Ie.ANONYMOUS)) {_context23.next = 2;break;}throw new B({ message: "匿名用户不支持登出操作" });case 2:_this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e);if (s) {_context23.next = 5;break;}return _context23.abrupt("return");case 5:_context23.next = 7;return this._request.send("auth.logout", { refresh_token: s });case 7:o = _context23.sent;return _context23.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), we(ve), we(Se, { env: this.config.env, loginType: Ie.NULL, persistence: this.config.persistence }), o));case 9:case "end":return _context23.stop();}}}, _callee23, this);}));function signOut() {return _signOut.apply(this, arguments);}return signOut;}() }, { key: "signUpWithEmailAndPassword", value: function () {var _signUpWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) {return _regenerator.default.wrap(function _callee24$(_context24) {while (1) {switch (_context24.prev = _context24.next) {case 0:return _context24.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t }));case 1:case "end":return _context24.stop();}}}, _callee24, this);}));function signUpWithEmailAndPassword(_x21, _x22) {return _signUpWithEmailAndPassword.apply(this, arguments);}return signUpWithEmailAndPassword;}() }, { key: "sendPasswordResetEmail", value: function () {var _sendPasswordResetEmail = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) {return _regenerator.default.wrap(function _callee25$(_context25) {while (1) {switch (_context25.prev = _context25.next) {case 0:return _context25.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e }));case 1:case "end":return _context25.stop();}}}, _callee25, this);}));function sendPasswordResetEmail(_x23) {return _sendPasswordResetEmail.apply(this, arguments);}return sendPasswordResetEmail;}() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) {var _this10 = this;_e(ve, function () {var t = _this10.hasLoginState();e.call(_this10, t);});var t = this.hasLoginState();e.call(this, t);} }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) {_e(Te, e.bind(this));} }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) {_e(Ae, e.bind(this));} }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) {_e(Pe, e.bind(this));} }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) {var _this11 = this;_e(Se, function () {var t = _this11.hasLoginState();e.call(_this11, t);});} }, { key: "getAccessToken", value: function () {var _getAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee26() {return _regenerator.default.wrap(function _callee26$(_context26) {while (1) {switch (_context26.prev = _context26.next) {case 0:_context26.next = 2;return this._request.getAccessToken();case 2:_context26.t0 = _context26.sent.accessToken;_context26.t1 = this.config.env;return _context26.abrupt("return", { accessToken: _context26.t0, env: _context26.t1 });case 5:case "end":return _context26.stop();}}}, _callee26, this);}));function getAccessToken() {return _getAccessToken2.apply(this, arguments);}return getAccessToken;}() }, { key: "hasLoginState", value: function hasLoginState() {var e = this._cache.keys.refreshTokenKey;return this._cache.getStore(e) ? new Ne(this.config.env) : null;} }, { key: "isUsernameRegistered", value: function () {var _isUsernameRegistered = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee27(e) {var _yield$this$_request$5, t;return _regenerator.default.wrap(function _callee27$(_context27) {while (1) {switch (_context27.prev = _context27.next) {case 0:if (!("string" != typeof e)) {_context27.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:_context27.next = 4;return this._request.send("auth.isUsernameRegistered", { username: e });case 4:_yield$this$_request$5 = _context27.sent;t = _yield$this$_request$5.data;return _context27.abrupt("return", t && t.isRegistered);case 7:case "end":return _context27.stop();}}}, _callee27, this);}));function isUsernameRegistered(_x24) {return _isUsernameRegistered.apply(this, arguments);}return isUsernameRegistered;}() }, { key: "getLoginState", value: function getLoginState() {return Promise.resolve(this.hasLoginState());} }, { key: "signInWithTicket", value: function () {var _signInWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) {return _regenerator.default.wrap(function _callee28$(_context28) {while (1) {switch (_context28.prev = _context28.next) {case 0:return _context28.abrupt("return", new Fe(this.config).signIn(e));case 1:case "end":return _context28.stop();}}}, _callee28, this);}));function signInWithTicket(_x25) {return _signInWithTicket.apply(this, arguments);}return signInWithTicket;}() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) {this._request._shouldRefreshAccessTokenHook = e.bind(this);} }, { key: "getUserInfo", value: function getUserInfo() {return this._request.send("auth.getUserInfo", {}).then(function (e) {return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId });});} }, { key: "getAuthHeader", value: function getAuthHeader() {var _this$_cache$keys11 = this._cache.keys,e = _this$_cache$keys11.refreshTokenKey,t = _this$_cache$keys11.accessTokenKey,n = this._cache.getStore(e);return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n };} }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) {var t = e.data.env;t === this.config.env && this._cache.updatePersistence(this.config.persistence);} }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) {var _e$data = e.data,t = _e$data.loginType,n = _e$data.persistence,s = _e$data.env;s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t));} }, { key: "currentUser", get: function get() {var e = this.hasLoginState();return e && e.user || null;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return $e;}();var Ke = function Ke(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath,o = e.filePath,r = e.onUploadProgress,_e$fileType = e.fileType,i = _e$fileType === void 0 ? "image" : _e$fileType;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {var _e$data2 = e.data,a = _e$data2.url,c = _e$data2.authorization,u = _e$data2.token,l = _e$data2.fileId,h = _e$data2.cosFileId,d = e.requestId,f = { key: s, signature: c, "x-cos-meta-fileid": h, success_action_status: "201", "x-cos-security-token": u };n.upload({ url: a, data: f, file: o, name: s, fileType: i, onUploadProgress: r }).then(function (e) {201 === e.statusCode ? t(null, { fileID: l, requestId: d }) : t(new B({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) }));}).catch(function (e) {t(e);});}).catch(function (e) {t(e);}), t.promise;},Be = function Be(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {t(null, e);}).catch(function (e) {t(e);}), t.promise;},He = function He(_ref5, t) {var e = _ref5.fileList;if (t = t || ne(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" };var _iterator3 = _createForOfIteratorHelper(e),_step3;try {for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {var _t8 = _step3.value;if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" };}} catch (err) {_iterator3.e(err);} finally {_iterator3.f();}var n = { fileid_list: e };return xe(this.config.env).send("storage.batchDeleteFile", n).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},We = function We(_ref6, t) {var e = _ref6.fileList;t = t || ne(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" });var n = [];var _iterator4 = _createForOfIteratorHelper(e),_step4;try {for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {var _s7 = _step4.value;"object" == typeof _s7 ? (_s7.hasOwnProperty("fileID") && _s7.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ fileid: _s7.fileID, max_age: _s7.maxAge })) : "string" == typeof _s7 ? n.push({ fileid: _s7 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" });}} catch (err) {_iterator4.e(err);} finally {_iterator4.f();}var s = { file_list: n };return xe(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},ze = /*#__PURE__*/function () {var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee29(_ref7, t) {var e, n, s, o;return _regenerator.default.wrap(function _callee29$(_context29) {while (1) {switch (_context29.prev = _context29.next) {case 0:e = _ref7.fileID;_context29.next = 3;return We.call(this, { fileList: [{ fileID: e, maxAge: 600 }] });case 3:n = _context29.sent.fileList[0];if (!("SUCCESS" !== n.code)) {_context29.next = 6;break;}return _context29.abrupt("return", t ? t(n) : new Promise(function (e) {e(n);}));case 6:s = xe(this.config.env);o = n.download_url;if (!(o = encodeURI(o), !t)) {_context29.next = 10;break;}return _context29.abrupt("return", s.download({ url: o }));case 10:_context29.t0 = t;_context29.next = 13;return s.download({ url: o });case 13:_context29.t1 = _context29.sent;(0, _context29.t0)(_context29.t1);case 15:case "end":return _context29.stop();}}}, _callee29, this);}));return function ze(_x26, _x27) {return _ref8.apply(this, arguments);};}(),Je = function Je(_ref9, r) {var e = _ref9.name,t = _ref9.data,n = _ref9.query,s = _ref9.parse,o = _ref9.search;var i = r || ne();var a;try {a = t ? JSON.stringify(t) : "";} catch (e) {return Promise.reject(e);}if (!e) return Promise.reject(new B({ code: "PARAM_ERROR", message: "函数名不能为空" }));var c = { inQuery: n, parse: s, search: o, function_name: e, request_data: a };return xe(this.config.env).send("functions.invokeFunction", c).then(function (e) {if (e.code) i(null, e);else {var _t9 = e.data.response_data;if (s) i(null, { result: _t9, requestId: e.requestId });else try {_t9 = JSON.parse(e.data.response_data), i(null, { result: _t9, requestId: e.requestId });} catch (e) {i(new B({ message: "response data must be json" }));}}return i.promise;}).catch(function (e) {i(e);}), i.promise;},Ve = { timeout: 15e3, persistence: "session" },Ye = {};var Xe = /*#__PURE__*/function () {function Xe(e) {_classCallCheck(this, Xe);this.config = e || this.config, this.authObj = void 0;}_createClass(Xe, [{ key: "init", value: function init(e) {switch (ae.adapter || (this.requestClient = new ae.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, Ve), e), !0) {case this.config.timeout > 6e5:console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5;break;case this.config.timeout < 100:console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100;}return new Xe(this.config);} }, { key: "auth", value: function auth() {var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref10.persistence;if (this.authObj) return this.authObj;var t = e || ae.adapter.primaryStorage || Ve.persistence;var n;return t !== this.config.persistence && (this.config.persistence = t), function (e) {var t = e.env;de[t] = new he(e), fe[t] = new he(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" }));}(this.config), n = this.config, Ue[n.env] = new Re(n), this.authObj = new $e(this.config), this.authObj;} }, { key: "on", value: function on(e, t) {return _e.apply(this, [e, t]);} }, { key: "off", value: function off(e, t) {return ke.apply(this, [e, t]);} }, { key: "callFunction", value: function callFunction(e, t) {return Je.apply(this, [e, t]);} }, { key: "deleteFile", value: function deleteFile(e, t) {return He.apply(this, [e, t]);} }, { key: "getTempFileURL", value: function getTempFileURL(e, t) {return We.apply(this, [e, t]);} }, { key: "downloadFile", value: function downloadFile(e, t) {return ze.apply(this, [e, t]);} }, { key: "uploadFile", value: function uploadFile(e, t) {return Ke.apply(this, [e, t]);} }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) {return Be.apply(this, [e, t]);} }, { key: "registerExtension", value: function registerExtension(e) {Ye[e.name] = e;} }, { key: "invokeExtension", value: function () {var _invokeExtension = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee30(e, t) {var n;return _regenerator.default.wrap(function _callee30$(_context30) {while (1) {switch (_context30.prev = _context30.next) {case 0:n = Ye[e];if (n) {_context30.next = 3;break;}throw new B({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") });case 3:_context30.next = 5;return n.invoke(t, this);case 5:return _context30.abrupt("return", _context30.sent);case 6:case "end":return _context30.stop();}}}, _callee30, this);}));function invokeExtension(_x28, _x29) {return _invokeExtension.apply(this, arguments);}return invokeExtension;}() }, { key: "useAdapters", value: function useAdapters(e) {var _ref11 = ie(e) || {},t = _ref11.adapter,n = _ref11.runtime;t && (ae.adapter = t), n && (ae.runtime = n);} }]);return Xe;}();var Ge = new Xe();function Qe(e, t, n) {void 0 === n && (n = {});var s = /\?/.test(t),o = "";for (var r in n) {"" === o ? !s && (t += "?") : o += "&", o += r + "=" + encodeURIComponent(n[r]);}return /^http(s)?:\/\//.test(t += o) ? t : "" + e + t;}var Ze = /*#__PURE__*/function () {function Ze() {_classCallCheck(this, Ze);}_createClass(Ze, [{ key: "post", value: function post(e) {var t = e.url,n = e.data,s = e.headers;return new Promise(function (e, o) {V.request({ url: Qe("https:", t), data: n, method: "POST", header: s, success: function success(t) {e(t);}, fail: function fail(e) {o(e);} });});} }, { key: "upload", value: function upload(e) {return new Promise(function (t, n) {var s = e.url,o = e.file,r = e.data,i = e.headers,a = e.fileType,c = V.uploadFile({ url: Qe("https:", s), name: "file", formData: Object.assign({}, r), filePath: o, fileType: a, header: i, success: function success(e) {var n = { statusCode: e.statusCode, data: e.data || {} };200 === e.statusCode && r.success_action_status && (n.statusCode = parseInt(r.success_action_status, 10)), t(n);}, fail: function fail(e) {n(new Error(e.errMsg || "uploadFile:fail"));} });"function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) {e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend });});});} }]);return Ze;}();var et = { setItem: function setItem(e, t) {V.setStorageSync(e, t);}, getItem: function getItem(e) {return V.getStorageSync(e);}, removeItem: function removeItem(e) {V.removeStorageSync(e);}, clear: function clear() {V.clearStorageSync();} };var tt = { genAdapter: function genAdapter() {return { root: {}, reqClass: Ze, localStorage: et, primaryStorage: "local" };}, isMatch: function isMatch() {return !0;}, runtime: "uni_app" };Ge.useAdapters(tt);var nt = Ge,st = nt.init;nt.init = function (e) {e.env = e.spaceId;var t = st.call(this, e);t.config.provider = "tencent", t.config.spaceId = e.spaceId;var n = t.auth;return t.auth = function (e) {var t = n.call(this, e);return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) {t[e] = K(t[e]).bind(t);}), t;}, t.customAuth = t.auth, t;};var ot = nt;function rt() {return { token: V.getStorageSync("uni_id_token") || V.getStorageSync("uniIdToken"), tokenExpired: V.getStorageSync("uni_id_token_expired") };}function it() {var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref12.token,t = _ref12.tokenExpired;e && V.setStorageSync("uni_id_token", e), t && V.setStorageSync("uni_id_token_expired", t);}function at() {if (!d || "web" !== g) return;uni.getStorageSync("__LAST_DCLOUD_APPID") !== _ && (uni.setStorageSync("__LAST_DCLOUD_APPID", _), console.warn("检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)"), V.removeStorageSync("uni_id_token"), V.removeStorageSync("uniIdToken"), V.removeStorageSync("uni_id_token_expired"));}var ct = /*#__PURE__*/function (_G) {_inherits(ct, _G);var _super8 = _createSuper(ct);function ct() {_classCallCheck(this, ct);return _super8.apply(this, arguments);}_createClass(ct, [{ key: "getAccessToken", value: function getAccessToken() {var _this12 = this;return new Promise(function (e, t) {var n = "Anonymous_Access_token";_this12.setAccessToken(n), e(n);});} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };"auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret);var o = z();s["x-client-info"] = encodeURIComponent(JSON.stringify(o));var _rt = rt(),r = _rt.token;return s["x-client-token"] = r, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) };} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref13) {var _this13 = this;var e = _ref13.url,t = _ref13.formData,n = _ref13.name,s = _ref13.filePath,o = _ref13.fileType,r = _ref13.onUploadProgress;return new Promise(function (i, a) {var c = _this13.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "uploadFile", value: function uploadFile(_ref14) {var _this14 = this;var e = _ref14.filePath,t = _ref14.cloudPath,_ref14$fileType = _ref14.fileType,n = _ref14$fileType === void 0 ? "image" : _ref14$fileType,s = _ref14.onUploadProgress;if (!t) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" });var o;return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) {var _t$result = t.result,r = _t$result.url,i = _t$result.formData,a = _t$result.name;o = t.result.fileUrl;var c = { url: r, formData: i, name: a, filePath: e, fileType: n };return _this14.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s }));}).then(function () {return _this14.reportOSSUpload({ cloudPath: t });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: o }) : s(new B({ code: "UPLOAD_FAILED", message: "文件上传失败" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref15) {var e = _ref15.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref16.fileList;var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }]);return ct;}(G);var ut = { init: function init(e) {var t = new ct(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };function lt(_ref17) {var e = _ref17.data;var t;t = z();var n = JSON.parse(JSON.stringify(e || {}));if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) {var _rt2 = rt(),_e19 = _rt2.token;_e19 && (n.uniIdToken = _e19);}return n;}function ht() {var _this15 = this;var _ref18 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref18.name,t = _ref18.data;var _this$__dev__ = this.__dev__,n = _this$__dev__.localAddress,s = _this$__dev__.localPort,o = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider],r = this.config.spaceId,i = "http://".concat(n, ":").concat(s, "/system/check-function"),a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e);return new Promise(function (t, n) {V.request({ method: "POST", url: i, data: { name: e, platform: g, provider: o, spaceId: r }, timeout: 3e3, success: function success(e) {t(e);}, fail: function fail() {t({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } });} });}).then(function () {var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref19.data;var _ref20 = e || {},t = _ref20.code,n = _ref20.message;return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" };}).then(function (_ref21) {var n = _ref21.code,s = _ref21.message;if (0 !== n) {switch (n) {case "MODULE_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "FUNCTION_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "ACTION_ENCRYPTED":console.error(s || "需要访问加密的uni-clientDB-action,自动切换为云端环境");break;case "NETWORK_ERROR":{var _e20 = "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下";throw console.error(_e20), new Error(_e20);}case "SWITCH_TO_CLOUD":break;default:{var _e21 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5");throw console.error(_e21), new Error(_e21);}}return _this15._callCloudFunction({ name: e, data: t });}return new Promise(function (e, n) {var s = lt.call(_this15, { data: t });V.request({ method: "POST", url: a, data: { provider: o, platform: g, param: s }, success: function success() {var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref22.statusCode,s = _ref22.data;return !t || t >= 400 ? n(new B({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s });}, fail: function fail(e) {n(new B({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" }));} });});});}var dt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }];var ft = /[\\^$.*+?()[\]{}|]/g,gt = RegExp(ft.source);function pt(e, t, n) {return e.replace(new RegExp((s = t) && gt.test(s) ? s.replace(ft, "\\$&") : s, "g"), n);var s;}function mt(_ref23) {var e = _ref23.functionName,t = _ref23.result,n = _ref23.logPvd;if (this.__dev__.debugLog && t && t.requestId) {var _s8 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId });console.log("[".concat(n, "-request]").concat(_s8, "[/").concat(n, "-request]"));}}function yt(e) {var t = e.callFunction,n = function n(_n5) {var _this16 = this;var s = _n5.name;_n5.data = lt.call(e, { data: _n5.data });var o = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider];return t.call(this, _n5).then(function (e) {return e.errCode = 0, mt.call(_this16, { functionName: s, result: e, logPvd: o }), Promise.resolve(e);}, function (e) {return mt.call(_this16, { functionName: s, result: e, logPvd: o }), e && e.message && (e.message = function () {var _ref24 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref24$message = _ref24.message,e = _ref24$message === void 0 ? "" : _ref24$message,_ref24$extraInfo = _ref24.extraInfo,t = _ref24$extraInfo === void 0 ? {} : _ref24$extraInfo,_ref24$formatter = _ref24.formatter,n = _ref24$formatter === void 0 ? [] : _ref24$formatter;for (var _s9 = 0; _s9 < n.length; _s9++) {var _n$_s = n[_s9],_o3 = _n$_s.rule,_r2 = _n$_s.content,i = _n$_s.mode,_a = e.match(_o3);if (!_a) continue;var _c = _r2;for (var _e22 = 1; _e22 < _a.length; _e22++) {_c = pt(_c, "{$".concat(_e22, "}"), _a[_e22]);}for (var _e23 in t) {_c = pt(_c, "{".concat(_e23, "}"), t[_e23]);}return "replace" === i ? _c : e + _c;}return e;}({ message: "[".concat(_n5.name, "]: ").concat(e.message), formatter: dt, extraInfo: { functionName: s } })), Promise.reject(e);});};e.callFunction = function (t) {var s;d && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && m ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = ht), s = ht) : s = n;var o = s.call(this, t);return Object.defineProperty(o, "result", { get: function get() {return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {};} }), o;};}var _t = Symbol("CLIENT_DB_INTERNAL");function wt(e, t) {return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = _t, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) {if ("_uniClient" === n) return null;if (n in e || "string" != typeof n) {var _t10 = e[n];return "function" == typeof _t10 ? _t10.bind(e) : _t10;}return t.get(e, n, s);} });}function kt(e) {return { on: function on(t, n) {e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n);}, off: function off(t, n) {e[t] = e[t] || [];var s = e[t].indexOf(n);-1 !== s && e[t].splice(s, 1);} };}var vt = ["db.Geo", "db.command", "command.aggregate"];function Tt(e, t) {return vt.indexOf("".concat(e, ".").concat(t)) > -1;}function St(e) {switch (u(e)) {case "array":return e.map(function (e) {return St(e);});case "object":return e._internalType === _t || Object.keys(e).forEach(function (t) {e[t] = St(e[t]);}), e;case "regexp":return { $regexp: { source: e.source, flags: e.flags } };case "date":return { $date: e.toISOString() };default:return e;}}function Pt(e) {return e && e.content && e.content.$method;}var At = /*#__PURE__*/function () {function At(e, t, n) {_classCallCheck(this, At);this.content = e, this.prevStage = t || null, this.udb = null, this._database = n;}_createClass(At, [{ key: "toJSON", value: function toJSON() {var e = this;var t = [e.content];for (; e.prevStage;) {e = e.prevStage, t.push(e.content);}return { $db: t.reverse().map(function (e) {return { $method: e.$method, $param: St(e.$param) };}) };} }, { key: "getAction", value: function getAction() {var e = this.toJSON().$db.find(function (e) {return "action" === e.$method;});return e && e.$param && e.$param[0];} }, { key: "getCommand", value: function getCommand() {return { $db: this.toJSON().$db.filter(function (e) {return "action" !== e.$method;}) };} }, { key: "get", value: function get() {return this._send("get", Array.from(arguments));} }, { key: "add", value: function add() {return this._send("add", Array.from(arguments));} }, { key: "update", value: function update() {return this._send("update", Array.from(arguments));} }, { key: "end", value: function end() {return this._send("end", Array.from(arguments));} }, { key: "_send", value: function _send(e, t) {var n = this.getAction(),s = this.getCommand();if (s.$db.push({ $method: e, $param: St(t) }), d) {var _e24 = s.$db.find(function (e) {return "collection" === e.$method;}),_t11 = _e24 && _e24.$param;_t11 && 1 === _t11.length && "string" == typeof _e24.$param[0] && _e24.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。");}return this._database._callCloudFunction({ action: n, command: s });} }, { key: "isAggregate", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n6 = Pt(e.prevStage);if ("aggregate" === t && "collection" === _n6 || "pipeline" === t) return !0;e = e.prevStage;}return !1;} }, { key: "isCommand", get: function get() {var e = this;for (; e;) {if ("command" === Pt(e)) return !0;e = e.prevStage;}return !1;} }, { key: "isAggregateCommand", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n7 = Pt(e.prevStage);if ("aggregate" === t && "command" === _n7) return !0;e = e.prevStage;}return !1;} }, { key: "count", get: function get() {if (!this.isAggregate) return function () {return this._send("count", Array.from(arguments));};var e = this;return function () {return It({ $method: "count", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "remove", get: function get() {if (!this.isCommand) return function () {return this._send("remove", Array.from(arguments));};var e = this;return function () {return It({ $method: "remove", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "set", get: function get() {if (!this.isCommand) return function () {throw new Error("JQL禁止使用set方法");};var e = this;return function () {return It({ $method: "set", $param: St(Array.from(arguments)) }, e, this._database);};} }]);return At;}();function It(e, t, n) {return wt(new At(e, t, n), { get: function get(e, t) {var s = "db";return e && e.content && (s = e.content.$method), Tt(s, t) ? It({ $method: t }, e, n) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, e, n);};} });}function bt(_ref25) {var e = _ref25.path,t = _ref25.method;return /*#__PURE__*/function () {function _class2() {_classCallCheck(this, _class2);this.param = Array.from(arguments);}_createClass(_class2, [{ key: "toJSON", value: function toJSON() {return { $newDb: [].concat(_toConsumableArray(e.map(function (e) {return { $method: e };})), [{ $method: t, $param: this.param }]) };} }]);return _class2;}();}var Ot = /*#__PURE__*/function (_ref26) {_inherits(Ot, _ref26);var _super9 = _createSuper(Ot);function Ot() {_classCallCheck(this, Ot);return _super9.apply(this, arguments);}_createClass(Ot, [{ key: "_callCloudFunction", value: function _callCloudFunction(_ref27) {var _this17 = this;var e = _ref27.action,t = _ref27.command,n = _ref27.multiCommand,s = _ref27.queryList;function o(e, t) {if (n && s) for (var _n8 = 0; _n8 < s.length; _n8++) {var _o4 = s[_n8];_o4.udb && "function" == typeof _o4.udb.setResult && (t ? _o4.udb.setResult(t) : _o4.udb.setResult(e.result.dataList[_n8]));}}var r = this;function i(e) {return r._callback("error", [e]), A(I("database", "fail"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(null, e), F(C, { type: U, content: e }), Promise.reject(e);});}var a = A(I("database", "invoke")),u = this._uniClient;return a.then(function () {return u.callFunction({ name: "DCloud-clientDB", type: c, data: { action: e, command: t, multiCommand: n } });}).then(function (e) {var _e$result = e.result,t = _e$result.code,n = _e$result.message,s = _e$result.token,r = _e$result.tokenExpired,_e$result$systemInfo = _e$result.systemInfo,a = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo;if (a) for (var _e25 = 0; _e25 < a.length; _e25++) {var _a$_e = a[_e25],_t12 = _a$_e.level,_n9 = _a$_e.message,_s10 = _a$_e.detail,_o5 = console["app" === g && "warn" === _t12 ? "error" : _t12] || console.log;var _r3 = "[System Info]" + _n9;_s10 && (_r3 = "".concat(_r3, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s10)), _o5(_r3);}if (t) {return i(new B({ code: t, message: n, requestId: e.requestId }));}e.result.errCode = e.result.code, e.result.errMsg = e.result.message, s && r && (it({ token: s, tokenExpired: r }), _this17._callbackAuth("refreshToken", [{ token: s, tokenExpired: r }]), _this17._callback("refreshToken", [{ token: s, tokenExpired: r }]), F(R, { token: s, tokenExpired: r }));var c = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }];var _loop = function _loop(_t13) {var _c$_t = c[_t13],n = _c$_t.prop,s = _c$_t.tips;if (n in e.result) {var _t14 = e.result[n];Object.defineProperty(e.result, n, { get: function get() {return console.warn(s), _t14;} });}};for (var _t13 = 0; _t13 < c.length; _t13++) {_loop(_t13);}return function (e) {return A(I("database", "success"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(e, null), F(C, { type: U, content: e }), Promise.resolve(e);});}(e);}, function (e) {/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB");return i(new B({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId }));});} }]);return Ot;}( /*#__PURE__*/function () {function _class3() {var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref28$uniClient = _ref28.uniClient,e = _ref28$uniClient === void 0 ? {} : _ref28$uniClient;_classCallCheck(this, _class3);this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e.isDefault && (this._dbCallBacks = k("_globalUniCloudDatabaseCallback")), this.auth = kt(this._authCallBacks), Object.assign(this, kt(this._dbCallBacks)), this.env = wt({}, { get: function get(e, t) {return { $env: t };} }), this.Geo = wt({}, { get: function get(e, t) {return bt({ path: ["Geo"], method: t });} }), this.serverDate = bt({ path: [], method: "serverDate" }), this.RegExp = bt({ path: [], method: "RegExp" });}_createClass(_class3, [{ key: "getCloudEnv", value: function getCloudEnv(e) {if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv参数错误");return { $env: e.replace("$cloudEnv_", "") };} }, { key: "_callback", value: function _callback(e, t) {var n = this._dbCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "_callbackAuth", value: function _callbackAuth(e, t) {var n = this._authCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "multiSend", value: function multiSend() {var e = Array.from(arguments),t = e.map(function (e) {var t = e.getAction(),n = e.getCommand();if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend只支持子命令内使用getTemp");return { action: t, command: n };});return this._callCloudFunction({ multiCommand: t, queryList: e });} }]);return _class3;}());function Ct(e) {e.database = function (t) {if (t && Object.keys(t).length > 0) return e.init(t).database();if (this._database) return this._database;var n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return wt(new e(t), { get: function get(e, t) {return Tt("db", t) ? It({ $method: t }, null, e) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, null, e);};} });}(Ot, { uniClient: e });return this._database = n, n;};}var Et = "token无效,跳转登录页面",Rt = "token过期,跳转登录页面",Ut = { TOKEN_INVALID_TOKEN_EXPIRED: Rt, TOKEN_INVALID_INVALID_CLIENTID: Et, TOKEN_INVALID: Et, TOKEN_INVALID_WRONG_TOKEN: Et, TOKEN_INVALID_ANONYMOUS_USER: Et },xt = { "uni-id-token-expired": Rt, "uni-id-check-token-failed": Et, "uni-id-token-not-exist": Et, "uni-id-check-device-feature-failed": Et };function Lt(e, t) {var n = "";return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, "");}function Dt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";var n = [],s = [];return e.forEach(function (e) {!0 === e.needLogin ? n.push(Lt(t, e.path)) : !1 === e.needLogin && s.push(Lt(t, e.path));}), { needLoginPage: n, notNeedLoginPage: s };}function Nt(e) {return e.split("?")[0].replace(/^\//, "");}function qt() {return function (e) {var t = e && e.$page && e.$page.fullPath || "";return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t;}(function () {var e = getCurrentPages();return e[e.length - 1];}());}function Ft() {return Nt(qt());}function Mt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};if (!e) return !1;if (!(t && t.list && t.list.length)) return !1;var n = t.list,s = Nt(e);return n.some(function (e) {return e.pagePath === s;});}var jt = !!_pages.default.uniIdRouter;var _ref29 = function () {var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default,_ref30$pages = _ref30.pages,e = _ref30$pages === void 0 ? [] : _ref30$pages,_ref30$subPackages = _ref30.subPackages,n = _ref30$subPackages === void 0 ? [] : _ref30$subPackages,_ref30$uniIdRouter = _ref30.uniIdRouter,s = _ref30$uniIdRouter === void 0 ? {} : _ref30$uniIdRouter,_ref30$tabBar = _ref30.tabBar,o = _ref30$tabBar === void 0 ? {} : _ref30$tabBar;var r = s.loginPage,_s$needLogin = s.needLogin,i = _s$needLogin === void 0 ? [] : _s$needLogin,_s$resToLogin = s.resToLogin,a = _s$resToLogin === void 0 ? !0 : _s$resToLogin,_Dt = Dt(e),c = _Dt.needLoginPage,u = _Dt.notNeedLoginPage,_ref31 = function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = [],n = [];return e.forEach(function (e) {var s = e.root,_e$pages = e.pages,o = _e$pages === void 0 ? [] : _e$pages,_Dt2 = Dt(o, s),r = _Dt2.needLoginPage,i = _Dt2.notNeedLoginPage;t.push.apply(t, _toConsumableArray(r)), n.push.apply(n, _toConsumableArray(i));}), { needLoginPage: t, notNeedLoginPage: n };}(n),l = _ref31.needLoginPage,h = _ref31.notNeedLoginPage;return { loginPage: r, routerNeedLogin: i, resToLogin: a, needLoginPage: [].concat(_toConsumableArray(c), _toConsumableArray(l)), notNeedLoginPage: [].concat(_toConsumableArray(u), _toConsumableArray(h)), loginPageInTabBar: Mt(r, o) };}(),$t = _ref29.loginPage,Kt = _ref29.routerNeedLogin,Bt = _ref29.resToLogin,Ht = _ref29.needLoginPage,Wt = _ref29.notNeedLoginPage,zt = _ref29.loginPageInTabBar;if (Ht.indexOf($t) > -1) throw new Error("Login page [".concat($t, "] should not be \"needLogin\", please check your pages.json"));function Jt(e) {var t = Nt(function (e) {var t = Ft(),n = e.charAt(0),s = e.split("?")[0];if ("/" === n) return s;var o = s.replace(/^\//, "").split("/"),r = t.split("/");r.pop();for (var _e26 = 0; _e26 < o.length; _e26++) {var _t15 = o[_e26];".." === _t15 ? r.pop() : "." !== _t15 && r.push(_t15);}return "" === r[0] && r.shift(), r.join("/");}(e));return !(Wt.indexOf(t) > -1) && (Ht.indexOf(t) > -1 || Kt.some(function (t) {return function (e, t) {return new RegExp(t).test(e);}(e, t);}));}function Vt(_ref32) {var e = _ref32.redirect;var t = Nt(e),n = Nt($t);return Ft() !== n && t !== n;}function Yt() {var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref33.api,t = _ref33.redirect;if (!t || !Vt({ redirect: t })) return;var n = function (e, t) {return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e;}($t, t);zt ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"), setTimeout(function () {uni[e]({ url: n });});}function Xt() {var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref34.url;var t = { abortLoginPageJump: !1, autoToLoginPage: !1 },n = function () {var _rt3 = rt(),e = _rt3.token,t = _rt3.tokenExpired;var n;if (e) {if (t < Date.now()) {var _e27 = "uni-id-token-expired";n = { errCode: _e27, errMsg: xt[_e27] };}} else {var _e28 = "uni-id-check-token-failed";n = { errCode: _e28, errMsg: xt[_e28] };}return n;}();if (Jt(e) && n) {n.uniIdRedirectUrl = e;if (D(E).length > 0) return setTimeout(function () {F(E, n);}, 0), t.abortLoginPageJump = !0, t;t.autoToLoginPage = !0;}return t;}function Gt() {!function () {var e = qt(),_Xt = Xt({ url: e }),t = _Xt.abortLoginPageJump,n = _Xt.autoToLoginPage;t || n && Yt({ api: "redirectTo", redirect: e });}();var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];var _loop2 = function _loop2(_t16) {var n = e[_t16];uni.addInterceptor(n, { invoke: function invoke(e) {var _Xt2 = Xt({ url: e.url }),t = _Xt2.abortLoginPageJump,s = _Xt2.autoToLoginPage;return t ? e : s ? (Yt({ api: n, redirect: e.url }), !1) : e;} });};for (var _t16 = 0; _t16 < e.length; _t16++) {_loop2(_t16);}}function Qt() {this.onResponse(function (e) {var t = e.type,n = e.content;var s = !1;switch (t) {case "cloudobject":s = function (e) {var t = e.errCode;return t in xt;}(n);break;case "clientdb":s = function (e) {var t = e.errCode;return t in Ut;}(n);}s && function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var t = D(E);$().then(function () {var n = qt();if (n && Vt({ redirect: n })) return t.length > 0 ? F(E, Object.assign({ uniIdRedirectUrl: n }, e)) : void ($t && Yt({ api: "navigateTo", redirect: n }));});}(n);});}function Zt(e) {!function (e) {e.onResponse = function (e) {N(C, e);}, e.offResponse = function (e) {q(C, e);};}(e), function (e) {e.onNeedLogin = function (e) {N(E, e);}, e.offNeedLogin = function (e) {q(E, e);}, jt && (k("uni-cloud-status").needLoginInit || (k("uni-cloud-status").needLoginInit = !0, $().then(function () {Gt.call(e);}), Bt && Qt.call(e)));}(e), function (e) {e.onRefreshToken = function (e) {N(R, e);}, e.offRefreshToken = function (e) {q(R, e);};}(e);}var en;var tn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",nn = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;function sn() {var e = rt().token || "",t = e.split(".");if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 };var n;try {n = JSON.parse((s = t[1], decodeURIComponent(en(s).split("").map(function (e) {return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2);}).join(""))));} catch (e) {throw new Error("获取当前用户信息出错,详细错误信息为:" + e.message);}var s;return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n;}en = "function" != typeof atob ? function (e) {if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !nn.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");var t;e += "==".slice(2 - (3 & e.length));for (var n, s, o = "", r = 0; r < e.length;) {t = tn.indexOf(e.charAt(r++)) << 18 | tn.indexOf(e.charAt(r++)) << 12 | (n = tn.indexOf(e.charAt(r++))) << 6 | (s = tn.indexOf(e.charAt(r++))), o += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t);}return o;} : atob;var on = s(function (e, t) {Object.defineProperty(t, "__esModule", { value: !0 });var n = "chooseAndUploadFile:ok",s = "chooseAndUploadFile:fail";function o(e, t) {return e.tempFiles.forEach(function (e, n) {e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf("."));}), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) {return e.path;})), e;}function r(e, t, _ref35) {var s = _ref35.onChooseFile,o = _ref35.onUploadProgress;return t.then(function (e) {if (s) {var _t17 = s(e);if (void 0 !== _t17) return Promise.resolve(_t17).then(function (t) {return void 0 === t ? e : t;});}return e;}).then(function (t) {return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) {var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;var o = arguments.length > 3 ? arguments[3] : undefined;(t = Object.assign({}, t)).errMsg = n;var r = t.tempFiles,i = r.length;var a = 0;return new Promise(function (n) {for (; a < s;) {c();}function c() {var s = a++;if (s >= i) return void (!r.find(function (e) {return !e.url && !e.errMsg;}) && n(t));var u = r[s];e.uploadFile({ filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, onUploadProgress: function onUploadProgress(e) {e.index = s, e.tempFile = u, e.tempFilePath = u.path, o && o(e);} }).then(function (e) {u.url = e.fileID, s < i && c();}).catch(function (e) {u.errMsg = e.errMsg || e.message, s < i && c();});}});}(e, t, 5, o);});}t.initChooseAndUploadFile = function (e) {return function () {var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" };return "image" === t.type ? r(e, function (e) {var t = e.count,n = e.sizeType,_e$sourceType = e.sourceType,r = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType,i = e.extension;return new Promise(function (e, a) {uni.chooseImage({ count: t, sizeType: n, sourceType: r, extension: i, success: function success(t) {e(o(t, "image"));}, fail: function fail(e) {a({ errMsg: e.errMsg.replace("chooseImage:fail", s) });} });});}(t), t) : "video" === t.type ? r(e, function (e) {var t = e.camera,n = e.compressed,r = e.maxDuration,_e$sourceType2 = e.sourceType,i = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2,a = e.extension;return new Promise(function (e, c) {uni.chooseVideo({ camera: t, compressed: n, maxDuration: r, sourceType: i, extension: a, success: function success(t) {var n = t.tempFilePath,s = t.duration,r = t.size,i = t.height,a = t.width;e(o({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: r, type: t.tempFile && t.tempFile.type || "", width: a, height: i, duration: s, fileType: "video", cloudPath: "" }] }, "video"));}, fail: function fail(e) {c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) });} });});}(t), t) : r(e, function (e) {var t = e.count,n = e.extension;return new Promise(function (e, r) {var i = uni.chooseFile;if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (i = wx.chooseMessageFile), "function" != typeof i) return r({ errMsg: s + " 请指定 type 类型,该平台仅支持选择 image 或 video。" });i({ type: "all", count: t, extension: n, success: function success(t) {e(o(t));}, fail: function fail(e) {r({ errMsg: e.errMsg.replace("chooseFile:fail", s) });} });});}(t), t);};};}),rn = n(on);var an = "manual";function cn(e) {return { props: { localdata: { type: Array, default: function _default() {return [];} }, options: { type: [Object, Array], default: function _default() {return {};} }, spaceInfo: { type: Object, default: function _default() {return {};} }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() {return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} };}, created: function created() {var _this18 = this;this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () {var e = [];return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) {e.push(_this18[t]);}), e;}, function (e, t) {if (_this18.loadtime === an) return;var n = !1;var s = [];for (var _o6 = 2; _o6 < e.length; _o6++) {e[_o6] !== t[_o6] && (s.push(e[_o6]), n = !0);}e[0] !== t[0] && (_this18.mixinDatacomPage.current = _this18.pageCurrent), _this18.mixinDatacomPage.size = _this18.pageSize, _this18.onMixinDatacomPropsChange(n, s);});}, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() {var _this19 = this;var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref36$getone = _ref36.getone,e = _ref36$getone === void 0 ? !1 : _ref36$getone,t = _ref36.success,n = _ref36.fail;this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) {_this19.mixinDatacomLoading = !1;var _n$result = n.result,s = _n$result.data,o = _n$result.count;_this19.getcount && (_this19.mixinDatacomPage.count = o), _this19.mixinDatacomHasMore = s.length < _this19.pageSize;var r = e ? s.length ? s[0] : void 0 : s;_this19.mixinDatacomResData = r, t && t(r);}).catch(function (e) {_this19.mixinDatacomLoading = !1, _this19.mixinDatacomErrorMessage = e, n && n(e);}));}, mixinDatacomGet: function mixinDatacomGet() {var _n10;var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var n = e.database(this.spaceInfo);var s = t.action || this.action;s && (n = n.action(s));var o = t.collection || this.collection;n = Array.isArray(o) ? (_n10 = n).collection.apply(_n10, _toConsumableArray(o)) : n.collection(o);var r = t.where || this.where;r && Object.keys(r).length && (n = n.where(r));var i = t.field || this.field;i && (n = n.field(i));var a = t.foreignKey || this.foreignKey;a && (n = n.foreignKey(a));var c = t.groupby || this.groupby;c && (n = n.groupBy(c));var u = t.groupField || this.groupField;u && (n = n.groupField(u));!0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct());var l = t.orderby || this.orderby;l && (n = n.orderBy(l));var h = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current,d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size,f = void 0 !== t.getcount ? t.getcount : this.getcount,g = void 0 !== t.gettree ? t.gettree : this.gettree,p = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath,m = { getCount: f },y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith };return g && (m.getTree = y), p && (m.getTreePath = y), n = n.skip(d * (h - 1)).limit(d).get(m), n;} } };}function un(e) {return function (t) {var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return e.customUI = t.customUI || e.customUI, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == typeof t.secretMethods && (e.secretMethods = t.secretMethods), e;}({ customUI: !1, loadingOptions: { title: "加载中...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n);var _n11 = n,s = _n11.customUI,o = _n11.loadingOptions,r = _n11.errorOptions,i = !s;return new Proxy({}, { get: function get(s, c) {return function () {var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref37.fn,t = _ref37.interceptorName,n = _ref37.getCallbackArgs;return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee31() {var _len,s,_key,o,r,i,_args31 = arguments;return _regenerator.default.wrap(function _callee31$(_context31) {while (1) {switch (_context31.prev = _context31.next) {case 0:for (_len = _args31.length, s = new Array(_len), _key = 0; _key < _len; _key++) {s[_key] = _args31[_key];}o = n ? n({ params: s }) : {};_context31.prev = 2;_context31.next = 5;return A(I(t, "invoke"), _objectSpread({}, o));case 5:_context31.next = 7;return e.apply(void 0, s);case 7:r = _context31.sent;_context31.next = 10;return A(I(t, "success"), _objectSpread(_objectSpread({}, o), {}, { result: r }));case 10:return _context31.abrupt("return", r);case 13:_context31.prev = 13;_context31.t0 = _context31["catch"](2);i = _context31.t0;_context31.next = 18;return A(I(t, "fail"), _objectSpread(_objectSpread({}, o), {}, { error: i }));case 18:throw i;case 19:_context31.prev = 19;_context31.next = 22;return A(I(t, "complete"), i ? _objectSpread(_objectSpread({}, o), {}, { error: i }) : _objectSpread(_objectSpread({}, o), {}, { result: r }));case 22:return _context31.finish(19);case 23:case "end":return _context31.stop();}}}, _callee31, null, [[2, 13, 19, 23]]);}));}({ fn: function () {var _s11 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee33() {var l,_len2,u,_key2,h,_ref39,d,f,g,_yield,_e30,_e29,_args33 = arguments;return _regenerator.default.wrap(function _callee33$(_context33) {while (1) {switch (_context33.prev = _context33.next) {case 0:i && uni.showLoading({ title: o.title, mask: o.mask });for (_len2 = _args33.length, u = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {u[_key2] = _args33[_key2];}h = { name: t, type: a, data: { method: c, params: u } };"object" == typeof n.secretMethods && function (e, t) {var n = t.data.method,s = e.secretMethods[n];s && (t.secret = s);}(n, h);_context33.prev = 4;_context33.next = 7;return e.callFunction(h);case 7:l = _context33.sent;_context33.next = 13;break;case 10:_context33.prev = 10;_context33.t0 = _context33["catch"](4);l = { result: _context33.t0 };case 13:_ref39 = l.result || {}, d = _ref39.errCode, f = _ref39.errMsg, g = _ref39.newToken;if (!(i && uni.hideLoading(), g && g.token && g.tokenExpired && (it(g), F(R, _objectSpread({}, g))), d)) {_context33.next = 30;break;}if (!i) {_context33.next = 28;break;}if (!("toast" === r.type)) {_context33.next = 20;break;}uni.showToast({ title: f, icon: "none" });_context33.next = 28;break;case 20:if (!("modal" !== r.type)) {_context33.next = 22;break;}throw new Error("Invalid errorOptions.type: ".concat(r.type));case 22:_context33.next = 24;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee32() {var _ref41,e,t,n,s,o,_args32 = arguments;return _regenerator.default.wrap(function _callee32$(_context32) {while (1) {switch (_context32.prev = _context32.next) {case 0:_ref41 = _args32.length > 0 && _args32[0] !== undefined ? _args32[0] : {}, e = _ref41.title, t = _ref41.content, n = _ref41.showCancel, s = _ref41.cancelText, o = _ref41.confirmText;return _context32.abrupt("return", new Promise(function (r, i) {uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: o, success: function success(e) {r(e);}, fail: function fail() {r({ confirm: !1, cancel: !0 });} });}));case 2:case "end":return _context32.stop();}}}, _callee32);}))({ title: "提示", content: f, showCancel: r.retry, cancelText: "取消", confirmText: r.retry ? "重试" : "确定" });case 24:_yield = _context33.sent;_e30 = _yield.confirm;if (!(r.retry && _e30)) {_context33.next = 28;break;}return _context33.abrupt("return", s.apply(void 0, u));case 28:_e29 = new B({ code: d, message: f, requestId: l.requestId });throw _e29.detail = l.result, F(C, { type: L, content: _e29 }), _e29;case 30:return _context33.abrupt("return", (F(C, { type: L, content: l.result }), l.result));case 31:case "end":return _context33.stop();}}}, _callee33, null, [[4, 10]]);}));function s() {return _s11.apply(this, arguments);}return s;}(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() {var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref42.params;return { objectName: t, methodName: c, params: e };} });} });};}function ln(_x30, _x31) {return _ln.apply(this, arguments);}function _ln() {_ln = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee35(e, t) {var n, _e34, s;return _regenerator.default.wrap(function _callee35$(_context35) {while (1) {switch (_context35.prev = _context35.next) {case 0:n = "http://".concat(e, ":").concat(t, "/system/ping");_context35.prev = 1;_context35.next = 4;return s = { url: n, timeout: 500 }, new Promise(function (e, t) {V.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) {e(t);}, fail: function fail(e) {t(e);} }));});case 4:_e34 = _context35.sent;return _context35.abrupt("return", !(!_e34.data || 0 !== _e34.data.code));case 8:_context35.prev = 8;_context35.t0 = _context35["catch"](1);return _context35.abrupt("return", !1);case 11:case "end":return _context35.stop();}}}, _callee35, null, [[1, 8]]);}));return _ln.apply(this, arguments);}function hn(e) {if (e.initUniCloudStatus && "rejected" !== e.initUniCloudStatus) return;var t = Promise.resolve();var n;n = 1, t = new Promise(function (e, t) {setTimeout(function () {e();}, n);}), e.isReady = !1, e.isDefault = !1;var s = e.auth();e.initUniCloudStatus = "pending", e.initUniCloud = t.then(function () {return s.getLoginState();}).then(function (e) {return e ? Promise.resolve() : s.signInAnonymously();}).then(function () {if (!d) return Promise.resolve();if ("app" === g) {var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),_e31 = _uni$getSystemInfoSyn.osName,_t18 = _uni$getSystemInfoSyn.osVersion;"ios" === _e31 && function (e) {if (!e || "string" != typeof e) return 0;var t = e.match(/^(\d+)./);return t && t[1] ? parseInt(t[1]) : 0;}(_t18) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)");}if (d && e.__dev__.debugInfo) {var _e$__dev__$debugInfo = e.__dev__.debugInfo,_t19 = _e$__dev__$debugInfo.address,_n12 = _e$__dev__$debugInfo.servePort;return function () {var _ref43 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee34(e, t) {var n, _s12, _o7;return _regenerator.default.wrap(function _callee34$(_context34) {while (1) {switch (_context34.prev = _context34.next) {case 0:_s12 = 0;case 1:if (!(_s12 < e.length)) {_context34.next = 11;break;}_o7 = e[_s12];_context34.next = 5;return ln(_o7, t);case 5:if (!_context34.sent) {_context34.next = 8;break;}n = _o7;return _context34.abrupt("break", 11);case 8:_s12++;_context34.next = 1;break;case 11:return _context34.abrupt("return", { address: n, port: t });case 12:case "end":return _context34.stop();}}}, _callee34);}));return function (_x32, _x33) {return _ref43.apply(this, arguments);};}()(_t19, _n12);}}).then(function () {var _ref44 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref44.address,n = _ref44.port;if (!d) return Promise.resolve();var s = console["app" === g ? "error" : "warn"];if (t) e.__dev__.localAddress = t, e.__dev__.localPort = n;else if (e.__dev__.debugInfo) {var _t20 = "";"remote" === e.__dev__.debugInfo.initialLaunchType ? (e.__dev__.debugInfo.forceRemote = !0, _t20 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs") : _t20 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs", "web" === g && (_t20 += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === g.indexOf("mp-") && (_t20 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), s(_t20);}}).then(function () {at(), e.isReady = !0, e.initUniCloudStatus = "fulfilled";}).catch(function (t) {console.error(t), e.initUniCloudStatus = "rejected";});}var dn = { tcb: ot, tencent: ot, aliyun: Q, private: ut };var fn = new ( /*#__PURE__*/function () {function _class4() {_classCallCheck(this, _class4);}_createClass(_class4, [{ key: "init", value: function init(e) {var t = {};var n = dn[e.provider];if (!n) throw new Error("未提供正确的provider参数");t = n.init(e), t.__dev__ = {}, t.__dev__.debugLog = d && ("web" === g && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === g);var s = p;d && s && !s.code && (t.__dev__.debugInfo = s), hn(t), t.reInit = function () {hn(this);}, yt(t), function (e) {var t = e.uploadFile;e.uploadFile = function (e) {return t.call(this, e);};}(t), Ct(t), function (e) {e.getCurrentUserInfo = sn, e.chooseAndUploadFile = rn.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() {return cn(e);} }), e.importObject = un(e);}(t);return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) {if (!t[e]) return;var n = t[e];t[e] = function () {return t.reInit(), n.apply(t, Array.from(arguments));}, t[e] = K(t[e], e).bind(t);}), t.init = this.init, t;} }]);return _class4;}())();(function () {var e = m;var t = {};if (e && 1 === e.length) t = e[0], fn = fn.init(t), fn.isDefault = !0;else {var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];var _n13;_n13 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : y ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t21.forEach(function (e) {fn[e] = function () {return console.error(_n13), Promise.reject(new B({ code: "SYS_ERR", message: _n13 }));};});}Object.assign(fn, { get mixinDatacom() {return cn(fn);} }), Zt(fn), fn.addInterceptor = S, fn.removeInterceptor = P, fn.interceptObject = b, d && "web" === g && (window.uniCloud = fn);})();var gn = fn;exports.default = gn; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 59), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 60)["default"])) /***/ }), /* 59 */ /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 60 */ /*!*********************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/mp.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports, "__esModule", { value: true });exports.Behavior = Behavior;exports.Component = Component;exports.Page = Page;exports.nextTick = exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 61));var _PROP_DEFAULT_VALUES;function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;} function parseData(data, vueComponentOptions) { if (!data) { return; } vueComponentOptions.mpOptions.data = data; } function parseComponents(vueComponentOptions) { vueComponentOptions.components = global.__wxVueOptions.components; } var _toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; function isFn(fn) { return typeof fn === 'function'; } function isPlainObject(obj) { return _toString.call(obj) === '[object Object]'; } function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } function noop() {} /** * Create a cached version of a pure function. */ function cached(fn) { var cache = Object.create(null); return function cachedFn(str) { var hit = cache[str]; return hit || (cache[str] = fn(str)); }; } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : '';}); }); var SOURCE_KEY = '__data__'; var COMPONENT_LIFECYCLE = { created: 'onServiceCreated', attached: 'onServiceAttached', ready: 'mounted', moved: 'moved', detached: 'destroyed' }; var COMPONENT_LIFECYCLE_KEYS = Object.keys(COMPONENT_LIFECYCLE); var PAGE_LIFETIMES = { show: 'onPageShow', hide: 'onPageHide', resize: 'onPageResize' }; var PAGE_LIFETIMES_KEYS = Object.keys(PAGE_LIFETIMES); var PAGE_LIFECYCLE = [ 'onLoad', 'onShow', 'onReady', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onPageScroll', 'onResize', 'onTabItemTap']; function parsePageMethods(mpComponentOptions, vueComponentOptions) { var methods = Object.create(null); Object.keys(mpComponentOptions).forEach(function (key) { var value = mpComponentOptions[key]; if (isFn(value) && PAGE_LIFECYCLE.indexOf(key) === -1) { methods[key] = value; } }); vueComponentOptions.methods = methods; } function parsePageLifecycle(mpComponentOptions, vueComponentOptions) { Object.keys(mpComponentOptions).forEach(function (key) { if (PAGE_LIFECYCLE.indexOf(key) !== -1) { vueComponentOptions[key] = mpComponentOptions[key]; } }); } function parsePage(mpComponentOptions) { var vueComponentOptions = { mixins: [], mpOptions: {} }; parseComponents(vueComponentOptions); parseData(mpComponentOptions.data, vueComponentOptions); parsePageMethods(mpComponentOptions, vueComponentOptions); parsePageLifecycle(mpComponentOptions, vueComponentOptions); return vueComponentOptions; } function parseProperties(properties, vueComponentOptions) { if (!properties) { return; } vueComponentOptions.mpOptions.properties = properties; } function parseOptions(options, vueComponentOptions) { if (!options) { return; } vueComponentOptions.mpOptions.options = options; } function parseMethods(methods, vueComponentOptions) { if (!methods) { return; } if (methods.$emit) { console.warn('Method "$emit" conflicts with an existing Vue instance method'); delete methods.$emit; } vueComponentOptions.methods = methods; } function parseLifecycle(mpComponentOptions, vueComponentOptions) { COMPONENT_LIFECYCLE_KEYS.forEach(function (name) { if (hasOwn(mpComponentOptions, name)) { (vueComponentOptions[COMPONENT_LIFECYCLE[name]] || (vueComponentOptions[COMPONENT_LIFECYCLE[name]] = [])). push(mpComponentOptions[name]); } }); } var mpBehaviors = { 'wx://form-field': {}, 'wx://component-export': {} }; function callDefinitionFilter(mpComponentOptions) {var behaviors = mpComponentOptions.behaviors,definitionFilter = mpComponentOptions.definitionFilter; var behaviorDefinitionFilters = []; if (Array.isArray(behaviors)) { behaviors.forEach(function (behavior) { behavior = typeof behavior === 'string' ? mpBehaviors[behavior] : behavior; if (behavior.definitionFilter) { behaviorDefinitionFilters.push(behavior.definitionFilter); behavior.definitionFilter.call(null, mpComponentOptions, []); } }); } if (isFn(definitionFilter)) { return function (defFields) { definitionFilter(defFields, behaviorDefinitionFilters); }; } } function parseDefinitionFilter(mpComponentOptions, vueComponentOptions) { callDefinitionFilter(mpComponentOptions); } function parseBehavior(behavior) {var data = behavior.data,methods = behavior.methods,behaviors = behavior.behaviors,properties = behavior.properties; var vueComponentOptions = { watch: {}, mpOptions: { mpObservers: [] } }; parseData(data, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseProperties(properties, vueComponentOptions); parseLifecycle(behavior, vueComponentOptions); parseDefinitionFilter(behavior); return vueComponentOptions; } var BEHAVIORS = { 'wx://form-field': { beforeCreate: function beforeCreate() { var mpOptions = this.$options.mpOptions; if (!mpOptions.properties) { mpOptions.properties = Object.create(null); } var props = mpOptions.properties; // TODO form submit,reset if (!hasOwn(props, 'name')) { props.name = { type: String }; } if (!hasOwn(props, 'value')) { props.value = { type: String // 默认类型调整为 String,否则默认值为 null,导致一些自定义 input 显示不正确 }; } } } }; function parseBehaviors(behaviors, vueComponentOptions) { if (!behaviors) { return; } behaviors.forEach(function (behavior) { if (typeof behavior === 'string') { BEHAVIORS[behavior] && vueComponentOptions.mixins.push(BEHAVIORS[behavior]); } else { vueComponentOptions.mixins.push(parseBehavior(behavior)); } }); } function parseSinglePath(path) { return path.split('.'); } function parseMultiPaths(paths) { return paths.split(',').map(function (path) {return parseSinglePath(path);}); } function parseObservers(observers, vueComponentOptions) { if (!observers) { return; }var mpObservers = vueComponentOptions.mpOptions.mpObservers; Object.keys(observers).forEach(function (path) { mpObservers.push({ paths: parseMultiPaths(path), observer: observers[path] }); }); } function relative(from, to) { if (to.indexOf('/') === 0) { from = ''; } var fromArr = from.split('/'); var toArr = to.split('/'); fromArr.pop(); while (toArr.length) { var part = toArr.shift(); if (part !== '' && part !== '.') { if (part !== '..') { fromArr.push(part); } else { fromArr.pop(); } } } return fromArr.join('/'); } function parseRelations(relations, vueComponentOptions) { if (!relations) { return; } Object.keys(relations).forEach(function (name) { var relation = relations[name]; relation.name = name; relation.target = relation.target ? String(relation.target) : relative(global.__wxRoute, name); }); vueComponentOptions.mpOptions.relations = relations; } function parseExternalClasses(externalClasses, vueComponentOptions) { if (!externalClasses) { return; } if (!Array.isArray(externalClasses)) { externalClasses = [externalClasses]; } vueComponentOptions.mpOptions.externalClasses = externalClasses; if (!vueComponentOptions.mpOptions.properties) { vueComponentOptions.mpOptions.properties = Object.create(null); } externalClasses.forEach(function (externalClass) { vueComponentOptions.mpOptions.properties[camelize(externalClass)] = { type: String, value: '' }; }); } function parseLifetimes(lifetimes, vueComponentOptions) { if (!lifetimes) { return; } parseLifecycle(lifetimes, vueComponentOptions); } function parsePageLifetimes(pageLifetimes, vueComponentOptions) { if (!pageLifetimes) { return; } PAGE_LIFETIMES_KEYS.forEach(function (key) { var lifetimeFn = pageLifetimes[key]; isFn(lifetimeFn) && (vueComponentOptions[PAGE_LIFETIMES[key]] = lifetimeFn); }); } function parseComponent(mpComponentOptions) {var data = mpComponentOptions.data,options = mpComponentOptions.options,methods = mpComponentOptions.methods,behaviors = mpComponentOptions.behaviors,lifetimes = mpComponentOptions.lifetimes,observers = mpComponentOptions.observers,relations = mpComponentOptions.relations,properties = mpComponentOptions.properties,pageLifetimes = mpComponentOptions.pageLifetimes,externalClasses = mpComponentOptions.externalClasses; var vueComponentOptions = { mixins: [], props: {}, watch: {}, mpOptions: { mpObservers: [] } }; parseComponents(vueComponentOptions); parseData(data, vueComponentOptions); parseOptions(options, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseLifetimes(lifetimes, vueComponentOptions); parseObservers(observers, vueComponentOptions); parseRelations(relations, vueComponentOptions); parseProperties(properties, vueComponentOptions); parsePageLifetimes(pageLifetimes, vueComponentOptions); parseExternalClasses(externalClasses, vueComponentOptions); parseLifecycle(mpComponentOptions, vueComponentOptions); parseDefinitionFilter(mpComponentOptions); return vueComponentOptions; } function initRelationHandlers(type, handler, target, ctx) { if (!handler) { return; } var name = "_$".concat(type, "Handlers"); (ctx[name] || (ctx[name] = [])).push(function () { handler.call(ctx, target); }); } function initLinkedHandlers(relation, target, ctx) { var type = 'linked'; var name = relation.name; var relationNodes = ctx._$relationNodes || (ctx._$relationNodes = Object.create(null)); (relationNodes[name] || (relationNodes[name] = [])).push(target); initRelationHandlers(type, relation[type], target, ctx); } function initUnlinkedHandlers(relation, target, ctx) { var type = 'unlinked'; initRelationHandlers(type, relation[type], target, ctx); } function findParentRelation(parentVm, target, type) { var relations = parentVm && parentVm.$options.mpOptions && parentVm.$options.mpOptions.relations; if (!relations) { return []; } var name = Object.keys(relations).find(function (name) { var relation = relations[name]; return relation.target === target && relation.type === type; }); if (!name) { return []; } return [relations[name], parentVm]; } function initParentRelation(vm, childRelation, match) {var _match = match(vm, vm.$options.mpOptions.path),_match2 = _slicedToArray(_match, 2),parentRelation = _match2[0],parentVm = _match2[1]; if (!parentRelation) { return; } initLinkedHandlers(parentRelation, vm, parentVm); initLinkedHandlers(childRelation, parentVm, vm); initUnlinkedHandlers(parentRelation, vm, parentVm); initUnlinkedHandlers(childRelation, parentVm, vm); } function initRelation(relation, vm) { var type = relation.type; if (type === 'parent') { initParentRelation(vm, relation, function matchParent(vm, target) { return findParentRelation(vm.$parent, target, 'child'); }); } else if (type === 'ancestor') { initParentRelation(vm, relation, function matchAncestor(vm, target) { var $parent = vm.$parent; while ($parent) { var ret = findParentRelation($parent, target, 'descendant'); if (ret.length) { return ret; } $parent = $parent.$parent; } return []; }); } } function initRelations(vm) {var _ref = vm.$options.mpOptions || {},relations = _ref.relations; if (!relations) { return; } Object.keys(relations).forEach(function (name) { initRelation(relations[name], vm); }); } function handleRelations(vm, type) { // TODO 需要移除 relationNodes var handlers = vm["_$".concat(type, "Handlers")]; if (!handlers) { return; } handlers.forEach(function (handler) {return handler();}); } var sharedPropertyDefinition = { enumerable: true, configurable: true, get: noop, set: noop }; function proxy(target, sourceKey, key) { sharedPropertyDefinition.get = function proxyGetter() { return this[sourceKey][key]; }; sharedPropertyDefinition.set = function proxySetter(val) { this[sourceKey][key] = val; }; Object.defineProperty(target, key, sharedPropertyDefinition); } function setDataByExprPath(exprPath, value, data) { var keys = exprPath.replace(/\[(\d+?)\]/g, '.$1').split('.'); keys.reduce(function (obj, key, idx) { if (idx === keys.length - 1) { obj[key] = value; } else { if (typeof obj[key] === 'undefined') { obj[key] = {}; } return obj[key]; } }, data); return keys.length === 1; } function setData(data, callback) {var _this = this; if (!isPlainObject(data)) { return; } Object.keys(data).forEach(function (key) { if (setDataByExprPath(key, data[key], _this.data)) { !hasOwn(_this, key) && proxy(_this, SOURCE_KEY, key); } }); this.$forceUpdate(); isFn(callback) && this.$nextTick(callback); } /** * https://github.com/swan-team/swan-js/blob/61e2a63f7aa576b5daafbe77fdfa7c65b977060c/src/utils/index.js */ var _toString$1 = Object.prototype.toString; /** * 深度assign的函数 * @param {Object} targetObject 要被拷贝的目标对象 * @param {Object} originObject 拷贝的源对象 * @return {Object} merge后的对象 */ var deepAssign = function deepAssign() {var targetObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var originObject = arguments.length > 1 ? arguments[1] : undefined; var originType = _toString$1.call(originObject); if (originType === '[object Array]') { targetObject = originObject.slice(0); return targetObject; } else if (originType === '[object Object]') { for (var key in originObject) { targetObject[key] = deepAssign(targetObject[key], originObject[key]); } return targetObject; } else if (originType === '[object Date]') { return new Date(originObject.getTime()); } else if (originType === '[object RegExp]') { var target = String(originObject); var lastIndex = target.lastIndexOf('/'); return new RegExp(target.slice(1, lastIndex), target.slice(lastIndex + 1)); } return originObject; }; /** * 深度拷贝逻辑,不同于lodash等库,但是与微信一致 * @param {*} [originObj] 原对象 * @return {Object|Array} 拷贝结果 */ var deepClone = function deepClone(originObj) { return deepAssign(_toString$1.call(originObj) === '[object Array]' ? [] : {}, originObj); }; var PROP_DEFAULT_VALUES = (_PROP_DEFAULT_VALUES = {}, _defineProperty(_PROP_DEFAULT_VALUES, String, ''), _defineProperty(_PROP_DEFAULT_VALUES, Number, 0), _defineProperty(_PROP_DEFAULT_VALUES, Boolean, false), _defineProperty(_PROP_DEFAULT_VALUES, Object, null), _defineProperty(_PROP_DEFAULT_VALUES, Array, []), _defineProperty(_PROP_DEFAULT_VALUES, null, null), _PROP_DEFAULT_VALUES); function getDefaultVal(propType) { return PROP_DEFAULT_VALUES[propType]; } function getPropertyVal(options) { if (isPlainObject(options)) { if (hasOwn(options, 'value')) { return options.value; } return getDefaultVal(options.type); } return getDefaultVal(options); } function getType(propOptions) { return isPlainObject(propOptions) ? propOptions.type : propOptions; } function validateProp(key, propsOptions, propsData, vm) { var value = propsData[key]; if (value !== undefined) { var propOptions = propsOptions[key]; var type = getType(propOptions); value = formatVal(value, type); var observer = propOptions && propOptions.observer; if (observer) { // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 setTimeout(function () { observe(observer, vm, value); }, 4); } return value; } return getPropertyVal(propsOptions[key]); } function formatVal(val, type) { if (type === Boolean) { return !!val; } else if (type === String) { return String(val); } return val; } function observe(observer, vm, newVal, oldVal) { try { if (typeof observer === 'function') { observer.call(vm, newVal, oldVal); } else if (typeof observer === 'string' && typeof vm[observer] === 'function') { vm[observer](newVal, oldVal); } } catch (err) { console.error("execute observer ".concat(observer, " callback fail! err: ").concat(err)); } } function initProperties(vm, instanceData) { var properties = vm.$options.mpOptions.properties; if (!properties) { return; } var propsData = deepClone(vm.$options.propsData) || {};var _loop = function _loop( key) { var observer = isPlainObject(properties[key]) ? properties[key].observer : false; var value = validateProp(key, properties, propsData, vm); Object.defineProperty(instanceData, key, { enumerable: true, configurable: true, get: function get() { return value; }, set: function set(newVal) { var oldVal = value; /* eslint-disable no-self-compare */ if (newVal === value || newVal !== newVal && value !== value) { return; } // TODO 临时方案,clone array value = Array.isArray(newVal) ? newVal.slice(0) : newVal; if (observer) { observe(observer, vm, newVal, oldVal); } // 触发渲染 vm.$forceUpdate(); } });};for (var key in properties) {_loop(key); } } function updateProperties(vm) { var properties = vm.$options.mpOptions && vm.$options.mpOptions.properties; var propsData = vm.$options.propsData; if (propsData && properties) { Object.keys(properties).forEach(function (key) { if (hasOwn(propsData, key)) { vm[key] = formatVal(propsData[key], getType(properties[key])); } }); } } function initState(vm) { var instanceData = JSON.parse(JSON.stringify(vm.$options.mpOptions.data || {})); vm[SOURCE_KEY] = instanceData; var propertyDefinition = { get: function get() { return vm[SOURCE_KEY]; }, set: function set(value) { vm[SOURCE_KEY] = value; } }; Object.defineProperties(vm, { data: propertyDefinition, properties: propertyDefinition }); vm.setData = setData; initProperties(vm, instanceData); Object.keys(instanceData).forEach(function (key) { proxy(vm, SOURCE_KEY, key); }); } function initMethods(vm) { var oldEmit = vm.$emit; vm.triggerEvent = function (eventName, detail, options) { var target = { dataset: vm.$el.dataset }; var event = { target: target, currentTarget: target, detail: detail, preventDefault: noop, stopPropagation: noop }; oldEmit.call(vm, eventName, event); }; // 主要是Vant 自己封装了 $emit,放到 methods 中会触发 Vue 的警告,索性,框架直接重写该方法 vm.$emit = function () { vm.triggerEvent.apply(vm, arguments); }; vm.getRelationNodes = function (relationKey) { // 需要过滤已被销毁的vm /* eslint-disable no-mixed-operators */ return (vm._$relationNodes && vm._$relationNodes[relationKey] || []).filter(function (vm) {return !vm._isDestroyed;}); }; vm._$updateProperties = updateProperties; } function handleObservers(vm) { var watch = vm.$options.watch; if (!watch) { return; } Object.keys(watch).forEach(function (name) { var observer = watch[name]; if (observer.mounted) { var val = vm[name]; var handler = observer.handler; if (typeof handler === 'string') { handler = vm[handler]; } handler && handler.call(vm, val, val); } }); } var polyfill = { beforeCreate: function beforeCreate() { // 取消 development 时的 Proxy,避免小程序组件模板中使用尚未定义的属性告警 this._renderProxy = this; this._$self = this; this._$noop = noop; }, created: function created() {// properties 中可能会访问 methods,故需要在 created 中初始化 initState(this); initMethods(this); initRelations(this); }, mounted: function mounted() { handleObservers(this); }, destroyed: function destroyed() { handleRelations(this, 'unlinked'); } }; global.__wxRoute = ''; global.__wxComponents = Object.create(null); global.__wxVueOptions = Object.create(null); function Page(options) { var pageOptions = parsePage(options); pageOptions.mixins.unshift(polyfill); pageOptions.mpOptions.path = global.__wxRoute; global.__wxComponents[global.__wxRoute] = pageOptions; } function initRelationsHandler(vueComponentOptions) { // linked 需要在当前组件 attached 之后再执行 if (!vueComponentOptions.onServiceAttached) { vueComponentOptions.onServiceAttached = []; } vueComponentOptions.onServiceAttached.push(function onServiceAttached() { handleRelations(this, 'linked'); }); } function Component(options) { var componentOptions = parseComponent(options); componentOptions.mixins.unshift(polyfill); componentOptions.mpOptions.path = global.__wxRoute; initRelationsHandler(componentOptions); global.__wxComponents[global.__wxRoute] = componentOptions; } function Behavior(options) { return options; } var nextTick = _vue.default.nextTick;exports.nextTick = nextTick; var index = uni.__$wx__;var _default = index;exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 59))) /***/ }), /* 61 */ /*!**********************!*\ !*** external "Vue" ***! \**********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = Vue; /***/ }), /* 62 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! regenerator-runtime */ 63); /***/ }), /* 63 */ /*!************************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime-module.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ // This method of obtaining a reference to the global object needs to be // kept identical to the way it is obtained in runtime.js var g = (function() { return this || (typeof self === "object" && self); })() || Function("return this")(); // Use `getOwnPropertyNames` because not all browsers support calling // `hasOwnProperty` on the global `self` object in a worker. See #183. var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; // Save the old regeneratorRuntime in case it needs to be restored later. var oldRuntime = hadRuntime && g.regeneratorRuntime; // Force reevalutation of runtime.js. g.regeneratorRuntime = undefined; module.exports = __webpack_require__(/*! ./runtime */ 64); if (hadRuntime) { // Restore the original runtime. g.regeneratorRuntime = oldRuntime; } else { // Remove the global property added by runtime.js. try { delete g.regeneratorRuntime; } catch(e) { g.regeneratorRuntime = undefined; } } /***/ }), /* 64 */ /*!*****************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime.js ***! \*****************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ !(function(global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; // More compressible than void 0. var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { // If regeneratorRuntime is defined globally and we're in a module, // make the exports object identical to regeneratorRuntime. module.exports = runtime; } // Don't bother evaluating the rest of this file if the runtime was // already defined globally. return; } // Define the runtime globally (as expected by generated code) as either // module.exports (if we're in a module) or a new, empty object. runtime = global.regeneratorRuntime = inModule ? module.exports : {}; function wrap(innerFn, outerFn, self, tryLocsList) { // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, // .throw, and .return methods. generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion // record like context.tryEntries[i].completion. This interface could // have been (and was previously) designed to take a closure to be // invoked without arguments, but in all the cases we care about we // already have an existing method we want to call, so there's no need // to create a new function object. We can even get away with assuming // the method takes exactly one argument, since that happens to be true // in every case, so we don't have to touch the arguments object. The // only additional allocation required is the completion record, which // has a stable shape and so hopefully should be cheap to allocate. function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as // breaking out of the dispatch switch statement. var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and // .constructor.prototype properties for functions that return Generator // objects. For full spec compliance, you may wish to configure your // minifier not to mangle the names of these two functions. function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that // don't natively support it. var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { // This environment has a native %IteratorPrototype%; use it instead // of the polyfill. IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the // Iterator interface in terms of a single ._invoke method. function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function(method) { prototype[method] = function(arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function(genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can // do is to check its .name property. (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function(genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; // Within the body of any async function, `await x` is transformed to // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test // `hasOwn.call(value, "__await")` to determine if the yielded value is // meant to be awaited. runtime.awrap = function(arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function(value) { invoke("next", value, resolve, reject); }, function(err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function(unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. result.value = unwrapped; resolve(result); }, function(error) { // If a rejected Promise was yielded, throw the rejection back // into the async generator function so it can be handled there. return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function(resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = // If enqueue has been called before, then we want to wait until // all previous Promises have been resolved before calling invoke, // so that results are always delivered in the correct order. If // enqueue has not been called before, then it is important to // call invoke immediately, without waiting on a callback to fire, // so that the async generator function has the opportunity to do // any necessary setup in a predictable way. This predictability // is why the Promise constructor synchronously invokes its // executor callback, and why async functions synchronously // execute code before the first await. Since we implement simple // async functions in terms of async generators, it is especially // important to get this right, even though it requires care. previousPromise ? previousPromise.then( callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later // invocations of the iterator. callInvokeWithMethodAndArg ) : callInvokeWithMethodAndArg(); } // Define the unified helper method that is used to implement .next, // .throw, and .return (see defineIteratorMethods). this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. runtime.async = function(innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator( wrap(innerFn, outerFn, self, tryLocsList) ); return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. : iter.next().then(function(result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } // Be forgiving, per 25.3.3.3.3 of the spec: // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { // Setting context._sent for legacy support of Babel's // function.sent implementation. context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { // If an exception is thrown from innerFn, we leave state === // GenStateExecuting and loop back for another invocation. state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; // Dispatch the exception by looping back around to the // context.dispatchException(context.arg) call above. context.method = "throw"; context.arg = record.arg; } } }; } // Call delegate.iterator[context.method](context.arg) and handle the // result, either by returning a { value, done } result from the // delegate iterator, or by modifying context.method and context.arg, // setting context.delegate to null, and returning the ContinueSentinel. function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { // A .throw or .return when the delegate iterator has no .throw // method always terminates the yield* loop. context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { // If the delegate iterator has a return method, give it a // chance to clean up. context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { // If maybeInvokeDelegate(context) changed context.method from // "return" to "throw", let that override the TypeError below. return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError( "The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (! info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { // Assign the result of the finished delegate to the temporary // variable specified by delegate.resultName (see delegateYield). context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the // exception, let the outer generator proceed normally. If // context.method was "next", forget context.arg since it has been // "consumed" by the delegate iterator. If context.method was // "return", allow the original .return call to continue in the // outer generator. if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { // Re-yield the result returned by the delegate method. return info; } // The delegate iterator is finished, so forget it and continue with // the outer generator. context.delegate = null; return ContinueSentinel; } // Define Generator.prototype.{next,throw,return} in terms of the // unified ._invoke helper method. defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; // A Generator should always return itself as the iterator object when the // @@iterator function is called on it. Some browsers' implementations of the // iterator prototype chain incorrectly implement this, causing the Generator // object to not be returned from this call. This ensures that doesn't happen. // See https://github.com/facebook/regenerator/issues/274 for more details. Gp[iteratorSymbol] = function() { return this; }; Gp.toString = function() { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { // The root entry object (effectively a try statement without a catch // or a finally block) gives us a place to store values thrown from // locations where there is no enclosing try statement. this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function(object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); // Rather than returning an object with a next method, we keep // things simple and return the next function itself. return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } // To avoid creating an additional object, we just hang the .value // and .done properties off the next function object itself. This // also ensures that the minifier will not anonymize the function. next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } // Return an iterator with no values. return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function(skipTempReset) { this.prev = 0; this.next = 0; // Resetting context._sent for legacy support of Babel's // function.sent implementation. this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { // Not sure about the optimal order of these conditions: if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function() { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function(exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { // If the dispatched exception was caught by a catch block, // then let that catch block handle the exception normally. context.method = "next"; context.arg = undefined; } return !! caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { // Exception thrown outside of any try block that could handle // it, so set the completion value of the entire function to // throw the exception. return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { // Ignore the finally entry if control is not jumping to a // location outside the try/catch block. finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } // The context.catch method must only be called with a location // argument that corresponds to a known catch block. throw new Error("illegal catch attempt"); }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { // Deliberately forget the last sent value so that we don't // accidentally pass it on to the delegate. this.arg = undefined; } return ContinueSentinel; } }; })( // In sloppy mode, unbound `this` refers to the global object, fallback to // Function constructor if we're in global strict mode. That is sadly a form // of indirect eval which violates Content Security Policy. (function() { return this || (typeof self === "object" && self); })() || Function("return this")() ); /***/ }), /* 65 */ /*!*************************************************************!*\ !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports, "__esModule", { value: true });exports.compileI18nJsonStr = compileI18nJsonStr;exports.hasI18nJson = hasI18nJson;exports.initVueI18n = initVueI18n;exports.isI18nStr = isI18nStr;exports.normalizeLocale = normalizeLocale;exports.parseI18nJson = parseI18nJson;exports.resolveLocale = resolveLocale;exports.isString = exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var isArray = Array.isArray; var isObject = function isObject(val) {return val !== null && typeof val === 'object';}; var defaultDelimiters = ['{', '}'];var BaseFormatter = /*#__PURE__*/function () { function BaseFormatter() {_classCallCheck(this, BaseFormatter); this._caches = Object.create(null); }_createClass(BaseFormatter, [{ key: "interpolate", value: function interpolate( message, values) {var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters; if (!values) { return [message]; } var tokens = this._caches[message]; if (!tokens) { tokens = parse(message, delimiters); this._caches[message] = tokens; } return compile(tokens, values); } }]);return BaseFormatter;}();exports.Formatter = BaseFormatter; var RE_TOKEN_LIST_VALUE = /^(?:\d)+/; var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; function parse(format, _ref) {var _ref2 = _slicedToArray(_ref, 2),startDelimiter = _ref2[0],endDelimiter = _ref2[1]; var tokens = []; var position = 0; var text = ''; while (position < format.length) { var char = format[position++]; if (char === startDelimiter) { if (text) { tokens.push({ type: 'text', value: text }); } text = ''; var sub = ''; char = format[position++]; while (char !== undefined && char !== endDelimiter) { sub += char; char = format[position++]; } var isClosed = char === endDelimiter; var type = RE_TOKEN_LIST_VALUE.test(sub) ? 'list' : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? 'named' : 'unknown'; tokens.push({ value: sub, type: type }); } // else if (char === '%') { // // when found rails i18n syntax, skip text capture // if (format[position] !== '{') { // text += char // } // } else { text += char; } } text && tokens.push({ type: 'text', value: text }); return tokens; } function compile(tokens, values) { var compiled = []; var index = 0; var mode = isArray(values) ? 'list' : isObject(values) ? 'named' : 'unknown'; if (mode === 'unknown') { return compiled; } while (index < tokens.length) { var token = tokens[index]; switch (token.type) { case 'text': compiled.push(token.value); break; case 'list': compiled.push(values[parseInt(token.value, 10)]); break; case 'named': if (mode === 'named') { compiled.push(values[token.value]); } else { if (true) { console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!")); } } break; case 'unknown': if (true) { console.warn("Detect 'unknown' type of token!"); } break;} index++; } return compiled; } var LOCALE_ZH_HANS = 'zh-Hans';exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS; var LOCALE_ZH_HANT = 'zh-Hant';exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT; var LOCALE_EN = 'en';exports.LOCALE_EN = LOCALE_EN; var LOCALE_FR = 'fr';exports.LOCALE_FR = LOCALE_FR; var LOCALE_ES = 'es';exports.LOCALE_ES = LOCALE_ES; var hasOwnProperty = Object.prototype.hasOwnProperty; var hasOwn = function hasOwn(val, key) {return hasOwnProperty.call(val, key);}; var defaultFormatter = new BaseFormatter(); function include(str, parts) { return !!parts.find(function (part) {return str.indexOf(part) !== -1;}); } function startsWith(str, parts) { return parts.find(function (part) {return str.indexOf(part) === 0;}); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, '-'); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale.indexOf('zh') === 0) { if (locale.indexOf('-hans') > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf('-hant') > -1) { return LOCALE_ZH_HANT; } if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]); if (lang) { return lang; } }var I18n = /*#__PURE__*/function () { function I18n(_ref3) {var locale = _ref3.locale,fallbackLocale = _ref3.fallbackLocale,messages = _ref3.messages,watcher = _ref3.watcher,formater = _ref3.formater;_classCallCheck(this, I18n); this.locale = LOCALE_EN; this.fallbackLocale = LOCALE_EN; this.message = {}; this.messages = {}; this.watchers = []; if (fallbackLocale) { this.fallbackLocale = fallbackLocale; } this.formater = formater || defaultFormatter; this.messages = messages || {}; this.setLocale(locale || LOCALE_EN); if (watcher) { this.watchLocale(watcher); } }_createClass(I18n, [{ key: "setLocale", value: function setLocale( locale) {var _this = this; var oldLocale = this.locale; this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; if (!this.messages[this.locale]) { // 可能初始化时不存在 this.messages[this.locale] = {}; } this.message = this.messages[this.locale]; // 仅发生变化时,通知 if (oldLocale !== this.locale) { this.watchers.forEach(function (watcher) { watcher(_this.locale, oldLocale); }); } } }, { key: "getLocale", value: function getLocale() { return this.locale; } }, { key: "watchLocale", value: function watchLocale( fn) {var _this2 = this; var index = this.watchers.push(fn) - 1; return function () { _this2.watchers.splice(index, 1); }; } }, { key: "add", value: function add( locale, message) {var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var curMessages = this.messages[locale]; if (curMessages) { if (override) { Object.assign(curMessages, message); } else { Object.keys(message).forEach(function (key) { if (!hasOwn(curMessages, key)) { curMessages[key] = message[key]; } }); } } else { this.messages[locale] = message; } } }, { key: "f", value: function f( message, values, delimiters) { return this.formater.interpolate(message, values, delimiters).join(''); } }, { key: "t", value: function t( key, locale, values) { var message = this.message; if (typeof locale === 'string') { locale = normalizeLocale(locale, this.messages); locale && (message = this.messages[locale]); } else { values = locale; } if (!hasOwn(message, key)) { console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default.")); return key; } return this.formater.interpolate(message[key], values).join(''); } }]);return I18n;}();exports.I18n = I18n; function watchAppLocale(appVm, i18n) { // 需要保证 watch 的触发在组件渲染之前 if (appVm.$watchLocale) { // vue2 appVm.$watchLocale(function (newLocale) { i18n.setLocale(newLocale); }); } else { appVm.$watch(function () {return appVm.$locale;}, function (newLocale) { i18n.setLocale(newLocale); }); } } function getDefaultLocale() { if (typeof uni !== 'undefined' && uni.getLocale) { return uni.getLocale(); } // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale if (typeof global !== 'undefined' && global.getLocale) { return global.getLocale(); } return LOCALE_EN; } function initVueI18n(locale) {var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined;var watcher = arguments.length > 3 ? arguments[3] : undefined; // 兼容旧版本入参 if (typeof locale !== 'string') {var _ref4 = [ messages, locale];locale = _ref4[0];messages = _ref4[1]; } if (typeof locale !== 'string') { // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined locale = getDefaultLocale(); } if (typeof fallbackLocale !== 'string') { fallbackLocale = typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale || LOCALE_EN; } var i18n = new I18n({ locale: locale, fallbackLocale: fallbackLocale, messages: messages, watcher: watcher }); var _t = function t(key, values) { if (typeof getApp !== 'function') { // app view /* eslint-disable no-func-assign */ _t = function t(key, values) { return i18n.t(key, values); }; } else { var isWatchedAppLocale = false; _t = function t(key, values) { var appVm = getApp().$vm; // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化 // options: { // type: Array, // default () { // return [{ // icon: 'shop', // text: t("uni-goods-nav.options.shop"), // }, { // icon: 'cart', // text: t("uni-goods-nav.options.cart") // }] // } // }, if (appVm) { // 触发响应式 appVm.$locale; if (!isWatchedAppLocale) { isWatchedAppLocale = true; watchAppLocale(appVm, i18n); } } return i18n.t(key, values); }; } return _t(key, values); }; return { i18n: i18n, f: function f(message, values, delimiters) { return i18n.f(message, values, delimiters); }, t: function t(key, values) { return _t(key, values); }, add: function add(locale, message) {var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; return i18n.add(locale, message, override); }, watch: function watch(fn) { return i18n.watchLocale(fn); }, getLocale: function getLocale() { return i18n.getLocale(); }, setLocale: function setLocale(newLocale) { return i18n.setLocale(newLocale); } }; } var isString = function isString(val) {return typeof val === 'string';};exports.isString = isString; var formater; function hasI18nJson(jsonObj, delimiters) { if (!formater) { formater = new BaseFormatter(); } return walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { return true; } } else { return hasI18nJson(value, delimiters); } }); } function parseI18nJson(jsonObj, values, delimiters) { if (!formater) { formater = new BaseFormatter(); } walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, values, delimiters); } } else { parseI18nJson(value, values, delimiters); } }); return jsonObj; } function compileI18nJsonStr(jsonStr, _ref5) {var locale = _ref5.locale,locales = _ref5.locales,delimiters = _ref5.delimiters; if (!isI18nStr(jsonStr, delimiters)) { return jsonStr; } if (!formater) { formater = new BaseFormatter(); } var localeValues = []; Object.keys(locales).forEach(function (name) { if (name !== locale) { localeValues.push({ locale: name, values: locales[name] }); } }); localeValues.unshift({ locale: locale, values: locales[locale] }); try { return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2); } catch (e) {} return jsonStr; } function isI18nStr(value, delimiters) { return value.indexOf(delimiters[0]) > -1; } function compileStr(value, values, delimiters) { return formater.interpolate(value, values, delimiters).join(''); } function compileValue(jsonObj, key, localeValues, delimiters) { var value = jsonObj[key]; if (isString(value)) { // 存在国际化 if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, localeValues[0].values, delimiters); if (localeValues.length > 1) { // 格式化国际化语言 var valueLocales = jsonObj[key + 'Locales'] = {}; localeValues.forEach(function (localValue) { valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters); }); } } } else { compileJsonObj(value, localeValues, delimiters); } } function compileJsonObj(jsonObj, localeValues, delimiters) { walkJsonObj(jsonObj, function (jsonObj, key) { compileValue(jsonObj, key, localeValues, delimiters); }); return jsonObj; } function walkJsonObj(jsonObj, walk) { if (isArray(jsonObj)) { for (var i = 0; i < jsonObj.length; i++) { if (walk(jsonObj, i)) { return true; } } } else if (isObject(jsonObj)) { for (var key in jsonObj) { if (walk(jsonObj, key)) { return true; } } } return false; } function resolveLocale(locales) { return function (locale) { if (!locale) { return locale; } locale = normalizeLocale(locale) || locale; return resolveLocaleChain(locale).find(function (locale) {return locales.indexOf(locale) > -1;}); }; } function resolveLocaleChain(locale) { var chain = []; var tokens = locale.split('-'); while (tokens.length) { chain.push(tokens.join('-')); tokens.pop(); } return chain; } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 59))) /***/ }), /* 66 */ /*!***********************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages.json?{"type":"origin-pages-json"} ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": [{ "path": "pages/home/home", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/index", "style": { "navigationStyle": "custom" } }, { "path": "pages/index/monitor", "style": { "navigationStyle": "custom" } }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "pageOrientation": "landscape" } };exports.default = _default; /***/ }), /* 67 */ /*!**********************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages.json?{"type":"stat"} ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "__UNI__CA903B7" };exports.default = _default; /***/ }), /* 68 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === \"Object\" && o.constructor) n = o.constructor.name;if (n === \"Map\" || n === \"Set\") return Array.from(o);if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i[\"return\"] != null) _i[\"return\"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}\n\nvar config = {\n version: 'v2.4.4-20221102',\n yAxisWidth: 15,\n xAxisHeight: 22,\n xAxisTextPadding: 3,\n padding: [10, 10, 10, 10],\n pixelRatio: 1,\n rotate: false,\n fontSize: 13,\n fontColor: '#666666',\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n pieChartLinePadding: 15,\n pieChartTextPadding: 5,\n titleFontSize: 20,\n subtitleFontSize: 15,\n toolTipPadding: 3,\n toolTipBackground: '#000000',\n toolTipOpacity: 0.7,\n toolTipLineHeight: 20,\n radarLabelTextMargin: 13 };\n\n\nvar assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}\n if (target == null) {\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n }\n if (!varArgs || varArgs.length <= 0) {\n return target;\n }\n // 深度合并对象\n function deepAssign(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ?\n deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n }\n return obj1;\n }\n varArgs.forEach(function (val) {\n target = deepAssign(target, val);\n });\n return target;\n};\n\nvar util = {\n toFixed: function toFixed(num, limit) {\n limit = limit || 2;\n if (this.isFloat(num)) {\n num = num.toFixed(limit);\n }\n return num;\n },\n isFloat: function isFloat(num) {\n return num % 1 !== 0;\n },\n approximatelyEqual: function approximatelyEqual(num1, num2) {\n return Math.abs(num1 - num2) < 1e-10;\n },\n isSameSign: function isSameSign(num1, num2) {\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n },\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n return this.isSameSign(p1.x, p2.x);\n },\n isCollision: function isCollision(obj1, obj2) {\n obj1.end = {};\n obj1.end.x = obj1.start.x + obj1.width;\n obj1.end.y = obj1.start.y - obj1.height;\n obj2.end = {};\n obj2.end.x = obj2.start.x + obj2.width;\n obj2.end.y = obj2.start.y - obj2.height;\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n return !flag;\n } };\n\n\n//兼容H5点击事件\nfunction getH5Offset(e) {\n e.mp = {\n changedTouches: [] };\n\n e.mp.changedTouches.push({\n x: e.offsetX,\n y: e.offsetY });\n\n return e;\n}\n\n// hex 转 rgba\nfunction hexToRgb(hexValue, opc) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\n\nfunction findRange(num, type, limit) {\n if (isNaN(num)) {\n throw new Error('[uCharts] series数据需为Number格式');\n }\n limit = limit || 10;\n type = type ? type : 'upper';\n var multiple = 1;\n while (limit < 1) {\n limit *= 10;\n multiple *= 10;\n }\n if (type === 'upper') {\n num = Math.ceil(num * multiple);\n } else {\n num = Math.floor(num * multiple);\n }\n while (num % limit !== 0) {\n if (type === 'upper') {\n if (num == num + 1) {//修复数据值过大num++无效的bug by 向日葵 @xrk_jy\n break;\n }\n num++;\n } else {\n num--;\n }\n }\n return num / multiple;\n}\n\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n var seriesTemp = [];\n for (var k = 0; k < dayArr.length; k++) {\n var seriesItem = {\n data: [],\n name: nameArr[k],\n color: colorArr[k] };\n\n for (var i = 0, len = kdata.length; i < len; i++) {\n if (i < dayArr[k]) {\n seriesItem.data.push(null);\n continue;\n }\n var sum = 0;\n for (var j = 0; j < dayArr[k]; j++) {\n sum += kdata[i - j][1];\n }\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n }\n seriesTemp.push(seriesItem);\n }\n return seriesTemp;\n}\n\nfunction calValidDistance(self, distance, chartData, config, opts) {\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;\n }\n var validDistance = distance;\n if (distance >= 0) {\n validDistance = 0;\n self.uevent.trigger('scrollLeft');\n self.scrollOption.position = 'left';\n opts.xAxis.scrollPosition = 'left';\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n validDistance = dataChartAreaWidth - dataChartWidth;\n self.uevent.trigger('scrollRight');\n self.scrollOption.position = 'right';\n opts.xAxis.scrollPosition = 'right';\n } else {\n self.scrollOption.position = distance;\n opts.xAxis.scrollPosition = distance;\n }\n return validDistance;\n}\n\nfunction isInAngleRange(angle, startAngle, endAngle) {\n function adjust(angle) {\n while (angle < 0) {\n angle += 2 * Math.PI;\n }\n while (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n }\n angle = adjust(angle);\n startAngle = adjust(startAngle);\n endAngle = adjust(endAngle);\n if (startAngle > endAngle) {\n endAngle += 2 * Math.PI;\n if (angle < startAngle) {\n angle += 2 * Math.PI;\n }\n }\n return angle >= startAngle && angle <= endAngle;\n}\n\nfunction createCurveControlPoints(points, i) {\n function isNotMiddlePoint(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,\n points[i + 1].y);\n } else {\n return false;\n }\n }\n function isNotMiddlePointX(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,\n points[i + 1].x);\n } else {\n return false;\n }\n }\n var a = 0.2;\n var b = 0.2;\n var pAx = null;\n var pAy = null;\n var pBx = null;\n var pBy = null;\n if (i < 1) {\n pAx = points[0].x + (points[1].x - points[0].x) * a;\n pAy = points[0].y + (points[1].y - points[0].y) * a;\n } else {\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n }\n\n if (i > points.length - 3) {\n var last = points.length - 1;\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n } else {\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n }\n if (isNotMiddlePoint(points, i + 1)) {\n pBy = points[i + 1].y;\n }\n if (isNotMiddlePoint(points, i)) {\n pAy = points[i].y;\n }\n if (isNotMiddlePointX(points, i + 1)) {\n pBx = points[i + 1].x;\n }\n if (isNotMiddlePointX(points, i)) {\n pAx = points[i].x;\n }\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n pAy = points[i].y;\n }\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n pBy = points[i + 1].y;\n }\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n pAx = points[i].x;\n }\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n pBx = points[i + 1].x;\n }\n return {\n ctrA: {\n x: pAx,\n y: pAy },\n\n ctrB: {\n x: pBx,\n y: pBy } };\n\n\n}\n\n\nfunction convertCoordinateOrigin(x, y, center) {\n return {\n x: center.x + x,\n y: center.y - y };\n\n}\n\nfunction avoidCollision(obj, target) {\n if (target) {\n // is collision test\n while (util.isCollision(obj, target)) {\n if (obj.start.x > 0) {\n obj.start.y--;\n } else if (obj.start.x < 0) {\n obj.start.y++;\n } else {\n if (obj.start.y > 0) {\n obj.start.y++;\n } else {\n obj.start.y--;\n }\n }\n }\n }\n return obj;\n}\n\nfunction fixPieSeries(series, opts, config) {\n var pieSeriesArr = [];\n if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n opts._pieSeries_ = series;\n var oldseries = series[0].data;\n for (var i = 0; i < oldseries.length; i++) {\n oldseries[i].formatter = series[0].formatter;\n oldseries[i].data = oldseries[i].value;\n pieSeriesArr.push(oldseries[i]);\n }\n opts.series = pieSeriesArr;\n } else {\n pieSeriesArr = series;\n }\n return pieSeriesArr;\n}\n\nfunction fillSeries(series, opts, config) {\n var index = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (!item.color) {\n item.color = config.color[index];\n index = (index + 1) % config.color.length;\n }\n if (!item.linearIndex) {\n item.linearIndex = i;\n }\n if (!item.index) {\n item.index = 0;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (typeof item.show == \"undefined\") {\n item.show = true;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (!item.pointShape) {\n item.pointShape = \"circle\";\n }\n if (!item.legendShape) {\n switch (item.type) {\n case 'line':\n item.legendShape = \"line\";\n break;\n case 'column':\n case 'bar':\n item.legendShape = \"rect\";\n break;\n case 'area':\n case 'mount':\n item.legendShape = \"triangle\";\n break;\n default:\n item.legendShape = \"circle\";}\n\n }\n }\n return series;\n}\n\nfunction fillCustomColor(linearType, customColor, series, config) {\n var newcolor = customColor || [];\n if (linearType == 'custom' && newcolor.length == 0) {\n newcolor = config.linearColor;\n }\n if (linearType == 'custom' && newcolor.length < series.length) {\n var chazhi = series.length - newcolor.length;\n for (var i = 0; i < chazhi; i++) {\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n }\n }\n return newcolor;\n}\n\nfunction getDataRange(minData, maxData) {\n var limit = 0;\n var range = maxData - minData;\n if (range >= 10000) {\n limit = 1000;\n } else if (range >= 1000) {\n limit = 100;\n } else if (range >= 100) {\n limit = 10;\n } else if (range >= 10) {\n limit = 5;\n } else if (range >= 1) {\n limit = 1;\n } else if (range >= 0.1) {\n limit = 0.1;\n } else if (range >= 0.01) {\n limit = 0.01;\n } else if (range >= 0.001) {\n limit = 0.001;\n } else if (range >= 0.0001) {\n limit = 0.0001;\n } else if (range >= 0.00001) {\n limit = 0.00001;\n } else {\n limit = 0.000001;\n }\n return {\n minRange: findRange(minData, 'lower', limit),\n maxRange: findRange(maxData, 'upper', limit) };\n\n}\n\nfunction measureText(text, fontSize, context) {\n var width = 0;\n text = String(text);\n\n\n\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n context.setFontSize(fontSize);\n return context.measureText(text).width;\n } else {\n var text = text.split('');\n for (var i = 0; i < text.length; i++) {\n var item = text[i];\n if (/[a-zA-Z]/.test(item)) {\n width += 7;\n } else if (/[0-9]/.test(item)) {\n width += 5.5;\n } else if (/\\./.test(item)) {\n width += 2.7;\n } else if (/-/.test(item)) {\n width += 3.25;\n } else if (/:/.test(item)) {\n width += 2.5;\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n width += 10;\n } else if (/\\(|\\)/.test(item)) {\n width += 3.73;\n } else if (/\\s/.test(item)) {\n width += 2.5;\n } else if (/%/.test(item)) {\n width += 8;\n } else {\n width += 10;\n }\n }\n return width * fontSize / 10;\n }\n}\n\nfunction dataCombine(series) {\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data);\n }, []);\n}\n\nfunction dataCombineStack(series, len) {\n var sum = new Array(len);\n for (var j = 0; j < sum.length; j++) {\n sum[j] = 0;\n }\n for (var i = 0; i < series.length; i++) {\n for (var j = 0; j < sum.length; j++) {\n sum[j] += series[i].data[j];\n }\n }\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data).concat(sum);\n }, []);\n}\n\nfunction getTouches(touches, opts, e) {\n var x, y;\n if (touches.clientX) {\n if (opts.rotate) {\n y = opts.height - touches.clientX * opts.pix;\n x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n } else {\n x = touches.clientX * opts.pix;\n y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n }\n } else {\n if (opts.rotate) {\n y = opts.height - touches.x * opts.pix;\n x = touches.y * opts.pix;\n } else {\n x = touches.x * opts.pix;\n y = touches.y * opts.pix;\n }\n }\n return {\n x: x,\n y: y };\n\n}\n\nfunction getSeriesDataItem(series, index, group) {\n var data = [];\n var newSeries = [];\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n if (indexIsArr) {\n var tempSeries = filterSeries(series);\n for (var i = 0; i < group.length; i++) {\n newSeries.push(tempSeries[group[i]]);\n }\n } else {\n newSeries = series;\n };\n for (var _i = 0; _i < newSeries.length; _i++) {\n var item = newSeries[_i];\n var tmpindex = -1;\n if (indexIsArr) {\n tmpindex = index[_i];\n } else {\n tmpindex = index;\n }\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n var seriesItem = {};\n seriesItem.color = item.color;\n seriesItem.type = item.type;\n seriesItem.style = item.style;\n seriesItem.pointShape = item.pointShape;\n seriesItem.disableLegend = item.disableLegend;\n seriesItem.name = item.name;\n seriesItem.show = item.show;\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n data.push(seriesItem);\n }\n }\n return data;\n}\n\nfunction getMaxTextListLength(list, fontSize, context) {\n var lengthList = list.map(function (item) {\n return measureText(item, fontSize, context);\n });\n return Math.max.apply(null, lengthList);\n}\n\nfunction getRadarCoordinateSeries(length) {\n var eachAngle = 2 * Math.PI / length;\n var CoordinateSeries = [];\n for (var i = 0; i < length; i++) {\n CoordinateSeries.push(eachAngle * i);\n }\n return CoordinateSeries.map(function (item) {\n return -1 * item + Math.PI / 2;\n });\n}\n\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n var points = {};\n if (group.length > 0) {\n var filterPoints = [];\n for (var i = 0; i < group.length; i++) {\n filterPoints.push(calPoints[group[i]]);\n }\n points = filterPoints[0][index[0]];\n } else {\n for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n if (calPoints[_i2][index]) {\n points = calPoints[_i2][index];\n break;\n }\n }\n };\n var textList = seriesData.map(function (item) {\n var titleText = null;\n if (opts.categories && opts.categories.length > 0) {\n titleText = categories[index];\n };\n return {\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n color: item.color };\n\n });\n var offset = {\n x: Math.round(points.x),\n y: Math.round(points.y) };\n\n return {\n textList: textList,\n offset: offset };\n\n}\n\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n color: item.color,\n disableLegend: item.disableLegend ? true : false };\n\n });\n textList = textList.filter(function (item) {\n if (item.disableLegend !== true) {\n return item;\n }\n });\n var offset = {\n x: Math.round(points),\n y: 0 };\n\n return {\n textList: textList,\n offset: offset };\n\n}\n\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var calPoints = opts.chartData.calPoints;\n var upColor = extra.color.upFill;\n var downColor = extra.color.downFill;\n //颜色顺序为开盘,收盘,最低,最高\n var color = [upColor, upColor, downColor, upColor];\n var textList = [];\n seriesData.map(function (item) {\n if (index == 0) {\n if (item.data[1] - item.data[0] < 0) {\n color[1] = downColor;\n } else {\n color[1] = upColor;\n }\n } else {\n if (item.data[0] < series[index - 1][1]) {\n color[0] = downColor;\n }\n if (item.data[1] < item.data[0]) {\n color[1] = downColor;\n }\n if (item.data[2] > series[index - 1][1]) {\n color[2] = upColor;\n }\n if (item.data[3] < series[index - 1][1]) {\n color[3] = downColor;\n }\n }\n var text1 = {\n text: '开盘:' + item.data[0],\n color: color[0] };\n\n var text2 = {\n text: '收盘:' + item.data[1],\n color: color[1] };\n\n var text3 = {\n text: '最低:' + item.data[2],\n color: color[2] };\n\n var text4 = {\n text: '最高:' + item.data[3],\n color: color[3] };\n\n textList.push(text1, text2, text3, text4);\n });\n var validCalPoints = [];\n var offset = {\n x: 0,\n y: 0 };\n\n for (var i = 0; i < calPoints.length; i++) {\n var points = calPoints[i];\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\n validCalPoints.push(points[index]);\n }\n }\n offset.x = Math.round(validCalPoints[0][0].x);\n return {\n textList: textList,\n offset: offset };\n\n}\n\nfunction filterSeries(series) {\n var tempSeries = [];\n for (var i = 0; i < series.length; i++) {\n if (series[i].show == true) {\n tempSeries.push(series[i]);\n }\n }\n return tempSeries;\n}\n\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = { index: -1, group: [] };\n var spacing = opts.chartData.eachSpacing / 2;\n var xAxisPoints = [];\n if (calPoints && calPoints.length > 0) {\n if (!opts.categories) {\n spacing = 0;\n } else {\n for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n }\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n xAxisPoints = opts.chartData.xAxisPoints;\n }\n }\n if (isInExactChartArea(currentPoints, opts, config)) {\n if (!opts.categories) {\n var timePoints = Array(calPoints.length);\n for (var _i3 = 0; _i3 < calPoints.length; _i3++) {\n timePoints[_i3] = Array(calPoints[_i3].length);\n for (var j = 0; j < calPoints[_i3].length; j++) {\n timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);\n }\n };\n var pointValue = Array(timePoints.length);\n var pointIndex = Array(timePoints.length);\n for (var _i4 = 0; _i4 < timePoints.length; _i4++) {\n pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);\n pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);\n }\n var minValue = Math.min.apply(null, pointValue);\n current.index = [];\n for (var _i5 = 0; _i5 < pointValue.length; _i5++) {\n if (pointValue[_i5] == minValue) {\n current.group.push(_i5);\n current.index.push(pointIndex[_i5]);\n }\n };\n } else {\n xAxisPoints.forEach(function (item, index) {\n if (currentPoints.x + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n }\n return current;\n}\n\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = { index: -1, group: [] };\n var spacing = opts.chartData.eachSpacing / 2;\n var yAxisPoints = opts.chartData.yAxisPoints;\n if (calPoints && calPoints.length > 0) {\n if (isInExactChartArea(currentPoints, opts, config)) {\n yAxisPoints.forEach(function (item, index) {\n if (currentPoints.y + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n return current;\n}\n\nfunction findLegendIndex(currentPoints, legendData, opts) {\n var currentIndex = -1;\n var gap = 0;\n if (isInExactLegendArea(currentPoints, legendData.area)) {\n var points = legendData.points;\n var index = -1;\n for (var i = 0, len = points.length; i < len; i++) {\n var item = points[i];\n for (var j = 0; j < item.length; j++) {\n index += 1;\n var area = item[j]['area'];\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n currentIndex = index;\n break;\n }\n }\n }\n return currentIndex;\n }\n return currentIndex;\n}\n\nfunction isInExactLegendArea(currentPoints, area) {\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\n\nfunction isInExactChartArea(currentPoints, opts, config) {\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\n\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n var eachAngleArea = 2 * Math.PI / count;\n var currentIndex = -1;\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n var fixAngle = function fixAngle(angle) {\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n if (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n };\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n angle = -1 * angle;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n var angleList = radarData.angleList.map(function (item) {\n item = fixAngle(-1 * item);\n return item;\n });\n angleList.forEach(function (item, index) {\n var rangeStart = fixAngle(item - eachAngleArea / 2);\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\n if (rangeEnd < rangeStart) {\n rangeEnd += 2 * Math.PI;\n }\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n currentIndex = index;\n }\n });\n }\n return currentIndex;\n}\n\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n var currentIndex = -1;\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\n var item = funnelData.series[i];\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\n\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n var currentIndex = -1;\n for (var i = 0, len = wordData.length; i < len; i++) {\n var item = wordData[i];\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\n\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n var currentIndex = -1;\n var cData = opts.chartData.mapData;\n var data = opts.series;\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n var poi = [tmp.x, tmp.y];\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i].geometry.coordinates;\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\n\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\n\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getPieDataPoints(pieData.series);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n }\n if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\n\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\n\n\nfunction splitPoints(points, eachSeries) {\n var newPoints = [];\n var items = [];\n points.forEach(function (item, index) {\n if (eachSeries.connectNulls) {\n if (item !== null) {\n items.push(item);\n }\n } else {\n if (item !== null) {\n items.push(item);\n } else {\n if (items.length) {\n newPoints.push(items);\n }\n items = [];\n }\n }\n\n });\n if (items.length) {\n newPoints.push(items);\n }\n return newPoints;\n}\n\n\nfunction calLegendData(series, opts, config, chartData, context) {\n var legendData = {\n area: {\n start: {\n x: 0,\n y: 0 },\n\n end: {\n x: 0,\n y: 0 },\n\n width: 0,\n height: 0,\n wholeWidth: 0,\n wholeHeight: 0 },\n\n points: [],\n widthArr: [],\n heightArr: [] };\n\n if (opts.legend.show === false) {\n chartData.legendData = legendData;\n return legendData;\n }\n var padding = opts.legend.padding * opts.pix;\n var margin = opts.legend.margin * opts.pix;\n var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n var legendList = [];\n var widthCount = 0;\n var widthCountArr = [];\n var currentRow = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var legendText = item.legendText ? item.legendText : item.name;\n var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n widthCount = itemWidth;\n currentRow = [item];\n } else {\n widthCount += itemWidth;\n currentRow.push(item);\n }\n }\n if (currentRow.length) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n legendData.widthArr = widthCountArr;\n var legendWidth = Math.max.apply(null, widthCountArr);\n switch (opts.legend.float) {\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n default:\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;}\n\n legendData.area.width = legendWidth + 2 * padding;\n legendData.area.wholeWidth = legendWidth + 2 * padding;\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n legendData.points = legendList;\n }\n } else {\n var len = series.length;\n var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n legendData.area.height = maxLength * lineHeight + padding * 2;\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n switch (opts.legend.float) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n default:\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;}\n\n var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n var _currentRow = [];\n for (var _i6 = 0; _i6 < lineNum; _i6++) {\n var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);\n _currentRow.push(temp);\n }\n legendData.points = _currentRow;\n if (_currentRow.length) {\n for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {\n var _item = _currentRow[_i7];\n var maxWidth = 0;\n for (var j = 0; j < _item.length; j++) {\n var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (_itemWidth > maxWidth) {\n maxWidth = _itemWidth;\n }\n }\n legendData.widthArr.push(maxWidth);\n legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n }\n var _legendWidth = 0;\n for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {\n _legendWidth += legendData.widthArr[_i8];\n }\n legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n legendData.area.wholeWidth = legendData.area.width + padding;\n }\n }\n switch (opts.legend.position) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendData.area.width;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n legendData.area.end.x = opts.width - opts.area[1];\n break;}\n\n chartData.legendData = legendData;\n return legendData;\n}\n\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight };\n\n var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n var categoriesTextLenth = categories.map(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n return measureText(String(xitem), fontSize, context);\n });\n\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n if (opts.xAxis.rotateLabel == true) {\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\n var tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle));\n tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\n if (opts.enableScroll == true && opts.xAxis.scrollShow == true) {\n tempHeight += 12 * opts.pix;\n }\n result.xAxisHeight = tempHeight;\n }\n if (opts.xAxis.disabled) {\n result.xAxisHeight = 0;\n }\n return result;\n}\n\nfunction getXAxisTextList(series, opts, config, stack) {\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if (typeof item === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if (typeof item === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[0]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n\n var minData = 0;\n var maxData = 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n //为了兼容v1.9.0之前的项目\n if (index > -1) {\n if (typeof opts.xAxis.data[index].min === 'number') {\n minData = Math.min(opts.xAxis.data[index].min, minData);\n }\n if (typeof opts.xAxis.data[index].max === 'number') {\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\n }\n } else {\n if (typeof opts.xAxis.min === 'number') {\n minData = Math.min(opts.xAxis.min, minData);\n }\n if (typeof opts.xAxis.max === 'number') {\n maxData = Math.max(opts.xAxis.max, maxData);\n }\n }\n if (minData === maxData) {\n var rangeSpan = maxData || 10;\n maxData += rangeSpan;\n }\n //var dataRange = getDataRange(minData, maxData);\n var minRange = minData;\n var maxRange = maxData;\n var range = [];\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range;\n}\n\nfunction calXAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\" },\n opts.extra.bar);\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight };\n\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n result.rangesFormat = result.ranges.map(function (item) {\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n item = util.toFixed(item, 2);\n return item;\n });\n var xAxisScaleValues = result.ranges.map(function (item) {\n // 如果刻度值是浮点数,则保留两位小数\n item = util.toFixed(item, 2);\n // 若有自定义格式则调用自定义的格式化函数\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n return item;\n });\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\n var eachSpacing = result.eachSpacing;\n var textLength = xAxisScaleValues.map(function (item) {\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n });\n // get max length of categories text\n var maxTextLength = Math.max.apply(this, textLength);\n // 如果刻度值文本内容过长,则将其逆时针旋转45°\n if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n result.angle = 45 * Math.PI / 180;\n result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n }\n if (opts.xAxis.disabled === true) {\n result.xAxisHeight = 0;\n }\n return result;\n}\n\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var radarOption = opts.extra.radar || {};\n radarOption.max = radarOption.max || 0;\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var data = [];var _loop2 = function _loop2(\n i) {\n var each = series[i];\n var listItem = {};\n listItem.color = each.color;\n listItem.legendShape = each.legendShape;\n listItem.pointShape = each.pointShape;\n listItem.data = [];\n each.data.forEach(function (item, index) {\n var tmp = {};\n tmp.angle = angleList[index];\n tmp.proportion = item / maxData;\n tmp.value = item;\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n listItem.data.push(tmp);\n });\n data.push(listItem);};for (var i = 0; i < series.length; i++) {_loop2(i);\n }\n return data;\n}\n\nfunction getPieDataPoints(series, radius) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var count = 0;\n var _start_ = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n }\n for (var _i9 = 0; _i9 < series.length; _i9++) {\n var _item2 = series[_i9];\n _item2.data = _item2.data === null ? 0 : _item2.data;\n if (count === 0) {\n _item2._proportion_ = 1 / series.length * process;\n } else {\n _item2._proportion_ = _item2.data / count * process;\n }\n _item2._radius_ = radius;\n }\n for (var _i10 = 0; _i10 < series.length; _i10++) {\n var _item3 = series[_i10];\n _item3._start_ = _start_;\n _start_ += 2 * _item3._proportion_ * Math.PI;\n }\n return series;\n}\n\nfunction getFunnelDataPoints(series, radius, option, eachSpacing) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n for (var i = 0; i < series.length; i++) {\n if (option.type == 'funnel') {\n series[i].radius = series[i].data / series[0].data * radius * process;\n } else {\n series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n }\n series[i]._proportion_ = series[i].data / series[0].data;\n }\n // if(option.type !== 'pyramid'){\n // series.reverse();\n // }\n return series;\n}\n\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var count = 0;\n var _start_ = 0;\n var dataArr = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n dataArr.push(item.data);\n }\n var minData = Math.min.apply(null, dataArr);\n var maxData = Math.max.apply(null, dataArr);\n var radiusLength = radius - minRadius;\n for (var _i11 = 0; _i11 < series.length; _i11++) {\n var _item4 = series[_i11];\n _item4.data = _item4.data === null ? 0 : _item4.data;\n if (count === 0) {\n _item4._proportion_ = 1 / series.length * process;\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._proportion_ = _item4.data / count * process;\n if (type == 'area') {\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._rose_proportion_ = _item4.data / count * process;\n }\n }\n _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n }\n for (var _i12 = 0; _i12 < series.length; _i12++) {\n var _item5 = series[_i12];\n _item5._start_ = _start_;\n _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n }\n return series;\n}\n\nfunction getArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.direction == 'ccw') {\n if (arcbarOption.startAngle < arcbarOption.endAngle) {\n totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (arcbarOption.direction == 'ccw') {\n item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\n\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\n\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n var totalAngle = startAngle - endAngle + 1;\n var tempStartAngle = startAngle;\n for (var i = 0; i < categories.length; i++) {\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n categories[i]._startAngle_ = tempStartAngle;\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n if (categories[i]._endAngle_ >= 2) {\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n }\n tempStartAngle = categories[i]._endAngle_;\n }\n return categories;\n}\n\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n if (gaugeOption.pointer.color == 'auto') {\n for (var _i13 = 0; _i13 < categories.length; _i13++) {\n if (item.data <= categories[_i13].value) {\n item.color = categories[_i13].color;\n break;\n }\n }\n } else {\n item.color = gaugeOption.pointer.color;\n }\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n item._oldAngle_ = gaugeOption.oldAngle;\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n item._oldAngle_ += 2;\n }\n if (item.data >= gaugeOption.oldData) {\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n } else {\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\n\nfunction getPieTextMaxLength(series, config, context, opts) {\n series = getPieDataPoints(series);\n var maxLength = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n }\n return maxLength;\n}\n\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n if (opts.type == 'mix') {\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n } else {\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n }\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n }\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\n\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\n\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n item.width = eachSpacing - 2 * categoryGap;\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (index > 0) {\n item.width -= border;\n }\n return item;\n });\n}\n\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\n\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\n\nfunction getXAxisPoints(categories, opts, config) {\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n dataCount -= 1;\n }\n var widthRatio = 0;\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n widthRatio = opts.extra.mount.widthRatio - 1;\n dataCount += widthRatio;\n }\n var eachSpacing = spacingValid / dataCount;\n var xAxisPoints = [];\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n categories.forEach(function (item, index) {\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\n });\n if (opts.xAxis.boundaryGap !== 'justify') {\n if (opts.enableScroll === true) {\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\n } else {\n xAxisPoints.push(endX);\n }\n }\n return {\n xAxisPoints: xAxisPoints,\n startX: startX,\n endX: endX,\n eachSpacing: eachSpacing };\n\n}\n\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var cPoints = [];\n item.forEach(function (items, indexs) {\n var point = {};\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n var value = items.value || items;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n cPoints.push(point);\n });\n points.push(cPoints);\n }\n });\n return points;\n}\n\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var boundaryGap = 'center';\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n var value = item;\n if (typeof item === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n if (opts.type == 'bubble') {\n point.r = item[2];\n point.t = item[3];\n }\n } else {\n value = item.value;\n }\n }\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\n\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n var mountWidth = eachSpacing * mountOption.widthRatio;\n series.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n point.x += eachSpacing / 2;\n var value = item.data;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n point.value = value;\n point.width = mountWidth;\n points.push(point);\n }\n });\n return points;\n}\n\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n var value = item;\n if (typeof item === 'object' && item !== null) {\n value = item.value;\n }\n var height = validWidth * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.height = height;\n point.value = value;\n point.x = height + opts.area[3];\n points.push(point);\n }\n });\n return points;\n}\n\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if (typeof item === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\n\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if (typeof item === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.height = height - heightc;\n point.x = opts.area[3] + height;\n point.x0 = opts.area[3] + heightc;\n points.push(point);\n }\n });\n return points;\n}\n\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if (typeof item === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if (typeof item === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[1]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = yData.min || 0;\n var maxData = yData.max || 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n if (minData === maxData) {\n if (maxData == 0) {\n maxData = 10;\n } else {\n minData = 0;\n }\n }\n var dataRange = getDataRange(minData, maxData);\n var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n var range = [];\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range.reverse();\n}\n\nfunction calYAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\" },\n opts.extra.column);\n //如果是多Y轴,重新计算\n var YLength = opts.yAxis.data.length;\n var newSeries = new Array(YLength);\n if (YLength > 0) {\n for (var i = 0; i < YLength; i++) {\n newSeries[i] = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].index == i) {\n newSeries[i].push(series[j]);\n }\n }\n }\n var rangesArr = new Array(YLength);\n var rangesFormatArr = new Array(YLength);\n var yAxisWidthArr = new Array(YLength);var _loop3 = function _loop3(\n\n _i14) {\n var yData = opts.yAxis.data[_i14];\n //如果总开关不显示,强制每个Y轴为不显示\n if (opts.yAxis.disabled == true) {\n yData.disabled = true;\n }\n if (yData.type === 'categories') {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {return val + (yData.unit || '');};\n }\n yData.categories = yData.categories || opts.categories;\n rangesArr[_i14] = yData.categories;\n } else {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');};\n }\n rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);\n }\n var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n yAxisWidthArr[_i14] = {\n position: yData.position ? yData.position : 'left',\n width: 0 };\n\n rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {\n items = yData.formatter(items, index, opts);\n yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);\n return items;\n });\n var calibration = yData.calibration ? 4 * opts.pix : 0;\n yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;\n if (yData.disabled === true) {\n yAxisWidthArr[_i14].width = 0;\n }};for (var _i14 = 0; _i14 < YLength; _i14++) {_loop3(_i14);\n }\n } else {\n var rangesArr = new Array(1);\n var rangesFormatArr = new Array(1);\n var yAxisWidthArr = new Array(1);\n if (opts.type === 'bar') {\n rangesArr[0] = opts.categories;\n } else {\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n }\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0 };\n\n\n if (opts.yAxis.disabled === true) {\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0 };\n\n opts.yAxis.data[0] = {\n disabled: true };\n\n } else {\n opts.yAxis.data[0] = {\n disabled: false,\n position: 'left',\n max: opts.yAxis.max,\n min: opts.yAxis.min,\n formatter: function formatter(val, index, opts) {return val;} };\n\n if (opts.type === 'bar') {\n opts.yAxis.data[0].categories = opts.categories;\n opts.yAxis.data[0].type = 'categories';\n }\n }\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n rangesFormatArr[0] = rangesArr[0].map(function (item, index) {\n item = opts.yAxis.data[0].formatter(item, index, opts);\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n return item;\n });\n yAxisWidthArr[0].width += 3 * opts.pix;\n }\n return {\n rangesFormat: rangesFormatArr,\n ranges: rangesArr,\n yAxisWidth: yAxisWidthArr };\n\n}\n\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n var ranges = [].concat(opts.chartData.yAxisData.ranges);\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var minAxis = opts.area[0];\n var items = [];\n for (var i = 0; i < ranges.length; i++) {\n var maxVal = Math.max.apply(this, ranges[i]);\n var minVal = Math.min.apply(this, ranges[i]);\n var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);\n items.push(String(item));\n }\n return items;\n}\n\nfunction calMarkLineData(points, opts) {\n var minRange, maxRange;\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n for (var i = 0; i < points.length; i++) {\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n minRange = range.pop();\n maxRange = range.shift();\n var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n points[i].y = opts.height - Math.round(height) - opts.area[2];\n }\n return points;\n}\n\nfunction contextRotate(context, opts) {\n if (opts.rotateLock !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n } else if (opts._rotate_ !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n opts._rotate_ = true;\n }\n}\n\nfunction drawPointShape(points, color, shape, context, opts) {\n context.beginPath();\n if (opts.dataPointShapeType == 'hollow') {\n context.setStrokeStyle(color);\n context.setFillStyle(opts.background);\n context.setLineWidth(2 * opts.pix);\n } else {\n context.setStrokeStyle(\"#ffffff\");\n context.setFillStyle(color);\n context.setLineWidth(1 * opts.pix);\n }\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'none') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\n\nfunction drawRingTitle(opts, config, context, center) {\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n var title = opts.title.name || '';\n var subtitle = opts.subtitle.name || '';\n var titleFontColor = opts.title.color || opts.fontColor;\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n var titleHeight = title ? titlefontSize : 0;\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\n var margin = 5;\n if (subtitle) {\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n if (title) {\n startY += (titleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(subtitlefontSize * opts.pix);\n context.setFillStyle(subtitleFontColor);\n context.fillText(subtitle, startX, startY);\n context.closePath();\n context.stroke();\n }\n if (title) {\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n if (subtitle) {\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(titlefontSize * opts.pix);\n context.setFillStyle(titleFontColor);\n context.fillText(title, _startX, _startY);\n context.closePath();\n context.stroke();\n }\n}\n\nfunction drawPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if (typeof data[index] === 'object' && data[index] !== null) {\n if (data[index].constructor.toString().indexOf('Array') > -1) {\n value = data[index][1];\n } else {\n value = data[index].value;\n }\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\n\nfunction drawMountPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series[index].textColor || opts.fontColor);\n var value = item.value;\n var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\n\nfunction drawBarPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if (typeof data[index] === 'object' && data[index] !== null) {\n value = data[index].value;\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('left');\n context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n context.closePath();\n context.stroke();\n }\n });\n}\n\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n radius = radius < 10 ? 10 : radius;\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n var nowAngle = gaugeOption.startAngle;\n var nowNumber = gaugeOption.startNumber;\n for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n var pos = {\n x: radius * Math.cos(nowAngle * Math.PI),\n y: radius * Math.sin(nowAngle * Math.PI) };\n\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n pos.y += centerPosition.y;\n var startX = pos.x;\n var startY = pos.y;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n context.fillText(labelText, startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n nowAngle += splitAngle;\n if (nowAngle >= 2) {\n nowAngle = nowAngle % 2;\n }\n nowNumber += splitNumber;\n }\n}\n\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n var radarOption = opts.extra.radar || {};\n angleList.forEach(function (angle, index) {\n if (radarOption.labelPointShow === true && opts.categories[index] !== '') {\n var posPoint = {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle) };\n\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\n context.setFillStyle(radarOption.labelPointColor);\n context.beginPath();\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\n context.closePath();\n context.fill();\n }\n var pos = {\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle) };\n\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n var startX = posRelativeCanvas.x;\n var startY = posRelativeCanvas.y;\n if (util.approximatelyEqual(pos.x, 0)) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n } else if (pos.x < 0) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n }\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n });\n\n}\n\nfunction drawPieText(series, opts, config, context, radius, center) {\n var lineRadius = config.pieChartLinePadding;\n var textObjectCollection = [];\n var lastTextObject = null;\n var seriesConvert = series.map(function (item, index) {\n var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n text = item.labelText ? item.labelText : text;\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n if (item._rose_proportion_) {\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n }\n var color = item.color;\n var radius = item._radius_;\n return {\n arc: arc,\n text: text,\n color: color,\n radius: radius,\n textColor: item.textColor,\n textSize: item.textSize,\n labelShow: item.labelShow };\n\n });\n for (var i = 0; i < seriesConvert.length; i++) {\n var item = seriesConvert[i];\n // line end\n var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n // line start\n var orginX2 = Math.cos(item.arc) * item.radius;\n var orginY2 = Math.sin(item.arc) * item.radius;\n // text start\n var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n var orginY3 = orginY1;\n var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n var startY = orginY3;\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n x: orginX3 }))\n {\n if (orginX3 > 0) {\n startY = Math.min(orginY3, lastTextObject.start.y);\n } else if (orginX1 < 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n if (orginY3 > 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n startY = Math.min(orginY3, lastTextObject.start.y);\n }\n }\n }\n if (orginX3 < 0) {\n orginX3 -= textWidth;\n }\n var textObject = {\n lineStart: {\n x: orginX2,\n y: orginY2 },\n\n lineEnd: {\n x: orginX1,\n y: orginY1 },\n\n start: {\n x: orginX3,\n y: startY },\n\n width: textWidth,\n height: config.fontSize,\n text: item.text,\n color: item.color,\n textColor: item.textColor,\n textSize: item.textSize };\n\n lastTextObject = avoidCollision(textObject, lastTextObject);\n textObjectCollection.push(lastTextObject);\n }\n for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {\n if (seriesConvert[_i15].labelShow === false) {\n continue;\n }\n var _item6 = textObjectCollection[_i15];\n var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n context.setLineWidth(1 * opts.pix);\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.beginPath();\n context.setStrokeStyle(_item6.color);\n context.setFillStyle(_item6.color);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(textPosition.x + _item6.width, textPosition.y);\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.setFillStyle(_item6.textColor || opts.fontColor);\n context.fillText(_item6.text, textStartX, textPosition.y + 3);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n}\n\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n var toolTipOption = opts.extra.tooltip || {};\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(offsetX, startY);\n context.lineTo(offsetX, endY);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.xAxisLabel) {\n var labelText = opts.categories[opts.tooltip.index];\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var textX = offsetX - 0.5 * textWidth;\n var textY = endY + 2 * opts.pix;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\n context.closePath();\n context.stroke();\n }\n}\n\nfunction drawMarkLine(opts, config, context) {\n var markLineOption = assign({}, {\n type: 'solid',\n dashLength: 4,\n data: [] },\n opts.extra.markLine);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var points = calMarkLineData(markLineOption.data, opts);\n for (var i = 0; i < points.length; i++) {\n var item = assign({}, {\n lineColor: '#DE4A42',\n showLabel: false,\n labelFontColor: '#666666',\n labelBgColor: '#DFE8FF',\n labelBgOpacity: 0.8,\n labelAlign: 'left',\n labelOffsetX: 0,\n labelOffsetY: 0 },\n points[i]);\n if (markLineOption.type == 'dash') {\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n }\n context.setStrokeStyle(item.lineColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, item.y);\n context.lineTo(endX, item.y);\n context.stroke();\n context.setLineDash([]);\n if (item.showLabel) {\n var labelText = item.labelText ? item.labelText : item.value;\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var bgWidth = textWidth + config.toolTipPadding * 2;\n var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\n bgStartX += item.labelOffsetX;\n var bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\n bgStartY += item.labelOffsetY;\n var textX = bgStartX + config.toolTipPadding;\n var textY = item.y;\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n context.setStrokeStyle(item.labelBgColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.setFontSize(config.fontSize);\n context.setTextAlign('left');\n context.setFillStyle(item.labelFontColor);\n context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding / 2);\n context.stroke();\n context.setTextAlign('left');\n }\n }\n}\n\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n gridType: 'solid',\n dashLength: 4 },\n opts.extra.tooltip);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, opts.tooltip.offset.y);\n context.lineTo(endX, opts.tooltip.offset.y);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.yAxisLabel) {\n var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n var widthArr = opts.chartData.yAxisData.yAxisWidth;\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n for (var i = 0; i < labelText.length; i++) {\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText[i], config.fontSize, context);\n var bgStartX = void 0,bgEndX = void 0,bgWidth = void 0;\n if (widthArr[i].position == 'left') {\n bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n } else {\n bgStartX = tStartRight + 2 * opts.pix;\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\n }\n bgWidth = bgEndX - bgStartX;\n var textX = bgStartX + (bgWidth - textWidth) / 2;\n var textY = opts.tooltip.offset.y;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n context.closePath();\n context.stroke();\n if (widthArr[i].position == 'left') {\n tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n }\n }\n }\n}\n\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08,\n activeWidth: eachSpacing },\n opts.extra.column);\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\n\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08 },\n opts.extra.bar);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\n\n\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n showBox: true,\n showArrow: true,\n showCategory: false,\n bgColor: '#000000',\n bgOpacity: 0.7,\n borderColor: '#000000',\n borderWidth: 0,\n borderRadius: 0,\n borderOpacity: 0.7,\n fontColor: '#FFFFFF',\n splitLine: true },\n opts.extra.tooltip);\n if (toolTipOption.showCategory == true && opts.categories) {\n textList.unshift({ text: opts.categories[opts.tooltip.index], color: null });\n }\n var legendWidth = 4 * opts.pix;\n var legendMarginRight = 5 * opts.pix;\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n var isOverRightBorder = false;\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n if (toolTipOption.splitLine == true) {\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n }\n }\n offset = assign({\n x: 0,\n y: 0 },\n offset);\n offset.y -= 8 * opts.pix;\n var textWidth = textList.map(function (item) {\n return measureText(item.text, config.fontSize, context);\n });\n var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\n var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\n if (toolTipOption.showBox == false) {\n return;\n }\n // if beyond the right border\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n isOverRightBorder = true;\n }\n if (toolTipHeight + offset.y > opts.height) {\n offset.y = opts.height - toolTipHeight;\n }\n // draw background rect\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n var radius = toolTipOption.borderRadius;\n if (isOverRightBorder) {\n // 增加左侧仍然超出的判断\n if (toolTipWidth + arrowWidth > opts.width) {\n offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n }\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n }\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,\n Math.PI / 2, Math.PI, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n } else {\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n }\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,\n false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\n Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n }\n context.closePath();\n context.fill();\n if (toolTipOption.borderWidth > 0) {\n context.stroke();\n }\n // draw legend\n textList.forEach(function (item, index) {\n if (item.color !== null) {\n context.beginPath();\n context.setFillStyle(item.color);\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\n }\n context.fillRect(startX, startY, legendWidth, config.fontSize);\n // 圆形图例请注释上行,并把下行取消注释\n // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n });\n // draw text list\n textList.forEach(function (item, index) {\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\n }\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.fontColor);\n context.fillText(item.text, startX, startY + config.fontSize);\n context.closePath();\n context.stroke();\n });\n}\n\nfunction drawColumnDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0 },\n opts.extra.column);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _columnOption$barBord = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],r3 = _columnOption$barBord[3];\n var minRadius = Math.min(width / 2, _height / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n };\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i16 = 0; _i16 < points.length; _i16++) {\n var _item7 = points[_i16];\n if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {\n context.beginPath();\n var fillColor = _item7.color || eachSeries.color;\n var startX = _item7.x - _item7.width / 2 + 1;\n var height = opts.height - _item7.y - opts.area[2];\n var height0 = opts.height - _item7.y0 - opts.area[2];\n if (seriesIndex > 0) {\n height -= height0;\n }\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item7.y);\n context.fillRect(startX, _item7.y, _item7.width, height);\n context.closePath();\n context.fill();\n }\n };\n break;\n case 'meter':\n // 绘制温度计数据图\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n for (var _i17 = 0; _i17 < points.length; _i17++) {\n var _item8 = points[_i17];\n if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {\n //画背景颜色\n context.beginPath();\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(columnOption.meterBorder * opts.pix);\n }\n if (seriesIndex == 0) {\n context.setFillStyle(columnOption.meterFillColor);\n } else {\n context.setFillStyle(_item8.color || eachSeries.color);\n }\n var startX = _item8.x - _item8.width / 2;\n var height = opts.height - _item8.y - opts.area[2];\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var _left = startX;\n var _top = _item8.y;\n var _width = _item8.width;\n var _height2 = opts.height - opts.area[2] - _item8.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];\n }var _columnOption$barBord2 = _slicedToArray(\n columnOption.barBorderRadius, 4),_r = _columnOption$barBord2[0],_r2 = _columnOption$barBord2[1],_r3 = _columnOption$barBord2[2],_r4 = _columnOption$barBord2[3];\n var _minRadius = Math.min(_width / 2, _height2 / 2);\n _r = _r > _minRadius ? _minRadius : _r;\n _r2 = _r2 > _minRadius ? _minRadius : _r2;\n _r3 = _r3 > _minRadius ? _minRadius : _r3;\n _r4 = _r4 > _minRadius ? _minRadius : _r4;\n _r = _r < 0 ? 0 : _r;\n _r2 = _r2 < 0 ? 0 : _r2;\n _r3 = _r3 < 0 ? 0 : _r3;\n _r4 = _r4 < 0 ? 0 : _r4;\n context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);\n context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);\n context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);\n context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);\n context.fill();\n } else {\n context.moveTo(startX, _item8.y);\n context.lineTo(startX + _item8.width, _item8.y);\n context.lineTo(startX + _item8.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, _item8.y);\n context.fill();\n }\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.closePath();\n context.stroke();\n }\n }\n }\n break;}\n\n });\n\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'meter':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;}\n\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawMountDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var mountOption = assign({}, {\n type: 'mount',\n widthRatio: 1,\n borderWidth: 1,\n barBorderCircle: false,\n barBorderRadius: [],\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0 },\n opts.extra.mount);\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n switch (mountOption.type) {\n case 'bar':\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || series[i].color;\n var strokeColor = item.color || series[i].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height3 = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2;\n if (mountOption.barBorderCircle) {\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _mountOption$barBorde = _slicedToArray(\n mountOption.barBorderRadius, 4),r0 = _mountOption$barBorde[0],r1 = _mountOption$barBorde[1],r2 = _mountOption$barBorde[2],r3 = _mountOption$barBorde[3];\n var minRadius = Math.min(width / 2, _height3 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n }\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.closePath();\n context.stroke();\n }\n context.fill();\n }\n };\n break;\n case 'triangle':\n for (var _i18 = 0; _i18 < points.length; _i18++) {\n var _item9 = points[_i18];\n if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {\n var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item9.y - opts.area[2];\n context.beginPath();\n var fillColor = _item9.color || series[_i18].color;\n var strokeColor = _item9.color || series[_i18].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item9.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(_item9.x, _item9.y);\n context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n };\n break;\n case 'mount':\n for (var _i19 = 0; _i19 < points.length; _i19++) {\n var _item10 = points[_i19];\n if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item10.y - opts.area[2];\n context.beginPath();\n var fillColor = _item10.color || series[_i19].color;\n var strokeColor = _item10.color || series[_i19].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item10.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.bezierCurveTo(_item10.x - _item10.width / 4, opts.height - opts.area[2], _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);\n context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, opts.height - opts.area[2], startX + _item10.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n };\n break;\n case 'sharp':\n for (var _i20 = 0; _i20 < points.length; _i20++) {\n var _item11 = points[_i20];\n if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {\n var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item11.y - opts.area[2];\n context.beginPath();\n var fillColor = _item11.color || series[_i20].color;\n var strokeColor = _item11.color || series[_i20].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item11.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.quadraticCurveTo(_item11.x - 0, opts.height - opts.area[2] - height / 4, _item11.x, _item11.y);\n context.quadraticCurveTo(_item11.x + 0, opts.height - opts.area[2] - height / 4, startX + _item11.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n };\n break;}\n\n\n if (opts.dataLabel !== false && process === 1) {\n var _ranges, _minRange, _maxRange;\n _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n _minRange = _ranges.pop();\n _maxRange = _ranges.shift();\n var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n drawMountPointText(points, series, config, context, opts);\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: points,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawBarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var yAxisPoints = [];\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n for (var i = 0; i < opts.categories.length; i++) {\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n }\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0 },\n opts.extra.bar);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = yAxisPoints.length + 2;\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var _i21 = 0; _i21 < points.length; _i21++) {\n var item = points[_i21];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && _i21 > leftNum && _i21 < rightNum) {\n //var startX = item.x - item.width / 2;\n var startX = opts.area[3];\n var startY = item.y - item.width / 2;\n var height = item.height;\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var width = item.width;\n var top = item.y - item.width / 2;\n var _height4 = item.height;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _columnOption$barBord3 = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[3];\n var minRadius = Math.min(width / 2, _height4 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, startY);\n context.lineTo(item.x, startY);\n context.lineTo(item.x, startY + item.width);\n context.lineTo(startX, startY + item.width);\n context.lineTo(startX, startY);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n };\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i22 = 0; _i22 < points.length; _i22++) {\n var _item12 = points[_i22];\n if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {\n context.beginPath();\n var fillColor = _item12.color || eachSeries.color;\n var startX = _item12.x0;\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item12.y - _item12.width / 2);\n context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);\n context.closePath();\n context.fill();\n }\n };\n break;}\n\n });\n\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;}\n\n });\n }\n return {\n yAxisPoints: yAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var candleOption = assign({}, {\n color: {},\n average: {} },\n opts.extra.candle);\n candleOption.color = assign({}, {\n upLine: '#f04864',\n upFill: '#f04864',\n downLine: '#2fc25b',\n downFill: '#2fc25b' },\n candleOption.color);\n candleOption.average = assign({}, {\n show: false,\n name: [],\n day: [],\n color: config.color },\n candleOption.average);\n opts.extra.candle = candleOption;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n //画均线\n if (candleOption.average.show || seriesMA) {//Merge pull request !12 from 邱贵翔\n seriesMA.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points = splitPointList[i];\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(1);\n if (_points.length === 1) {\n context.moveTo(_points[0].x, _points[0].y);\n context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points[0].x, _points[0].y);\n var startPoint = 0;\n for (var j = 0; j < _points.length; j++) {\n var item = _points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,\n item.y);\n }\n }\n context.moveTo(_points[0].x, _points[0].y);\n }\n context.closePath();\n context.stroke();\n }\n });\n }\n //画K线\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList[0].length; i++) {\n if (i > leftNum && i < rightNum) {\n var item = splitPointList[0][i];\n context.beginPath();\n //如果上涨\n if (data[i][1] - data[i][0] > 0) {\n context.setStrokeStyle(candleOption.color.upLine);\n context.setFillStyle(candleOption.color.upFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n } else {\n context.setStrokeStyle(candleOption.color.downLine);\n context.setFillStyle(candleOption.color.downFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n }\n context.closePath();\n context.fill();\n context.stroke();\n }\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawAreaDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var areaOption = assign({}, {\n type: 'straight',\n opacity: 0.2,\n addLine: false,\n width: 2,\n gradient: false },\n opts.extra.area);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points2 = splitPointList[i];\n // 绘制区域数\n context.beginPath();\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length > 1) {\n var firstPoint = _points2[0];\n var lastPoint = _points2[_points2.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var j = 0; j < _points2.length; j++) {\n var item = _points2[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n };\n }\n if (areaOption.type === 'straight') {\n for (var _j = 0; _j < _points2.length; _j++) {\n var _item13 = _points2[_j];\n if (startPoint == 0 && _item13.x > leftSpace) {\n context.moveTo(_item13.x, _item13.y);\n startPoint = 1;\n }\n if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {\n context.lineTo(_item13.x, _item13.y);\n }\n };\n }\n if (areaOption.type === 'step') {\n for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n var _item14 = _points2[_j2];\n if (startPoint == 0 && _item14.x > leftSpace) {\n context.moveTo(_item14.x, _item14.y);\n startPoint = 1;\n }\n if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n context.lineTo(_item14.x, _points2[_j2 - 1].y);\n context.lineTo(_item14.x, _item14.y);\n }\n };\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item15 = _points2[0];\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, endY);\n context.lineTo(_item15.x - eachSpacing / 2, endY);\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n }\n context.closePath();\n context.fill();\n //画连线\n if (areaOption.addLine) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length === 1) {\n context.moveTo(_points2[0].x, _points2[0].y);\n context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points2[0].x, _points2[0].y);\n var _startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n var _item16 = _points2[_j3];\n if (_startPoint == 0 && _item16.x > leftSpace) {\n context.moveTo(_item16.x, _item16.y);\n _startPoint = 1;\n }\n if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);\n }\n };\n }\n if (areaOption.type === 'straight') {\n for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n var _item17 = _points2[_j4];\n if (_startPoint == 0 && _item17.x > leftSpace) {\n context.moveTo(_item17.x, _item17.y);\n _startPoint = 1;\n }\n if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n context.lineTo(_item17.x, _item17.y);\n }\n };\n }\n if (areaOption.type === 'step') {\n for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n var _item18 = _points2[_j5];\n if (_startPoint == 0 && _item18.x > leftSpace) {\n context.moveTo(_item18.x, _item18.y);\n _startPoint = 1;\n }\n if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n context.lineTo(_item18.x, _points2[_j5 - 1].y);\n context.lineTo(_item18.x, _item18.y);\n }\n };\n }\n context.moveTo(_points2[0].x, _points2[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n }\n }\n //画点\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawScatterDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var scatterOption = assign({}, {\n type: 'circle' },\n opts.extra.scatter);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setFillStyle(eachSeries.color);\n context.setLineWidth(1 * opts.pix);\n var shape = eachSeries.pointShape;\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'triangle') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawBubbleDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var bubbleOption = assign({}, {\n opacity: 1,\n border: 2 },\n opts.extra.bubble);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(bubbleOption.border * opts.pix);\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n points.forEach(function (item, index) {\n context.moveTo(item.x + item.r, item.y);\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n });\n context.closePath();\n context.fill();\n context.stroke();\n\n if (opts.dataLabel !== false && process === 1) {\n points.forEach(function (item, index) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || \"#FFFFFF\");\n context.setTextAlign('center');\n context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawLineDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var lineOption = assign({}, {\n type: 'straight',\n width: 2 },\n opts.extra.line);\n lineOption.width *= opts.pix;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width);\n splitPointList.forEach(function (points, index) {\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var startPoint = 0;\n if (lineOption.type === 'curve') {\n for (var j = 0; j < points.length; j++) {\n var item = points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n };\n }\n if (lineOption.type === 'straight') {\n for (var _j6 = 0; _j6 < points.length; _j6++) {\n var _item19 = points[_j6];\n if (startPoint == 0 && _item19.x > leftSpace) {\n context.moveTo(_item19.x, _item19.y);\n startPoint = 1;\n }\n if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n context.lineTo(_item19.x, _item19.y);\n }\n };\n }\n if (lineOption.type === 'step') {\n for (var _j7 = 0; _j7 < points.length; _j7++) {\n var _item20 = points[_j7];\n if (startPoint == 0 && _item20.x > leftSpace) {\n context.moveTo(_item20.x, _item20.y);\n startPoint = 1;\n }\n if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n context.lineTo(_item20.x, points[_j7 - 1].y);\n context.lineTo(_item20.x, _item20.y);\n }\n };\n }\n context.moveTo(points[0].x, points[0].y);\n }\n });\n context.stroke();\n context.setLineDash([]);\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\nfunction drawMixDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n width: eachSpacing / 2,\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0 },\n opts.extra.mix.column);\n var areaOption = assign({}, {\n opacity: 0.2,\n gradient: false },\n opts.extra.mix.area);\n var lineOption = assign({}, {\n width: 2 },\n opts.extra.mix.line);\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n var columnIndex = 0;\n var columnLength = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n if (eachSeries.type == 'column') {\n columnLength += 1;\n }\n });\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n // 绘制柱状数据图\n if (eachSeries.type == 'column') {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height5 = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }var _columnOption$barBord4 = _slicedToArray(\n columnOption.barBorderRadius, 4),r0 = _columnOption$barBord4[0],r1 = _columnOption$barBord4[1],r2 = _columnOption$barBord4[2],r3 = _columnOption$barBord4[3];\n var minRadius = Math.min(width / 2, _height5 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n context.fill();\n }\n }\n columnIndex += 1;\n }\n //绘制区域图数据\n if (eachSeries.type == 'area') {\n var _splitPointList = splitPoints(points, eachSeries);\n for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {\n var _points3 = _splitPointList[_i23];\n // 绘制区域数据\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(2 * opts.pix);\n if (_points3.length > 1) {\n var firstPoint = _points3[0];\n var lastPoint = _points3[_points3.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (eachSeries.style === 'curve') {\n for (var j = 0; j < _points3.length; j++) {\n var _item21 = _points3[j];\n if (startPoint == 0 && _item21.x > leftSpace) {\n context.moveTo(_item21.x, _item21.y);\n startPoint = 1;\n }\n if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);\n }\n };\n } else {\n for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n var _item22 = _points3[_j8];\n if (startPoint == 0 && _item22.x > leftSpace) {\n context.moveTo(_item22.x, _item22.y);\n startPoint = 1;\n }\n if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n context.lineTo(_item22.x, _item22.y);\n }\n };\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item23 = _points3[0];\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, endY);\n context.lineTo(_item23.x - eachSpacing / 2, endY);\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n }\n context.closePath();\n context.fill();\n }\n }\n // 绘制折线数据图\n if (eachSeries.type == 'line') {\n var splitPointList = splitPoints(points, eachSeries);\n splitPointList.forEach(function (points, index) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width * opts.pix);\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var _startPoint2 = 0;\n if (eachSeries.style == 'curve') {\n for (var _j9 = 0; _j9 < points.length; _j9++) {\n var _item24 = points[_j9];\n if (_startPoint2 == 0 && _item24.x > leftSpace) {\n context.moveTo(_item24.x, _item24.y);\n _startPoint2 = 1;\n }\n if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\n _item24.x, _item24.y);\n }\n }\n } else {\n for (var _j10 = 0; _j10 < points.length; _j10++) {\n var _item25 = points[_j10];\n if (_startPoint2 == 0 && _item25.x > leftSpace) {\n context.moveTo(_item25.x, _item25.y);\n _startPoint2 = 1;\n }\n if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {\n context.lineTo(_item25.x, _item25.y);\n }\n }\n }\n context.moveTo(points[0].x, points[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n });\n }\n // 绘制点数据图\n if (eachSeries.type == 'point') {\n eachSeries.addPoint = true;\n }\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n var columnIndex = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n if (eachSeries.type !== 'column') {\n drawPointText(points, eachSeries, config, context, opts);\n } else {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n columnIndex += 1;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing };\n\n}\n\n\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n var toolTipOption = opts.extra.tooltip || {};\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n }\n context.restore();\n\n}\n\nfunction drawXAxis(categories, opts, config, context) {\n\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n startX = xAxisData.startX,\n endX = xAxisData.endX,\n eachSpacing = xAxisData.eachSpacing;\n var boundaryGap = 'center';\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var startY = opts.height - opts.area[2];\n var endY = opts.area[0];\n\n //绘制滚动条\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n var scrollScreenWidth = endX - startX;\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;\n }\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n var scrollLeft = 0;\n if (opts._scrollDistance_) {\n scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n }\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n context.moveTo(startX, scrollY);\n context.lineTo(endX, scrollY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n context.moveTo(startX + scrollLeft, scrollY);\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n context.stroke();\n context.closePath();\n context.setLineCap('butt');\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n //绘制X轴刻度线\n if (opts.xAxis.calibration === true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n xAxisPoints.forEach(function (item, index) {\n if (index > 0) {\n context.beginPath();\n context.moveTo(item - eachSpacing / 2, startY);\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n context.closePath();\n context.stroke();\n }\n });\n }\n //绘制X轴网格\n if (opts.xAxis.disableGrid !== true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n if (opts.xAxis.gridType == 'dash') {\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n }\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n xAxisPoints.forEach(function (item, index) {\n if (index % opts.xAxis.gridEval == 0) {\n context.beginPath();\n context.moveTo(item, startY);\n context.lineTo(item, endY);\n context.stroke();\n }\n });\n context.setLineDash([]);\n }\n //绘制X轴文案\n if (opts.xAxis.disabled !== true) {\n // 对X轴列表做抽稀处理\n //默认全部显示X轴标签\n var maxXAxisListLength = categories.length;\n //如果设置了X轴单屏数量\n if (opts.xAxis.labelCount) {\n //如果设置X轴密度\n if (opts.xAxis.itemCount) {\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n } else {\n maxXAxisListLength = opts.xAxis.labelCount;\n }\n maxXAxisListLength -= 1;\n }\n\n var ratio = Math.ceil(categories.length / maxXAxisListLength);\n\n var newCategories = [];\n var cgLength = categories.length;\n for (var i = 0; i < cgLength; i++) {\n if (i % ratio !== 0) {\n newCategories.push(\"\");\n } else {\n newCategories.push(categories[i]);\n }\n }\n newCategories[cgLength - 1] = categories[cgLength - 1];\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n if (config._xAxisTextAngle_ === 0) {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n if (boundaryGap == 'center') {\n offset += eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\n context.closePath();\n context.stroke();\n }\n });\n } else {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.save();\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\n var offsetX = xAxisPoints[index];\n if (boundaryGap == 'center') {\n offsetX = xAxisPoints[index] + eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\n if (opts.xAxis.rotateAngle < 0) {\n offsetX -= xAxisFontSize / 2;\n textWidth = 0;\n } else {\n offsetX += xAxisFontSize / 2;\n textWidth = -textWidth;\n }\n context.translate(offsetX, offsetY);\n context.rotate(-1 * config._xAxisTextAngle_);\n context.fillText(String(xitem), textWidth, 0);\n context.closePath();\n context.stroke();\n context.restore();\n }\n });\n }\n }\n context.restore();\n //绘制X轴轴线\n if (opts.xAxis.axisLine) {\n context.beginPath();\n context.setStrokeStyle(opts.xAxis.axisLineColor);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(endX, opts.height - opts.area[2]);\n context.stroke();\n }\n}\n\nfunction drawYAxisGrid(categories, opts, config, context) {\n if (opts.yAxis.disableGrid === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;\n }\n var endX = startX + TotalWidth;\n var points = [];\n var startY = 1;\n if (opts.xAxis.axisLine === false) {\n startY = 0;\n }\n for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n points.push(opts.height - opts.area[2] - eachSpacing * i);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.yAxis.gridType == 'dash') {\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n }\n context.setStrokeStyle(opts.yAxis.gridColor);\n context.setLineWidth(1 * opts.pix);\n points.forEach(function (item, index) {\n context.beginPath();\n context.moveTo(startX, item);\n context.lineTo(endX, item);\n context.stroke();\n });\n context.setLineDash([]);\n context.restore();\n}\n\nfunction drawYAxis(series, opts, config, context) {\n if (opts.yAxis.disabled === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var endY = opts.height - opts.area[2];\n // set YAxis background\n context.beginPath();\n context.setFillStyle(opts.background);\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n context.fillRect(0, 0, startX, endY + 2 * opts.pix);\n }\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);\n }\n context.closePath();\n context.stroke();\n\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n if (opts.yAxis.data) {var _loop4 = function _loop4(\n i) {\n var yData = opts.yAxis.data[i];\n points = [];\n if (yData.type === 'categories') {\n for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);\n }\n } else {\n for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {\n points.push(opts.area[0] + eachSpacing * _i25);\n }\n }\n if (yData.disabled !== true) {\n var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n var textAlign = yData.textAlign || \"right\";\n //画Y轴刻度及文案\n rangesFormat.forEach(function (item, index) {\n var pos = points[index];\n context.beginPath();\n context.setFontSize(yAxisFontSize);\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setFillStyle(yData.fontColor || opts.fontColor);\n var tmpstrat = 0;\n var gapwidth = 4 * opts.pix;\n if (yAxisWidth.position == 'left') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartLeft, pos);\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartLeft - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartLeft - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartLeft - yAxisWidth.width / 2;}\n\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n\n } else if (yAxisWidth.position == 'right') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartRight, pos);\n context.lineTo(tStartRight + 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartRight + gapwidth;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartRight + yAxisWidth.width;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartRight + yAxisWidth.width / 2;}\n\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartCenter, pos);\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartCenter - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartCenter - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartCenter - yAxisWidth.width / 2;}\n\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n }\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n //画Y轴轴线\n if (yData.axisLine !== false) {\n context.beginPath();\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n if (yAxisWidth.position == 'left') {\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\n context.lineTo(tStartLeft, opts.area[0]);\n } else if (yAxisWidth.position == 'right') {\n context.moveTo(tStartRight, opts.height - opts.area[2]);\n context.lineTo(tStartRight, opts.area[0]);\n } else if (yAxisWidth.position == 'center') {\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\n context.lineTo(tStartCenter, opts.area[0]);\n }\n context.stroke();\n }\n //画Y轴标题\n if (opts.yAxis.showTitle) {\n var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n var title = yData.title;\n context.beginPath();\n context.setFontSize(titleFontSize);\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\n if (yAxisWidth.position == 'left') {\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n }\n context.closePath();\n context.stroke();\n }\n if (yAxisWidth.position == 'left') {\n tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n }\n }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);\n }\n }\n\n}\n\nfunction drawLegend(series, opts, config, context, chartData) {\n if (opts.legend.show === false) {\n return;\n }\n var legendData = chartData.legendData;\n var legendList = legendData.points;\n var legendArea = legendData.area;\n var padding = opts.legend.padding * opts.pix;\n var fontSize = opts.legend.fontSize * opts.pix;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var itemGap = opts.legend.itemGap * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n //画背景及边框\n context.beginPath();\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\n context.setStrokeStyle(opts.legend.borderColor);\n context.setFillStyle(opts.legend.backgroundColor);\n context.moveTo(legendArea.start.x, legendArea.start.y);\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n context.closePath();\n context.fill();\n context.stroke();\n legendList.forEach(function (itemList, listIndex) {\n var width = 0;\n var height = 0;\n width = legendData.widthArr[listIndex];\n height = legendData.heightArr[listIndex];\n var startX = 0;\n var startY = 0;\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n switch (opts.legend.float) {\n case 'left':\n startX = legendArea.start.x + padding;\n break;\n case 'right':\n startX = legendArea.start.x + legendArea.width - width;\n break;\n default:\n startX = legendArea.start.x + (legendArea.width - width) / 2;}\n\n startY = legendArea.start.y + padding + listIndex * lineHeight;\n } else {\n if (listIndex == 0) {\n width = 0;\n } else {\n width = legendData.widthArr[listIndex - 1];\n }\n startX = legendArea.start.x + padding + width;\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n }\n context.setFontSize(config.fontSize);\n for (var i = 0; i < itemList.length; i++) {\n var item = itemList[i];\n item.area = [0, 0, 0, 0];\n item.area[0] = startX;\n item.area[1] = startY;\n item.area[3] = startY + lineHeight;\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n switch (item.legendShape) {\n case 'line':\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n break;\n case 'triangle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'diamond':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'circle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n break;\n case 'rect':\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n break;\n case 'square':\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n break;\n case 'none':\n break;\n default:\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);}\n\n context.closePath();\n context.fill();\n context.stroke();\n startX += shapeWidth + shapeRight;\n var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n var legendText = item.legendText ? item.legendText : item.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n context.fillText(legendText, startX, startY + fontTrans);\n context.closePath();\n context.stroke();\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n startX += measureText(legendText, fontSize, context) + itemGap;\n item.area[2] = startX;\n } else {\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;\n startX -= shapeWidth + shapeRight;\n startY += lineHeight;\n }\n }\n });\n}\n\nfunction drawPieDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var pieOption = assign({}, {\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n ringWidth: 30,\n customRadius: 0,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n centerColor: '#FFFFFF',\n linearType: 'none',\n customColor: [] },\n opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n }\n\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n if (pieOption.customRadius > 0) {\n radius = pieOption.customRadius * opts.pix;\n }\n series = getPieDataPoints(series, radius, process);\n var activeRadius = pieOption.activeRadius * opts.pix;\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(pieOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(pieOption.borderColor);\n var fillcolor = eachSeries.color;\n if (pieOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (pieOption.border == true) {\n context.stroke();\n }\n });\n if (opts.type === 'ring') {\n var innerPieWidth = radius * 0.6;\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n }\n context.beginPath();\n context.setFillStyle(pieOption.centerColor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n if (process === 1 && opts.type === 'ring') {\n drawRingTitle(opts, config, context, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\n}\n\nfunction drawRoseDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var roseOption = assign({}, {\n type: 'area',\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n linearType: 'none',\n customColor: [] },\n opts.extra.rose);\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n }\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n var minRadius = roseOption.minRadius || radius * 0.5;\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n var activeRadius = roseOption.activeRadius * opts.pix;\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(roseOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(roseOption.borderColor);\n var fillcolor = eachSeries.color;\n if (roseOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (roseOption.border == true) {\n context.stroke();\n }\n });\n\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\n}\n\nfunction drawArcbarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var arcbarOption = assign({}, {\n startAngle: 0.75,\n endAngle: 0.25,\n type: 'default',\n direction: 'cw',\n lineCap: 'round',\n width: 12,\n gap: 2,\n linearType: 'none',\n customColor: [] },\n opts.extra.arcbar);\n series = getArcbarDataPoints(series, arcbarOption, process);\n var centerPosition;\n if (arcbarOption.centerX || arcbarOption.centerY) {\n centerPosition = {\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 };\n\n } else {\n centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2 };\n\n }\n var radius;\n if (arcbarOption.radius) {\n radius = arcbarOption.radius;\n } else {\n radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= arcbarOption.width / 2;\n }\n radius = radius < 10 ? 10 : radius;\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n\n for (var i = 0; i < series.length; i++) {\n var eachSeries = series[i];\n //背景颜色\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n if (arcbarOption.type == 'default') {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');\n } else {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');\n }\n context.stroke();\n //进度条\n var fillColor = eachSeries.color;\n if (arcbarOption.linearType == 'custom') {\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n fillColor = grd;\n }\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(fillColor);\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');\n context.stroke();\n }\n drawRingTitle(opts, config, context, centerPosition);\n return {\n center: centerPosition,\n radius: radius,\n series: series };\n\n}\n\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var gaugeOption = assign({}, {\n type: 'default',\n startAngle: 0.75,\n endAngle: 0.25,\n width: 15,\n labelOffset: 13,\n splitLine: {\n fixRadius: 0,\n splitNumber: 10,\n width: 15,\n color: '#FFFFFF',\n childNumber: 5,\n childWidth: 5 },\n\n pointer: {\n width: 15,\n color: 'auto' } },\n\n opts.extra.gauge);\n if (gaugeOption.oldAngle == undefined) {\n gaugeOption.oldAngle = gaugeOption.startAngle;\n }\n if (gaugeOption.oldData == undefined) {\n gaugeOption.oldData = 0;\n }\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n var centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2 };\n\n var radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= gaugeOption.width / 2;\n radius = radius < 10 ? 10 : radius;\n var innerRadius = radius - gaugeOption.width;\n var totalAngle = 0;\n //判断仪表盘的样式:default百度样式,progress新样式\n if (gaugeOption.type == 'progress') {\n //## 第一步画中心圆形背景和进度条背景\n //中心圆形背景\n var pieRadius = radius - gaugeOption.width * 3;\n context.beginPath();\n var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n context.fill();\n //画进度条背景\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n context.stroke();\n //## 第二步画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n var proc = series[0].data * process;\n for (var i = 0; i < len; i++) {\n context.beginPath();\n //刻度线随进度变色\n if (proc > i / len) {\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\n } else {\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n }\n context.setLineWidth(3 * opts.pix);\n context.moveTo(startX, 0);\n context.lineTo(endX, 0);\n context.stroke();\n context.rotate(childAngle * Math.PI);\n }\n context.restore();\n //## 第三步画进度条\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(series[0].color);\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n context.stroke();\n //## 第四步画指针\n var pointerRadius = radius - gaugeOption.width * 2.5;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setLineWidth(gaugeOption.width / 3);\n var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n context.setStrokeStyle(gradient3);\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n context.stroke();\n context.beginPath();\n context.setLineWidth(1);\n context.setStrokeStyle(series[0].color);\n context.setFillStyle(series[0].color);\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.stroke();\n context.fill();\n context.restore();\n //default百度样式\n } else {\n //画背景\n context.setLineWidth(gaugeOption.width);\n context.setLineCap('butt');\n for (var _i26 = 0; _i26 < categories.length; _i26++) {\n var eachCategories = categories[_i26];\n context.beginPath();\n context.setStrokeStyle(eachCategories.color);\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n context.stroke();\n }\n context.save();\n //画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(2 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(_endX, 0);\n context.stroke();\n context.rotate(_splitAngle * Math.PI);\n }\n context.restore();\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(childendX, 0);\n context.stroke();\n context.rotate(_childAngle * Math.PI);\n }\n context.restore();\n //画指针\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\n for (var _i29 = 0; _i29 < series.length; _i29++) {\n var eachSeries = series[_i29];\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setFillStyle(eachSeries.color);\n context.moveTo(gaugeOption.pointer.width, 0);\n context.lineTo(0, -gaugeOption.pointer.width / 2);\n context.lineTo(-innerRadius, 0);\n context.lineTo(0, gaugeOption.pointer.width / 2);\n context.lineTo(gaugeOption.pointer.width, 0);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFillStyle('#FFFFFF');\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n context.fill();\n context.restore();\n }\n if (opts.dataLabel !== false) {\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n }\n }\n //画仪表盘标题,副标题\n drawRingTitle(opts, config, context, centerPosition);\n if (process === 1 && opts.type === 'gauge') {\n opts.extra.gauge.oldAngle = series[0]._proportion_;\n opts.extra.gauge.oldData = series[0].data;\n }\n return {\n center: centerPosition,\n radius: radius,\n innerRadius: innerRadius,\n categories: categories,\n totalAngle: totalAngle };\n\n}\n\nfunction drawRadarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var radarOption = assign({}, {\n gridColor: '#cccccc',\n gridType: 'radar',\n gridEval: 1,\n axisLabel: false,\n axisLabelTofix: 0,\n labelColor: '#666666',\n labelPointShow: false,\n labelPointRadius: 3,\n labelPointColor: '#cccccc',\n opacity: 0.2,\n gridCount: 3,\n border: false,\n borderWidth: 2,\n linearType: 'none',\n customColor: [] },\n opts.extra.radar);\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n radius -= config.radarLabelTextMargin * opts.pix;\n radius = radius < 10 ? 10 : radius;\n // 画分割线\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n context.moveTo(centerPosition.x, centerPosition.y);\n if (index % radarOption.gridEval == 0) {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.stroke();\n context.closePath();\n\n // 画背景网格\n var _loop = function _loop(i) {\n var startPos = {};\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n if (radarOption.gridType == 'radar') {\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /\n radarOption.gridCount * i * Math.sin(angle), centerPosition);\n if (index === 0) {\n startPos = pos;\n context.moveTo(pos.x, pos.y);\n } else {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.lineTo(startPos.x, startPos.y);\n } else {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n }\n context.stroke();\n context.closePath();\n };\n for (var i = 1; i <= radarOption.gridCount; i++) {\n _loop(i);\n }\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n // 绘制区域数据\n context.beginPath();\n context.setLineWidth(radarOption.borderWidth * opts.pix);\n context.setStrokeStyle(eachSeries.color);\n\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\n if (radarOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);\n }\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));\n fillcolor = grd;\n }\n\n context.setFillStyle(fillcolor);\n eachSeries.data.forEach(function (item, index) {\n if (index === 0) {\n context.moveTo(item.position.x, item.position.y);\n } else {\n context.lineTo(item.position.x, item.position.y);\n }\n });\n context.closePath();\n context.fill();\n if (radarOption.border === true) {\n context.stroke();\n }\n context.closePath();\n if (opts.dataPointShape !== false) {\n var points = eachSeries.data.map(function (item) {\n return item.position;\n });\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n // 画刻度值\n if (radarOption.axisLabel === true) {\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var stepLength = radius / radarOption.gridCount;\n var fontSize = opts.fontSize * opts.pix;\n context.setFontSize(fontSize);\n context.setFillStyle(opts.fontColor);\n context.setTextAlign('left');\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\n var label = i * maxData / radarOption.gridCount;\n label = label.toFixed(radarOption.axisLabelTofix);\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\n }\n }\n\n // draw label text\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n // draw dataLabel\n if (opts.dataLabel !== false && process === 1) {\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\n eachSeries.data.forEach(function (item, index) {\n //如果是中心点垂直的上下点位\n if (Math.abs(item.position.x - centerPosition.x) < 2) {\n //如果在上面\n if (item.position.y < centerPosition.y) {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y - 4);\n } else {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n }\n } else {\n //如果在左侧\n if (item.position.x < centerPosition.x) {\n context.setTextAlign('right');\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n } else {\n context.setTextAlign('left');\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n }\n }\n });\n context.closePath();\n context.stroke();\n });\n context.setTextAlign('left');\n }\n\n return {\n center: centerPosition,\n radius: radius,\n angleList: coordinateAngle };\n\n}\n\n// 经纬度转墨卡托\nfunction lonlat2mercator(longitude, latitude) {\n var mercator = Array(2);\n var x = longitude * 20037508.34 / 180;\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n y = y * 20037508.34 / 180;\n mercator[0] = x;\n mercator[1] = y;\n return mercator;\n}\n\n// 墨卡托转经纬度\nfunction mercator2lonlat(longitude, latitude) {\n var lonlat = Array(2);\n var x = longitude / 20037508.34 * 180;\n var y = latitude / 20037508.34 * 180;\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n lonlat[0] = x;\n lonlat[1] = y;\n return lonlat;\n}\n\nfunction getBoundingBox(data) {\n var bounds = {},coords;\n bounds.xMin = 180;\n bounds.xMax = 0;\n bounds.yMin = 90;\n bounds.yMax = 0;\n for (var i = 0; i < data.length; i++) {\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var longitude = coords[j][0];\n var latitude = coords[j][1];\n var point = {\n x: longitude,\n y: latitude };\n\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n }\n }\n }\n return bounds;\n}\n\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n return {\n x: (longitude - bounds.xMin) * scale + xoffset,\n y: (bounds.yMax - latitude) * scale + yoffset };\n\n}\n\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n return {\n x: (pointX - xoffset) / scale + bounds.xMin,\n y: bounds.yMax - (pointY - yoffset) / scale };\n\n}\n\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n if (s_poi[1] == e_poi[1]) {\n return false;\n }\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n return false;\n }\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n return false;\n }\n var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n if (xseg < poi[0]) {\n return false;\n } else {\n return true;\n }\n}\n\nfunction isPoiWithinPoly(poi, poly, mercator) {\n var sinsc = 0;\n for (var i = 0; i < poly.length; i++) {\n var epoly = poly[i][0];\n if (poly.length == 1) {\n epoly = poly[i][0];\n }\n for (var j = 0; j < epoly.length - 1; j++) {\n var s_poi = epoly[j];\n var e_poi = epoly[j + 1];\n if (mercator) {\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n }\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n sinsc += 1;\n }\n }\n }\n if (sinsc % 2 == 1) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction drawMapDataPoints(series, opts, config, context) {\n var mapOption = assign({}, {\n border: true,\n mercator: false,\n borderWidth: 1,\n active: true,\n borderColor: '#666666',\n fillOpacity: 0.6,\n activeBorderColor: '#f04864',\n activeFillColor: '#facc14',\n activeFillOpacity: 1 },\n opts.extra.map);\n var coords, point;\n var data = series;\n var bounds = getBoundingBox(data);\n if (mapOption.mercator) {\n var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n bounds.xMax = max[0];\n bounds.yMax = max[1];\n bounds.xMin = min[0];\n bounds.yMin = min[1];\n }\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n var scale = xScale < yScale ? xScale : yScale;\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n for (var i = 0; i < data.length; i++) {\n context.beginPath();\n context.setLineWidth(mapOption.borderWidth * opts.pix);\n context.setStrokeStyle(mapOption.borderColor);\n context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));\n if (mapOption.active == true && opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.setStrokeStyle(mapOption.activeBorderColor);\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n }\n }\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var gaosi = Array(2);\n if (mapOption.mercator) {\n gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n } else {\n gaosi = coords[j];\n }\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n if (j === 0) {\n context.beginPath();\n context.moveTo(point.x, point.y);\n } else {\n context.lineTo(point.x, point.y);\n }\n }\n context.fill();\n if (mapOption.border == true) {\n context.stroke();\n }\n }\n }\n if (opts.dataLabel == true) {\n for (var i = 0; i < data.length; i++) {\n var centerPoint = data[i].properties.centroid;\n if (centerPoint) {\n if (mapOption.mercator) {\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n }\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n var fontSize = data[i].textSize * opts.pix || config.fontSize;\n var fontColor = data[i].textColor || opts.fontColor;\n if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {\n fontColor = mapOption.activeTextColor;\n }\n var text = data[i].properties.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(fontColor);\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n context.closePath();\n context.stroke();\n }\n }\n }\n opts.chartData.mapData = {\n bounds: bounds,\n scale: scale,\n xoffset: xoffset,\n yoffset: yoffset,\n mercator: mapOption.mercator };\n\n drawToolTipBridge(opts, config, context, 1);\n context.draw();\n}\n\nfunction normalInt(min, max, iter) {\n iter = iter == 0 ? 1 : iter;\n var arr = [];\n for (var i = 0; i < iter; i++) {\n arr[i] = Math.random();\n };\n return Math.floor(arr.reduce(function (i, j) {\n return i + j;\n }) / iter * (max - min)) + min;\n};\n\nfunction collisionNew(area, points, width, height) {\n var isIn = false;\n for (var i = 0; i < points.length; i++) {\n if (points[i].area) {\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n isIn = true;\n break;\n } else {\n isIn = false;\n }\n } else {\n isIn = true;\n break;\n }\n }\n }\n return isIn;\n};\n\nfunction getWordCloudPoint(opts, type, context) {\n var points = opts.series;\n switch (type) {\n case 'normal':\n for (var i = 0; i < points.length; i++) {\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n var x = void 0,y = void 0;\n var area = void 0;\n var breaknum = 0;\n while (true) {\n breaknum++;\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +\n opts.height / 2];\n\n var isCollision = collisionNew(area, points, opts.width, opts.height);\n if (!isCollision) break;\n if (breaknum == 1000) {\n area = [-100, -100, -100, -100];\n break;\n }\n };\n points[i].area = area;\n }\n break;\n case 'vertical':var\n Spin = function Spin() {\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\n if (Math.random() > 0.7) {\n return true;\n } else {\n return false;\n };\n };;\n for (var _i30 = 0; _i30 < points.length; _i30++) {\n var _text = points[_i30].name;\n var _tHeight = points[_i30].textSize * opts.pix;\n var _tWidth = measureText(_text, _tHeight, context);\n var isSpin = Spin();\n var _x = void 0,_y = void 0,_area = void 0,areav = void 0;\n var _breaknum = 0;\n while (true) {\n _breaknum++;\n var _isCollision = void 0;\n if (isSpin) {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n _isCollision = collisionNew(areav, points, opts.height, opts.width);\n } else {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n _isCollision = collisionNew(_area, points, opts.width, opts.height);\n }\n if (!_isCollision) break;\n if (_breaknum == 1000) {\n _area = [-1000, -1000, -1000, -1000];\n break;\n }\n };\n if (isSpin) {\n points[_i30].area = areav;\n points[_i30].areav = _area;\n } else {\n points[_i30].area = _area;\n }\n points[_i30].rotate = isSpin;\n };\n break;}\n\n return points;\n}\n\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var wordOption = assign({}, {\n type: 'normal',\n autoColors: true },\n opts.extra.word);\n if (!opts.chartData.wordCloudData) {\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n }\n context.beginPath();\n context.setFillStyle(opts.background);\n context.rect(0, 0, opts.width, opts.height);\n context.fill();\n context.save();\n var points = opts.chartData.wordCloudData;\n context.translate(opts.width / 2, opts.height / 2);\n for (var i = 0; i < points.length; i++) {\n context.save();\n if (points[i].rotate) {\n context.rotate(90 * Math.PI / 180);\n }\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n context.beginPath();\n context.setStrokeStyle(points[i].color);\n context.setFillStyle(points[i].color);\n context.setFontSize(tHeight);\n if (points[i].rotate) {\n if (points[i].areav[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n } else {\n if (points[i].area[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n }\n context.stroke();\n context.restore();\n }\n context.restore();\n}\n\nfunction drawFunnelDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var funnelOption = assign({}, {\n type: 'funnel',\n activeWidth: 10,\n activeOpacity: 0.3,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n fillOpacity: 1,\n minSize: 0,\n labelAlign: 'right',\n linearType: 'none',\n customColor: [] },\n opts.extra.funnel);\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.height - opts.area[2] };\n\n var activeWidth = funnelOption.activeWidth * opts.pix;\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n if (funnelOption.type == 'pyramid') {\n for (var i = 0; i < seriesNew.length; i++) {\n if (i == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, -eachSpacing);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(activeWidth, -eachSpacing);\n context.lineTo(-activeWidth, -eachSpacing);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, -eachSpacing);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, -eachSpacing);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, -eachSpacing);\n }\n } else {\n context.translate(0, -(seriesNew.length - 1) * eachSpacing);\n for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {\n if (_i31 == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(activeWidth + funnelOption.minSize / 2, 0);\n context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(funnelOption.minSize / 2, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, eachSpacing);\n }\n }\n\n context.restore();\n if (opts.dataLabel !== false && process === 1) {\n drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n if (process === 1) {\n drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: seriesNew };\n\n}\n\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (item.labelShow === false) {\n continue;\n }\n var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;\n var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';\n text = item.labelText ? item.labelText : text;\n if (labelAlign == 'right') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n }\n endX = startX + activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n if (labelAlign == 'left') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n }\n endX = startX - activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\n\nfunction drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var startY = void 0,fontSize = void 0;\n if (item.centerText) {\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.centerTextColor || \"#FFFFFF\");\n context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\n\n\nfunction drawCanvas(opts, context) {\n context.draw();\n}\n\nvar Timing = {\n easeIn: function easeIn(pos) {\n return Math.pow(pos, 3);\n },\n easeOut: function easeOut(pos) {\n return Math.pow(pos - 1, 3) + 1;\n },\n easeInOut: function easeInOut(pos) {\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(pos, 3);\n } else {\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\n }\n },\n linear: function linear(pos) {\n return pos;\n } };\n\n\nfunction Animation(opts) {\n this.isStop = false;\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n opts.timing = opts.timing || 'easeInOut';\n var delay = 17;\n function createAnimationFrame() {\n if (typeof setTimeout !== 'undefined') {\n return function (step, delay) {\n setTimeout(function () {\n var timeStamp = +new Date();\n step(timeStamp);\n }, delay);\n };\n } else if (typeof requestAnimationFrame !== 'undefined') {\n return requestAnimationFrame;\n } else {\n return function (step) {\n step(null);\n };\n }\n };\n var animationFrame = createAnimationFrame();\n var startTimeStamp = null;\n var _step = function step(timestamp) {\n if (timestamp === null || this.isStop === true) {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n return;\n }\n if (startTimeStamp === null) {\n startTimeStamp = timestamp;\n }\n if (timestamp - startTimeStamp < opts.duration) {\n var process = (timestamp - startTimeStamp) / opts.duration;\n var timingFunction = Timing[opts.timing];\n process = timingFunction(process);\n opts.onProcess && opts.onProcess(process);\n animationFrame(_step, delay);\n } else {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n }\n };\n _step = _step.bind(this);\n animationFrame(_step, delay);\n}\n\nAnimation.prototype.stop = function () {\n this.isStop = true;\n};\n\nfunction drawCharts(type, opts, config, context) {var _this2 = this;\n var _this = this;\n var series = opts.series;\n //兼容ECharts饼图类数据格式\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\n series = fixPieSeries(series, opts, config);\n }\n var categories = opts.categories;\n if (type === 'mount') {\n categories = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].show !== false) categories.push(series[j].name);\n }\n opts.categories = categories;\n }\n series = fillSeries(series, opts, config);\n var duration = opts.animation ? opts.duration : 0;\n _this.animationInstance && _this.animationInstance.stop();\n var seriesMA = null;\n if (type == 'candle') {\n var average = assign({}, opts.extra.candle.average);\n if (average.show) {\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n seriesMA = fillSeries(seriesMA, opts, config);\n opts.seriesMA = seriesMA;\n } else if (opts.seriesMA) {\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n } else {\n seriesMA = series;\n }\n } else {\n seriesMA = series;\n }\n /* 过滤掉show=false的series */\n opts._series_ = series = filterSeries(series);\n //重新计算图表区域\n opts.area = new Array(4);\n //复位绘图区域\n for (var _j11 = 0; _j11 < 4; _j11++) {\n opts.area[_j11] = opts.padding[_j11] * opts.pix;\n }\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n legendHeight = _calLegendData.area.wholeHeight,\n legendWidth = _calLegendData.area.wholeWidth;\n\n switch (opts.legend.position) {\n case 'top':\n opts.area[0] += legendHeight;\n break;\n case 'bottom':\n opts.area[2] += legendHeight;\n break;\n case 'left':\n opts.area[3] += legendWidth;\n break;\n case 'right':\n opts.area[1] += legendWidth;\n break;}\n\n\n var _calYAxisData = {},\n yAxisWidth = 0;\n if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n _calYAxisData = calYAxisData(series, opts, config, context);\n yAxisWidth = _calYAxisData.yAxisWidth;\n //如果显示Y轴标题\n if (opts.yAxis.showTitle) {\n var maxTitleHeight = 0;\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n }\n opts.area[0] += maxTitleHeight;\n }\n var rightIndex = 0,\n leftIndex = 0;\n //计算主绘图区域左右位置\n for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {\n if (yAxisWidth[_i32].position == 'left') {\n if (leftIndex > 0) {\n opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[3] += yAxisWidth[_i32].width;\n }\n leftIndex += 1;\n } else if (yAxisWidth[_i32].position == 'right') {\n if (rightIndex > 0) {\n opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[1] += yAxisWidth[_i32].width;\n }\n rightIndex += 1;\n }\n }\n } else {\n config.yAxisWidth = yAxisWidth;\n }\n opts.chartData.yAxisData = _calYAxisData;\n\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n xAxisHeight = _calCategoriesData.xAxisHeight,\n angle = _calCategoriesData.angle;\n config.xAxisHeight = xAxisHeight;\n config._xAxisTextAngle_ = angle;\n opts.area[2] += xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData;\n } else {\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n categories = opts.chartData.xAxisData.rangesFormat;\n var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n _xAxisHeight = _calCategoriesData2.xAxisHeight,\n _angle = _calCategoriesData2.angle;\n config.xAxisHeight = _xAxisHeight;\n config._xAxisTextAngle_ = _angle;\n opts.area[2] += _xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData2;\n } else {\n opts.chartData.xAxisData = {\n xAxisPoints: [] };\n\n }\n }\n\n //计算右对齐偏移距离\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n var offsetLeft = 0,\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n startX = opts.chartData.xAxisData.startX,\n endX = opts.chartData.xAxisData.endX,\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n _this.scrollOption.currentOffset = offsetLeft;\n _this.scrollOption.startTouchX = offsetLeft;\n _this.scrollOption.distance = 0;\n _this.scrollOption.lastMoveTime = 0;\n opts._scrollDistance_ = offsetLeft;\n }\n\n if (type === 'pie' || type === 'ring' || type === 'rose') {\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n }\n\n switch (type) {\n case 'word':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawWordCloudDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'map':\n context.clearRect(0, 0, opts.width, opts.height);\n drawMapDataPoints(series, opts, config, context);\n setTimeout(function () {\n _this2.uevent.trigger('renderComplete');\n }, 50);\n break;\n case 'funnel':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'line':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\n calPoints = _drawLineDataPoints.calPoints,\n eachSpacing = _drawLineDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'scatter':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n calPoints = _drawScatterDataPoints.calPoints,\n eachSpacing = _drawScatterDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'bubble':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n calPoints = _drawBubbleDataPoints.calPoints,\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'mix':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\n calPoints = _drawMixDataPoints.calPoints,\n eachSpacing = _drawMixDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'column':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n calPoints = _drawColumnDataPoints.calPoints,\n eachSpacing = _drawColumnDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'mount':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\n calPoints = _drawMountDataPoints.calPoints,\n eachSpacing = _drawMountDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'bar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawXAxis(categories, opts, config, context);\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\n calPoints = _drawBarDataPoints.calPoints,\n eachSpacing = _drawBarDataPoints.eachSpacing;\n opts.chartData.yAxisPoints = yAxisPoints;\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'area':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n calPoints = _drawAreaDataPoints.calPoints,\n eachSpacing = _drawAreaDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'ring':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'pie':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'rose':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'radar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'arcbar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'gauge':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;\n case 'candle':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n calPoints = _drawCandleDataPoints.calPoints,\n eachSpacing = _drawCandleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n if (seriesMA) {\n drawLegend(seriesMA, opts, config, context, opts.chartData);\n } else {\n drawLegend(opts.series, opts, config, context, opts.chartData);\n }\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n } });\n\n break;}\n\n}\n\nfunction uChartsEvent() {\n this.events = {};\n}\n\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n this.events[type] = this.events[type] || [];\n this.events[type].push(listener);\n};\n\nuChartsEvent.prototype.delEventListener = function (type) {\n this.events[type] = [];\n};\n\nuChartsEvent.prototype.trigger = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var type = args[0];\n var params = args.slice(1);\n if (!!this.events[type]) {\n this.events[type].forEach(function (listener) {\n try {\n listener.apply(null, params);\n } catch (e) {\n //console.log('[uCharts] '+e);\n }\n });\n }\n};\n\nvar uCharts = function uCharts(opts) {\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n if (opts.background == \"\" || opts.background == \"none\") {\n opts.background = \"#FFFFFF\";\n }\n opts.title = assign({}, opts.title);\n opts.subtitle = assign({}, opts.subtitle);\n opts.duration = opts.duration ? opts.duration : 1000;\n opts.yAxis = assign({}, {\n data: [],\n showTitle: false,\n disabled: false,\n disableGrid: false,\n gridSet: 'number',\n splitNumber: 5,\n gridType: 'solid',\n dashLength: 4 * opts.pix,\n gridColor: '#cccccc',\n padding: 10,\n fontColor: '#666666' },\n opts.yAxis);\n opts.xAxis = assign({}, {\n rotateLabel: false,\n rotateAngle: 45,\n disabled: false,\n disableGrid: false,\n splitNumber: 5,\n calibration: false,\n gridType: 'solid',\n dashLength: 4,\n scrollAlign: 'left',\n boundaryGap: 'center',\n axisLine: true,\n axisLineColor: '#cccccc' },\n opts.xAxis);\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n opts.legend = assign({}, {\n show: true,\n position: 'bottom',\n float: 'center',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n padding: 5,\n margin: 5,\n itemGap: 10,\n fontSize: opts.fontSize,\n lineHeight: opts.fontSize,\n fontColor: opts.fontColor,\n formatter: {},\n hiddenColor: '#CECECE' },\n opts.legend);\n opts.extra = assign({}, opts.extra);\n opts.rotate = opts.rotate ? true : false;\n opts.animation = opts.animation ? true : false;\n opts.rotate = opts.rotate ? true : false;\n opts.canvas2d = opts.canvas2d ? true : false;\n\n var config$$1 = assign({}, config);\n config$$1.color = opts.color ? opts.color : config$$1.color;\n if (opts.type == 'pie') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'ring') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'rose') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n\n //屏幕旋转\n config$$1.rotate = opts.rotate;\n if (opts.rotate) {\n var tempWidth = opts.width;\n var tempHeight = opts.height;\n opts.width = tempHeight;\n opts.height = tempWidth;\n }\n\n //适配高分屏\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n config$$1.xAxisHeight += 6 * opts.pix;\n }\n config$$1.fontSize = opts.fontSize * opts.pix;\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\n config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\n if (!opts.context) {\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\n }\n this.context = opts.context;\n if (!this.context.setTextAlign) {\n this.context.setStrokeStyle = function (e) {\n return this.strokeStyle = e;\n };\n this.context.setLineWidth = function (e) {\n return this.lineWidth = e;\n };\n this.context.setLineCap = function (e) {\n return this.lineCap = e;\n };\n this.context.setFontSize = function (e) {\n return this.font = e + \"px sans-serif\";\n };\n this.context.setFillStyle = function (e) {\n return this.fillStyle = e;\n };\n this.context.setTextAlign = function (e) {\n return this.textAlign = e;\n };\n this.context.draw = function () {};\n }\n //兼容NVUEsetLineDash\n if (!this.context.setLineDash) {\n this.context.setLineDash = function (e) {};\n }\n opts.chartData = {};\n this.uevent = new uChartsEvent();\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0 };\n\n this.opts = opts;\n this.config = config$$1;\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\n\nuCharts.prototype.updateData = function () {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.opts = assign({}, this.opts, data);\n this.opts.updateData = true;\n var scrollPosition = data.scrollPosition || 'current';\n switch (scrollPosition) {\n case 'current':\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n break;\n case 'left':\n this.opts._scrollDistance_ = 0;\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0 };\n\n break;\n case 'right':\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: offsetLeft,\n distance: 0,\n lastMoveTime: 0 };\n\n this.opts._scrollDistance_ = offsetLeft;\n break;}\n\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.zoom = function () {\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6828\");\n return;\n }\n //当前屏幕中间点\n var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n this.opts.animation = false;\n this.opts.xAxis.itemCount = val.itemCount;\n //重新计算x轴偏移距离\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var centerLeft = eachSpacing * centerPoint;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = screenWidth / 2 - centerLeft;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0 };\n\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.dobuleZoom = function (e) {\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6868\");\n return;\n }\n var tcs = e.changedTouches;\n if (tcs.length < 2) {\n return;\n }\n for (var i = 0; i < tcs.length; i++) {\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\n }\n var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];\n var xlength = Math.abs(ntcs[0].x - ntcs[1].x);\n // 记录初始的两指之间的数据\n if (!this.scrollOption.moveCount) {\n var cts0 = { changedTouches: [{ x: tcs[0].x, y: this.opts.area[0] / this.opts.pix + 2 }] };\n var cts1 = { changedTouches: [{ x: tcs[1].x, y: this.opts.area[0] / this.opts.pix + 2 }] };\n if (this.opts.rotate) {\n cts0 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[0].y }] };\n cts1 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[1].y }] };\n }\n var moveCurrent1 = this.getCurrentDataIndex(cts0).index;\n var moveCurrent2 = this.getCurrentDataIndex(cts1).index;\n var moveCount = Math.abs(moveCurrent1 - moveCurrent2);\n this.scrollOption.moveCount = moveCount;\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\n return;\n }\n\n var currentEachSpacing = xlength / this.scrollOption.moveCount;\n var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\n itemCount = itemCount <= 2 ? 2 : itemCount;\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\n this.opts.animation = false;\n this.opts.xAxis.itemCount = itemCount;\n // 重新计算滚动条偏移距离\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption.currentOffset = offsetLeft;\n this.scrollOption.startTouchX = 0;\n this.scrollOption.distance = 0;\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.stopAnimation = function () {\n this.animationInstance && this.animationInstance.stop();\n};\n\nuCharts.prototype.addEventListener = function (type, listener) {\n this.uevent.addEventListener(type, listener);\n};\n\nuCharts.prototype.delEventListener = function (type) {\n this.uevent.delEventListener(type);\n};\n\nuCharts.prototype.getCurrentDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n return findPieChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'rose') {\n return findRoseChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'radar') {\n return findRadarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.radarData, this.opts.categories.length);\n } else if (this.opts.type === 'funnel') {\n return findFunnelChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.funnelData);\n } else if (this.opts.type === 'map') {\n return findMapChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts);\n } else if (this.opts.type === 'word') {\n return findWordChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.wordCloudData);\n } else if (this.opts.type === 'bar') {\n return findBarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n } else {\n return findCurrentIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n }\n }\n return -1;\n};\n\nuCharts.prototype.getLegendDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n return findLegendIndex({\n x: _touches$.x,\n y: _touches$.y },\n this.opts.chartData.legendData);\n }\n return -1;\n};\n\nuCharts.prototype.touchLegend = function (e) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n var index = this.getLegendDataIndex(e);\n if (index >= 0) {\n if (this.opts.type == 'candle') {\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n } else {\n this.opts.series[index].show = !this.opts.series[index].show;\n }\n this.opts.animation = option.animation ? true : false;\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n }\n }\n\n};\n\nuCharts.prototype.showToolTip = function (e) {var _this3 = this;\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (!touches) {\n __f__(\"log\", \"[uCharts] 未获取到event坐标信息\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7046\");\n }\n var _touches$ = getTouches(touches, this.opts, e);\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false });\n\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mount') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, { animation: false });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color }];\n\n var offset = {\n x: opts.chartData.calPoints[index].x,\n y: _touches$.y };\n\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'bar') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.x = _touches$.x;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mix') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false });\n\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n textList = _getMixToolTipData.textList,\n offset = _getMixToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'candle') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false });\n\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, { animation: false });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color }];\n\n var offset = {\n x: _touches$.x,\n y: _touches$.y };\n\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'map') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, { animation: false });\n var seriesData = assign({}, this.opts.series[index]);\n seriesData.name = seriesData.properties.name;\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color }];\n\n var offset = {\n x: _touches$.x,\n y: _touches$.y };\n\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'word') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, { animation: false });\n var seriesData = assign({}, this.opts.series[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color }];\n\n var offset = {\n x: _touches$.x,\n y: _touches$.y };\n\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'radar') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, { animation: false });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,\n color: item.color };\n\n });\n var offset = {\n x: _touches$.x,\n y: _touches$.y };\n\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index };\n\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n};\n\nuCharts.prototype.translate = function (distance) {\n this.scrollOption = {\n currentOffset: distance,\n startTouchX: distance,\n distance: 0,\n lastMoveTime: 0 };\n\n var opts = assign({}, this.opts, {\n _scrollDistance_: distance,\n animation: false });\n\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\n\nuCharts.prototype.scrollStart = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n var _touches$ = getTouches(touches, this.opts, e);\n if (touches && this.opts.enableScroll === true) {\n this.scrollOption.startTouchX = _touches$.x;\n }\n};\n\nuCharts.prototype.scroll = function (e) {\n if (this.scrollOption.lastMoveTime === 0) {\n this.scrollOption.lastMoveTime = Date.now();\n }\n var Limit = this.opts.touchMoveLimit || 60;\n var currMoveTime = Date.now();\n var duration = currMoveTime - this.scrollOption.lastMoveTime;\n if (duration < Math.floor(1000 / Limit)) return;\n if (this.scrollOption.startTouchX == 0) return;\n this.scrollOption.lastMoveTime = currMoveTime;\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches && this.opts.enableScroll === true) {\n var _touches$ = getTouches(touches, this.opts, e);\n var _distance;\n _distance = _touches$.x - this.scrollOption.startTouchX;\n var currentOffset = this.scrollOption.currentOffset;\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n this.scrollOption.distance = _distance = validDistance - currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset + _distance,\n animation: false });\n\n this.opts = opts;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n return currentOffset + _distance;\n }\n};\n\nuCharts.prototype.scrollEnd = function (e) {\n if (this.opts.enableScroll === true) {\n var _scrollOption = this.scrollOption,\n currentOffset = _scrollOption.currentOffset,\n distance = _scrollOption.distance;\n this.scrollOption.currentOffset = currentOffset + distance;\n this.scrollOption.distance = 0;\n this.scrollOption.moveCount = 0;\n }\n};var _default =\n\nuCharts;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ4QXhpc0hlaWdodCIsInhBeGlzVGV4dFBhZGRpbmciLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImZvbnRTaXplIiwiZm9udENvbG9yIiwiZGF0YVBvaW50U2hhcGUiLCJjb2xvciIsImxpbmVhckNvbG9yIiwicGllQ2hhcnRMaW5lUGFkZGluZyIsInBpZUNoYXJ0VGV4dFBhZGRpbmciLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVGb250U2l6ZSIsInRvb2xUaXBQYWRkaW5nIiwidG9vbFRpcEJhY2tncm91bmQiLCJ0b29sVGlwT3BhY2l0eSIsInRvb2xUaXBMaW5lSGVpZ2h0IiwicmFkYXJMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJleHRyYSIsIm1vdW50Iiwid2lkdGhSYXRpbyIsInZhbGlkRGlzdGFuY2UiLCJ1ZXZlbnQiLCJ0cmlnZ2VyIiwic2Nyb2xsT3B0aW9uIiwicG9zaXRpb24iLCJ4QXhpcyIsInNjcm9sbFBvc2l0aW9uIiwiaXNJbkFuZ2xlUmFuZ2UiLCJhbmdsZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImFkanVzdCIsIlBJIiwiY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzIiwicG9pbnRzIiwiaXNOb3RNaWRkbGVQb2ludCIsIm1heCIsIm1pbiIsImlzTm90TWlkZGxlUG9pbnRYIiwiYSIsInBBeCIsInBBeSIsInBCeCIsInBCeSIsImxhc3QiLCJjdHJBIiwiY3RyQiIsImNvbnZlcnRDb29yZGluYXRlT3JpZ2luIiwiY2VudGVyIiwiYXZvaWRDb2xsaXNpb24iLCJvYmoiLCJmaXhQaWVTZXJpZXMiLCJzZXJpZXMiLCJwaWVTZXJpZXNBcnIiLCJjb25zdHJ1Y3RvciIsImluZGV4T2YiLCJfcGllU2VyaWVzXyIsIm9sZHNlcmllcyIsImZvcm1hdHRlciIsInZhbHVlIiwiZmlsbFNlcmllcyIsImluZGV4IiwiaXRlbSIsImxpbmVhckluZGV4Iiwic2hvdyIsInBvaW50U2hhcGUiLCJsZWdlbmRTaGFwZSIsImZpbGxDdXN0b21Db2xvciIsImxpbmVhclR5cGUiLCJjdXN0b21Db2xvciIsIm5ld2NvbG9yIiwiY2hhemhpIiwiZ2V0RGF0YVJhbmdlIiwibWluRGF0YSIsIm1heERhdGEiLCJyYW5nZSIsIm1pblJhbmdlIiwibWF4UmFuZ2UiLCJtZWFzdXJlVGV4dCIsInRleHQiLCJjb250ZXh0IiwiU3RyaW5nIiwidW5kZWZpbmVkIiwic2V0Rm9udFNpemUiLCJzcGxpdCIsInRlc3QiLCJkYXRhQ29tYmluZSIsInJlZHVjZSIsImNvbmNhdCIsImRhdGFDb21iaW5lU3RhY2siLCJBcnJheSIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsInVwQ29sb3IiLCJ1cEZpbGwiLCJkb3duQ29sb3IiLCJkb3duRmlsbCIsInRleHQxIiwidGV4dDIiLCJ0ZXh0MyIsInRleHQ0IiwidmFsaWRDYWxQb2ludHMiLCJmaW5kQ3VycmVudEluZGV4IiwiY3VycmVudFBvaW50cyIsImN1cnJlbnQiLCJzcGFjaW5nIiwiYm91bmRhcnlHYXAiLCJpc0luRXhhY3RDaGFydEFyZWEiLCJ0aW1lUG9pbnRzIiwicG9pbnRWYWx1ZSIsInBvaW50SW5kZXgiLCJtaW5WYWx1ZSIsImZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCIsInlBeGlzUG9pbnRzIiwiZmluZExlZ2VuZEluZGV4IiwibGVnZW5kRGF0YSIsImN1cnJlbnRJbmRleCIsImdhcCIsImlzSW5FeGFjdExlZ2VuZEFyZWEiLCJmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleCIsInJhZGFyRGF0YSIsImNvdW50IiwiZWFjaEFuZ2xlQXJlYSIsImlzSW5FeGFjdFBpZUNoYXJ0QXJlYSIsInJhZGl1cyIsImZpeEFuZ2xlIiwiYXRhbjIiLCJhbmdsZUxpc3QiLCJyYW5nZVN0YXJ0IiwicmFuZ2VFbmQiLCJmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgiLCJmdW5uZWxEYXRhIiwiZnVubmVsQXJlYSIsImZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgiLCJ3b3JkRGF0YSIsImZpbmRNYXBDaGFydEN1cnJlbnRJbmRleCIsImNEYXRhIiwibWFwRGF0YSIsInRtcCIsInBvaW50VG9Db29yZGluYXRlIiwiYm91bmRzIiwic2NhbGUiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInBvaSIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJpc1BvaVdpdGhpblBvbHkiLCJtZXJjYXRvciIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwibGVnZW5kVGV4dCIsIml0ZW1XaWR0aCIsIml0ZW1HYXAiLCJsZWdlbmRXaWR0aCIsImZsb2F0IiwibWF4SGVpZ2h0IiwibWF4TGVuZ3RoIiwibGluZU51bSIsInRlbXAiLCJzbGljZSIsIm1heFdpZHRoIiwiY2FsQ2F0ZWdvcmllc0RhdGEiLCJyZXN1bHQiLCJjYXRlZ29yaWVzVGV4dExlbnRoIiwieGl0ZW0iLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJyb3RhdGVBbmdsZSIsInRlbXBIZWlnaHQiLCJzaW4iLCJlbmFibGVTY3JvbGwiLCJzY3JvbGxTaG93IiwiZGlzYWJsZWQiLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJnZXRSYWRhckRhdGFQb2ludHMiLCJwcm9jZXNzIiwicmFkYXJPcHRpb24iLCJyYWRhciIsImVhY2giLCJsaXN0SXRlbSIsInByb3BvcnRpb24iLCJjb3MiLCJfcmFkaXVzXyIsImdldEZ1bm5lbERhdGFQb2ludHMiLCJtaW5SYWRpdXMiLCJkYXRhQXJyIiwicmFkaXVzTGVuZ3RoIiwiZ2V0QXJjYmFyRGF0YVBvaW50cyIsImFyY2Jhck9wdGlvbiIsInRvdGFsQW5nbGUiLCJkaXJlY3Rpb24iLCJnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMiLCJnZXRHYXVnZUF4aXNQb2ludHMiLCJ0ZW1wU3RhcnRBbmdsZSIsIl9zdGFydEFuZ2xlXyIsIl9lbmRBbmdsZV8iLCJnZXRHYXVnZURhdGFQb2ludHMiLCJnYXVnZU9wdGlvbiIsInBvaW50ZXIiLCJfb2xkQW5nbGVfIiwib2xkQW5nbGUiLCJvbGREYXRhIiwiZ2V0UGllVGV4dE1heExlbmd0aCIsInRleHRTaXplIiwiZml4Q29sdW1lRGF0YSIsImNvbHVtbkxlbiIsInNlcmllc0dhcCIsImNhdGVnb3J5R2FwIiwibWl4IiwiY29sdW1uIiwiZml4QmFyRGF0YSIsImZpeENvbHVtZU1ldGVyRGF0YSIsImJvcmRlciIsImZpeENvbHVtZVN0YWNrRGF0YSIsImluZGV4biIsImZpeEJhclN0YWNrRGF0YSIsInNwYWNpbmdWYWxpZCIsImRhdGFDb3VudCIsIml0ZW1Db3VudCIsInN0YXJ0WCIsImVuZFgiLCJnZXRDYW5kbGVEYXRhUG9pbnRzIiwidmFsaWRIZWlnaHQiLCJjUG9pbnRzIiwiaW5kZXhzIiwicG9pbnQiLCJnZXREYXRhUG9pbnRzIiwidmFsaWRXaWR0aCIsInhyYW5nZXMiLCJ4bWluUmFuZ2UiLCJ4bWF4UmFuZ2UiLCJzaGlmdCIsInBvcCIsInQiLCJnZXRNb3VudERhdGFQb2ludHMiLCJtb3VudE9wdGlvbiIsIm1vdW50V2lkdGgiLCJnZXRCYXJEYXRhUG9pbnRzIiwiZ2V0U3RhY2tEYXRhUG9pbnRzIiwic2VyaWVzSW5kZXgiLCJzdGFja1NlcmllcyIsInZhbHVlMCIsImhlaWdodDAiLCJoZWlnaHRjIiwieTAiLCJnZXRCYXJTdGFja0RhdGFQb2ludHMiLCJ4MCIsImdldFlBeGlzVGV4dExpc3QiLCJ5RGF0YSIsImRhdGFSYW5nZSIsInlBeGlzIiwicmV2ZXJzZSIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdNb3VudFBvaW50VGV4dCIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwibGFiZWxQb2ludFNob3ciLCJwb3NQb2ludCIsInBvc1BvaW50QXhpcyIsImxhYmVsUG9pbnRDb2xvciIsImxhYmVsUG9pbnRSYWRpdXMiLCJwb3NSZWxhdGl2ZUNhbnZhcyIsImRyYXdQaWVUZXh0IiwibGluZVJhZGl1cyIsInRleHRPYmplY3RDb2xsZWN0aW9uIiwibGFzdFRleHRPYmplY3QiLCJzZXJpZXNDb252ZXJ0IiwibGFiZWxTaG93Iiwib3JnaW5YMSIsIm9yZ2luWTEiLCJvcmdpblgyIiwib3JnaW5ZMiIsIm9yZ2luWDMiLCJvcmdpblkzIiwidGV4dE9iamVjdCIsImxpbmVTdGFydCIsImxpbmVFbmQiLCJsaW5lU3RhcnRQb2lzdGlvbiIsImxpbmVFbmRQb2lzdGlvbiIsInRleHRQb3NpdGlvbiIsImN1cnZlU3RhcnRYIiwidGV4dFN0YXJ0WCIsInF1YWRyYXRpY0N1cnZlVG8iLCJkcmF3VG9vbFRpcFNwbGl0TGluZSIsInRvb2xUaXBPcHRpb24iLCJ0b29sdGlwIiwiZ3JpZFR5cGUiLCJkYXNoTGVuZ3RoIiwiZW5kWSIsInNldExpbmVEYXNoIiwiZ3JpZENvbG9yIiwieEF4aXNMYWJlbCIsInRleHRYIiwidGV4dFkiLCJsYWJlbEJnQ29sb3IiLCJsYWJlbEJnT3BhY2l0eSIsImxhYmVsRm9udENvbG9yIiwiZHJhd01hcmtMaW5lIiwibWFya0xpbmVPcHRpb24iLCJtYXJrTGluZSIsImxpbmVDb2xvciIsInNob3dMYWJlbCIsImxhYmVsQWxpZ24iLCJsYWJlbE9mZnNldFgiLCJsYWJlbE9mZnNldFkiLCJiZ1dpZHRoIiwiYmdTdGFydFgiLCJiZ1N0YXJ0WSIsImRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUiLCJ5QXhpc0xhYmVsIiwidFN0YXJ0TGVmdCIsInRTdGFydFJpZ2h0IiwiYmdFbmRYIiwiZHJhd1Rvb2xUaXBTcGxpdEFyZWEiLCJhY3RpdmVCZ0NvbG9yIiwiYWN0aXZlQmdPcGFjaXR5IiwiYWN0aXZlV2lkdGgiLCJkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYSIsImRyYXdUb29sVGlwIiwic2hvd0JveCIsInNob3dBcnJvdyIsInNob3dDYXRlZ29yeSIsImJnQ29sb3IiLCJiZ09wYWNpdHkiLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyT3BhY2l0eSIsInVuc2hpZnQiLCJsZWdlbmRNYXJnaW5SaWdodCIsImFycm93V2lkdGgiLCJpc092ZXJSaWdodEJvcmRlciIsInRvb2xUaXBXaWR0aCIsInRvb2xUaXBIZWlnaHQiLCJfc2Nyb2xsRGlzdGFuY2VfIiwiZmlsbFJlY3QiLCJkcmF3Q29sdW1uRGF0YVBvaW50cyIsImNvbHVtbk9wdGlvbiIsIm1ldGVyQm9yZGVyIiwibWV0ZXJGaWxsQ29sb3IiLCJiYXJCb3JkZXJDaXJjbGUiLCJiYXJCb3JkZXJSYWRpdXMiLCJsaW5lYXJPcGFjaXR5IiwiY29sb3JTdG9wIiwic2F2ZSIsImxlZnROdW0iLCJyaWdodE51bSIsInRvb2x0aXBQb2ludHMiLCJmaWxsQ29sb3IiLCJzdHJva2VDb2xvciIsImdyZCIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwibGVmdCIsInRvcCIsInIwIiwicjEiLCJyMiIsInIzIiwiZGF0YUxhYmVsIiwicmVzdG9yZSIsImRyYXdNb3VudERhdGFQb2ludHMiLCJiZXppZXJDdXJ2ZVRvIiwiZHJhd0JhckRhdGFQb2ludHMiLCJkcmF3Q2FuZGxlRGF0YVBvaW50cyIsInNlcmllc01BIiwiY2FuZGxlT3B0aW9uIiwiYXZlcmFnZSIsImNhbmRsZSIsInVwTGluZSIsImRvd25MaW5lIiwiZGF5IiwibGVmdFNwYWNlIiwicmlnaHRTcGFjZSIsInNwbGl0UG9pbnRMaXN0Iiwic3RhcnRQb2ludCIsImN0cmxQb2ludCIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFkiLCJzY3JvbGxTY3JlZW5XaWR0aCIsInNjcm9sbFRvdGFsV2lkdGgiLCJzY3JvbGxXaWR0aCIsInNjcm9sbExlZnQiLCJzZXRMaW5lQ2FwIiwic2Nyb2xsQmFja2dyb3VuZENvbG9yIiwic2Nyb2xsQ29sb3IiLCJkaXNhYmxlR3JpZCIsImdyaWRFdmFsIiwibWF4WEF4aXNMaXN0TGVuZ3RoIiwibGFiZWxDb3VudCIsInJhdGlvIiwibmV3Q2F0ZWdvcmllcyIsImNnTGVuZ3RoIiwieEF4aXNGb250U2l6ZSIsIl94QXhpc1RleHRBbmdsZV8iLCJzY3JvbGxIZWlnaHQiLCJ0cnVlUG9pbnRzIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwidFN0YXJ0Q2VudGVyIiwidGV4dEFsaWduIiwidG1wc3RyYXQiLCJnYXB3aWR0aCIsInNob3dUaXRsZSIsInRpdGxlT2Zmc2V0WCIsInRpdGxlT2Zmc2V0WSIsImRyYXdMZWdlbmQiLCJsZWdlbmRBcmVhIiwiYmFja2dyb3VuZENvbG9yIiwiaXRlbUxpc3QiLCJsaXN0SW5kZXgiLCJoaWRkZW5Db2xvciIsImZvbnRUcmFucyIsImRyYXdQaWVEYXRhUG9pbnRzIiwicGllT3B0aW9uIiwiYWN0aXZlT3BhY2l0eSIsImFjdGl2ZVJhZGl1cyIsImxhYmVsV2lkdGgiLCJyaW5nV2lkdGgiLCJjdXN0b21SYWRpdXMiLCJjZW50ZXJDb2xvciIsIl9waWVUZXh0TWF4TGVuZ3RoXyIsImxpbmVKb2luIiwiZmlsbGNvbG9yIiwiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiaW5uZXJQaWVXaWR0aCIsImRyYXdSb3NlRGF0YVBvaW50cyIsInJvc2VPcHRpb24iLCJkcmF3QXJjYmFyRGF0YVBvaW50cyIsImxpbmVDYXAiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiYXhpc0xhYmVsIiwiYXhpc0xhYmVsVG9maXgiLCJncmlkQ291bnQiLCJjb29yZGluYXRlQW5nbGUiLCJ4ciIsInlyIiwiX2xvb3AiLCJzdGFydFBvcyIsInJhZGFyRGF0YVBvaW50cyIsInN0ZXBMZW5ndGgiLCJsYWJlbCIsImxvbmxhdDJtZXJjYXRvciIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibG9nIiwidGFuIiwibWVyY2F0b3IybG9ubGF0IiwibG9ubGF0IiwiYXRhbiIsImV4cCIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImFjdGl2ZSIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJhY3RpdmVUZXh0Q29sb3IiLCJkcmF3Iiwibm9ybWFsSW50IiwiaXRlciIsImFyciIsInJhbmRvbSIsImNvbGxpc2lvbk5ldyIsImlzSW4iLCJnZXRXb3JkQ2xvdWRQb2ludCIsInRIZWlnaHQiLCJ0V2lkdGgiLCJicmVha251bSIsIlNwaW4iLCJpc1NwaW4iLCJhcmVhdiIsImRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzIiwid29yZE9wdGlvbiIsImF1dG9Db2xvcnMiLCJ3b3JkIiwid29yZENsb3VkRGF0YSIsInN0cm9rZVRleHQiLCJkcmF3RnVubmVsRGF0YVBvaW50cyIsImZ1bm5lbE9wdGlvbiIsIm1pblNpemUiLCJmdW5uZWwiLCJzZXJpZXNOZXciLCJkcmF3RnVubmVsVGV4dCIsImRyYXdGdW5uZWxDZW50ZXJUZXh0IiwiY2VudGVyVGV4dCIsImNlbnRlclRleHRTaXplIiwiY2VudGVyVGV4dENvbG9yIiwiZHJhd0NhbnZhcyIsIlRpbWluZyIsImVhc2VJbiIsImVhc2VPdXQiLCJlYXNlSW5PdXQiLCJsaW5lYXIiLCJBbmltYXRpb24iLCJpc1N0b3AiLCJkdXJhdGlvbiIsInRpbWluZyIsImRlbGF5IiwiY3JlYXRlQW5pbWF0aW9uRnJhbWUiLCJzZXRUaW1lb3V0Iiwic3RlcCIsInRpbWVTdGFtcCIsIkRhdGUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhbmltYXRpb25GcmFtZSIsInN0YXJ0VGltZVN0YW1wIiwiX3N0ZXAiLCJ0aW1lc3RhbXAiLCJvblByb2Nlc3MiLCJvbkFuaW1hdGlvbkZpbmlzaCIsInRpbWluZ0Z1bmN0aW9uIiwiYmluZCIsInByb3RvdHlwZSIsInN0b3AiLCJkcmF3Q2hhcnRzIiwiX3RoaXMiLCJhbmltYXRpb24iLCJhbmltYXRpb25JbnN0YW5jZSIsIl9jYWxMZWdlbmREYXRhIiwibGVnZW5kSGVpZ2h0IiwiX2NhbFlBeGlzRGF0YSIsIm1heFRpdGxlSGVpZ2h0IiwicmlnaHRJbmRleCIsImxlZnRJbmRleCIsIl9jYWxDYXRlZ29yaWVzRGF0YSIsImNhdGVnb3JpZXNEYXRhIiwic2Nyb2xsQWxpZ24iLCJvZmZzZXRMZWZ0IiwidG90YWxXaWR0aCIsInNjcmVlbldpZHRoIiwiY3VycmVudE9mZnNldCIsInN0YXJ0VG91Y2hYIiwibGFzdE1vdmVUaW1lIiwiY2xlYXJSZWN0IiwiX2RyYXdMaW5lRGF0YVBvaW50cyIsImVuYWJsZU1hcmtMaW5lIiwiX2RyYXdTY2F0dGVyRGF0YVBvaW50cyIsIl9kcmF3QnViYmxlRGF0YVBvaW50cyIsIl9kcmF3TWl4RGF0YVBvaW50cyIsIl9kcmF3Q29sdW1uRGF0YVBvaW50cyIsIl9kcmF3TW91bnREYXRhUG9pbnRzIiwiX2RyYXdCYXJEYXRhUG9pbnRzIiwiX2RyYXdBcmVhRGF0YVBvaW50cyIsImFyY2JhckRhdGEiLCJnYXVnZURhdGEiLCJfZHJhd0NhbmRsZURhdGFQb2ludHMiLCJ1Q2hhcnRzRXZlbnQiLCJldmVudHMiLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuZXIiLCJkZWxFdmVudExpc3RlbmVyIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicGFyYW1zIiwidUNoYXJ0cyIsImdyaWRTZXQiLCJjYW52YXMyZCIsImNvbmZpZyQkMSIsInRlbXBXaWR0aCIsInN0cm9rZVN0eWxlIiwibGluZVdpZHRoIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsImRvYnVsZVpvb20iLCJ0Y3MiLCJjbGllbnRZIiwibnRjcyIsInhsZW5ndGgiLCJtb3ZlQ291bnQiLCJjdHMwIiwiY3RzMSIsIm1vdmVDdXJyZW50MSIsImdldEN1cnJlbnREYXRhSW5kZXgiLCJtb3ZlQ3VycmVudDIiLCJjdXJyZW50RWFjaFNwYWNpbmciLCJjdXJyZW50TGVmdCIsInN0b3BBbmltYXRpb24iLCJfdG91Y2hlcyQiLCJnZXRMZWdlbmREYXRhSW5kZXgiLCJ0b3VjaExlZ2VuZCIsInNob3dUb29sVGlwIiwiX2dldFRvb2xUaXBEYXRhIiwiX2dldE1peFRvb2xUaXBEYXRhIiwic2Nyb2xsU3RhcnQiLCJzY3JvbGwiLCJub3ciLCJMaW1pdCIsInRvdWNoTW92ZUxpbWl0IiwiY3Vyck1vdmVUaW1lIiwiX2Rpc3RhbmNlIiwic2Nyb2xsRW5kIiwiX3Njcm9sbE9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUlBLE1BQU0sR0FBRztBQUNYQyxTQUFPLEVBQUUsaUJBREU7QUFFWEMsWUFBVSxFQUFFLEVBRkQ7QUFHWEMsYUFBVyxFQUFFLEVBSEY7QUFJWEMsa0JBQWdCLEVBQUUsQ0FKUDtBQUtYQyxTQUFPLEVBQUUsQ0FBQyxFQUFELEVBQUssRUFBTCxFQUFTLEVBQVQsRUFBYSxFQUFiLENBTEU7QUFNWEMsWUFBVSxFQUFFLENBTkQ7QUFPWEMsUUFBTSxFQUFFLEtBUEc7QUFRWEMsVUFBUSxFQUFFLEVBUkM7QUFTWEMsV0FBUyxFQUFFLFNBVEE7QUFVWEMsZ0JBQWMsRUFBRSxDQUFDLFFBQUQsRUFBVyxRQUFYLEVBQXFCLFFBQXJCLEVBQStCLFFBQS9CLENBVkw7QUFXWEMsT0FBSyxFQUFFLENBQUMsU0FBRCxFQUFZLFNBQVosRUFBdUIsU0FBdkIsRUFBa0MsU0FBbEMsRUFBNkMsU0FBN0MsRUFBd0QsU0FBeEQsRUFBbUUsU0FBbkUsRUFBOEUsU0FBOUUsRUFBeUYsU0FBekYsQ0FYSTtBQVlYQyxhQUFXLEVBQUUsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQVpGO0FBYVhDLHFCQUFtQixFQUFFLEVBYlY7QUFjWEMscUJBQW1CLEVBQUUsQ0FkVjtBQWVYQyxlQUFhLEVBQUUsRUFmSjtBQWdCWEMsa0JBQWdCLEVBQUUsRUFoQlA7QUFpQlhDLGdCQUFjLEVBQUUsQ0FqQkw7QUFrQlhDLG1CQUFpQixFQUFFLFNBbEJSO0FBbUJYQyxnQkFBYyxFQUFFLEdBbkJMO0FBb0JYQyxtQkFBaUIsRUFBRSxFQXBCUjtBQXFCWEMsc0JBQW9CLEVBQUUsRUFyQlgsRUFBYjs7O0FBd0JBLElB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QUNFdXRCLGlCQUFhLEdBQUdvRSxhQUFhLENBQUNwRSxhQURoQztBQUVFdHVCLFlBQVEsR0FBRzB5QixhQUFhLENBQUMxeUIsUUFGM0I7QUFHQSxTQUFLZSxZQUFMLENBQWtCdXRCLGFBQWxCLEdBQWtDQSxhQUFhLEdBQUd0dUIsUUFBbEQ7QUFDQSxTQUFLZSxZQUFMLENBQWtCZixRQUFsQixHQUE2QixDQUE3QjtBQUNBLFNBQUtlLFlBQUwsQ0FBa0Jvd0IsU0FBbEIsR0FBOEIsQ0FBOUI7QUFDRDtBQUNGLENBVEQsQzs7QUFXZXBCLE8iLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzIChSKVxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjAv5b+r5omL77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMiBRSVVOIChSKSDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0cyAoUikg5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbid1c2Ugc3RyaWN0JztcclxuXHJcbnZhciBjb25maWcgPSB7XHJcbiAgdmVyc2lvbjogJ3YyLjQuNC0yMDIyMTEwMicsXHJcbiAgeUF4aXNXaWR0aDogMTUsXHJcbiAgeEF4aXNIZWlnaHQ6IDIyLFxyXG4gIHhBeGlzVGV4dFBhZGRpbmc6IDMsXHJcbiAgcGFkZGluZzogWzEwLCAxMCwgMTAsIDEwXSxcclxuICBwaXhlbFJhdGlvOiAxLFxyXG4gIHJvdGF0ZTogZmFsc2UsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlRm9udFNpemU6IDE1LFxyXG4gIHRvb2xUaXBQYWRkaW5nOiAzLFxyXG4gIHRvb2xUaXBCYWNrZ3JvdW5kOiAnIzAwMDAwMCcsXHJcbiAgdG9vbFRpcE9wYWNpdHk6IDAuNyxcclxuICB0b29sVGlwTGluZUhlaWdodDogMjAsXHJcbiAgcmFkYXJMYWJlbFRleHRNYXJnaW46IDEzLFxyXG59O1xyXG5cclxudmFyIGFzc2lnbiA9IGZ1bmN0aW9uKHRhcmdldCwgLi4udmFyQXJncykge1xyXG4gIGlmICh0YXJnZXQgPT0gbnVsbCkge1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignW3VDaGFydHNdIENhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xyXG4gIH1cclxuICBpZiAoIXZhckFyZ3MgfHwgdmFyQXJncy5sZW5ndGggPD0gMCkge1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9XHJcbiAgLy8g5rex5bqm5ZCI5bm25a+56LGhXHJcbiAgZnVuY3Rpb24gZGVlcEFzc2lnbihvYmoxLCBvYmoyKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqMikge1xyXG4gICAgICBvYmoxW2tleV0gPSBvYmoxW2tleV0gJiYgb2JqMVtrZXldLnRvU3RyaW5nKCkgPT09IFwiW29iamVjdCBPYmplY3RdXCIgP1xyXG4gICAgICAgIGRlZXBBc3NpZ24ob2JqMVtrZXldLCBvYmoyW2tleV0pIDogb2JqMVtrZXldID0gb2JqMltrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajE7XHJcbiAgfVxyXG4gIHZhckFyZ3MuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgdGFyZ2V0ID0gZGVlcEFzc2lnbih0YXJnZXQsIHZhbCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbnZhciB1dGlsID0ge1xyXG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQobnVtLCBsaW1pdCkge1xyXG4gICAgbGltaXQgPSBsaW1pdCB8fCAyO1xyXG4gICAgaWYgKHRoaXMuaXNGbG9hdChudW0pKSB7XHJcbiAgICAgIG51bSA9IG51bS50b0ZpeGVkKGxpbWl0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBudW07XHJcbiAgfSxcclxuICBpc0Zsb2F0OiBmdW5jdGlvbiBpc0Zsb2F0KG51bSkge1xyXG4gICAgcmV0dXJuIG51bSAlIDEgIT09IDA7XHJcbiAgfSxcclxuICBhcHByb3hpbWF0ZWx5RXF1YWw6IGZ1bmN0aW9uIGFwcHJveGltYXRlbHlFcXVhbChudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSAtIG51bTIpIDwgMWUtMTA7XHJcbiAgfSxcclxuICBpc1NhbWVTaWduOiBmdW5jdGlvbiBpc1NhbWVTaWduKG51bTEsIG51bTIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyhudW0xKSA9PT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSA9PT0gbnVtMiB8fCBNYXRoLmFicyhudW0xKSAhPT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSAhPT0gbnVtMjtcclxuICB9LFxyXG4gIGlzU2FtZVhDb29yZGluYXRlQXJlYTogZnVuY3Rpb24gaXNTYW1lWENvb3JkaW5hdGVBcmVhKHAxLCBwMikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lU2lnbihwMS54LCBwMi54KTtcclxuICB9LFxyXG4gIGlzQ29sbGlzaW9uOiBmdW5jdGlvbiBpc0NvbGxpc2lvbihvYmoxLCBvYmoyKSB7XHJcbiAgICBvYmoxLmVuZCA9IHt9O1xyXG4gICAgb2JqMS5lbmQueCA9IG9iajEuc3RhcnQueCArIG9iajEud2lkdGg7XHJcbiAgICBvYmoxLmVuZC55ID0gb2JqMS5zdGFydC55IC0gb2JqMS5oZWlnaHQ7XHJcbiAgICBvYmoyLmVuZCA9IHt9O1xyXG4gICAgb2JqMi5lbmQueCA9IG9iajIuc3RhcnQueCArIG9iajIud2lkdGg7XHJcbiAgICBvYmoyLmVuZC55ID0gb2JqMi5zdGFydC55IC0gb2JqMi5oZWlnaHQ7XHJcbiAgICB2YXIgZmxhZyA9IG9iajIuc3RhcnQueCA+IG9iajEuZW5kLnggfHwgb2JqMi5lbmQueCA8IG9iajEuc3RhcnQueCB8fCBvYmoyLmVuZC55ID4gb2JqMS5zdGFydC55IHx8IG9iajIuc3RhcnQueSA8IG9iajEuZW5kLnk7XHJcbiAgICByZXR1cm4gIWZsYWc7XHJcbiAgfVxyXG59O1xyXG5cclxuLy/lhbzlrrlINeeCueWHu+S6i+S7tlxyXG5mdW5jdGlvbiBnZXRINU9mZnNldChlKSB7XHJcbiAgZS5tcCA9IHtcclxuICAgIGNoYW5nZWRUb3VjaGVzOiBbXVxyXG4gIH07XHJcbiAgZS5tcC5jaGFuZ2VkVG91Y2hlcy5wdXNoKHtcclxuICAgIHg6IGUub2Zmc2V0WCxcclxuICAgIHk6IGUub2Zmc2V0WVxyXG4gIH0pO1xyXG4gIHJldHVybiBlO1xyXG59XHJcblxyXG4vLyBoZXgg6L2sIHJnYmFcclxuZnVuY3Rpb24gaGV4VG9SZ2IoaGV4VmFsdWUsIG9wYykge1xyXG4gIHZhciByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xyXG4gIHZhciBoZXggPSBoZXhWYWx1ZS5yZXBsYWNlKHJneCwgZnVuY3Rpb24obSwgciwgZywgYikge1xyXG4gICAgcmV0dXJuIHIgKyByICsgZyArIGcgKyBiICsgYjtcclxuICB9KTtcclxuICB2YXIgcmdiID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XHJcbiAgdmFyIHIgPSBwYXJzZUludChyZ2JbMV0sIDE2KTtcclxuICB2YXIgZyA9IHBhcnNlSW50KHJnYlsyXSwgMTYpO1xyXG4gIHZhciBiID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XHJcbiAgcmV0dXJuICdyZ2JhKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnLCcgKyBvcGMgKyAnKSc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSYW5nZShudW0sIHR5cGUsIGxpbWl0KSB7XHJcbiAgaWYgKGlzTmFOKG51bSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignW3VDaGFydHNdIHNlcmllc+aVsOaNrumcgOS4uk51bWJlcuagvOW8jycpO1xyXG4gIH1cclxuICBsaW1pdCA9IGxpbWl0IHx8IDEwO1xyXG4gIHR5cGUgPSB0eXBlID8gdHlwZSA6ICd1cHBlcic7XHJcbiAgdmFyIG11bHRpcGxlID0gMTtcclxuICB3aGlsZSAobGltaXQgPCAxKSB7XHJcbiAgICBsaW1pdCAqPSAxMDtcclxuICAgIG11bHRpcGxlICo9IDEwO1xyXG4gIH1cclxuICBpZiAodHlwZSA9PT0gJ3VwcGVyJykge1xyXG4gICAgbnVtID0gTWF0aC5jZWlsKG51bSAqIG11bHRpcGxlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgbnVtID0gTWF0aC5mbG9vcihudW0gKiBtdWx0aXBsZSk7XHJcbiAgfVxyXG4gIHdoaWxlIChudW0gJSBsaW1pdCAhPT0gMCkge1xyXG4gICAgaWYgKHR5cGUgPT09ICd1cHBlcicpIHtcclxuICAgICAgaWYgKG51bSA9PSBudW0gKyAxKSB7IC8v5L+u5aSN5pWw5o2u5YC86L+H5aSnbnVtKyvml6DmlYjnmoRidWcgYnkg5ZCR5pel6JG1IEB4cmtfanlcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBudW0rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bS0tO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbnVtIC8gbXVsdGlwbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhbmRsZU1BKGRheUFyciwgbmFtZUFyciwgY29sb3JBcnIsIGtkYXRhKSB7XHJcbiAgbGV0IHNlcmllc1RlbXAgPSBbXTtcclxuICBmb3IgKGxldCBrID0gMDsgayA8IGRheUFyci5sZW5ndGg7IGsrKykge1xyXG4gICAgbGV0IHNlcmllc0l0ZW0gPSB7XHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICBuYW1lOiBuYW1lQXJyW2tdLFxyXG4gICAgICBjb2xvcjogY29sb3JBcnJba11cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2RhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCBkYXlBcnJba10pIHtcclxuICAgICAgICBzZXJpZXNJdGVtLmRhdGEucHVzaChudWxsKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXlBcnJba107IGorKykge1xyXG4gICAgICAgIHN1bSArPSBrZGF0YVtpIC0gal1bMV07XHJcbiAgICAgIH1cclxuICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2goKyhzdW0gLyBkYXlBcnJba10pLnRvRml4ZWQoMykpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzVGVtcC5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzVGVtcDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVmFsaWREaXN0YW5jZShzZWxmLCBkaXN0YW5jZSwgY2hhcnREYXRhLCBjb25maWcsIG9wdHMpIHtcclxuICB2YXIgZGF0YUNoYXJ0QXJlYVdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNoYXJ0V2lkdGggPSBjaGFydERhdGEuZWFjaFNwYWNpbmcgKiAob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgZGF0YUNoYXJ0V2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmNoYXJ0RGF0YS5lYWNoU3BhY2luZztcclxuICB9XHJcbiAgdmFyIHZhbGlkRGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICBpZiAoZGlzdGFuY2UgPj0gMCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IDA7XHJcbiAgICBzZWxmLnVldmVudC50cmlnZ2VyKCdzY3JvbGxMZWZ0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdsZWZ0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdsZWZ0JztcclxuICB9IGVsc2UgaWYgKE1hdGguYWJzKGRpc3RhbmNlKSA+PSBkYXRhQ2hhcnRXaWR0aCAtIGRhdGFDaGFydEFyZWFXaWR0aCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IGRhdGFDaGFydEFyZWFXaWR0aCAtIGRhdGFDaGFydFdpZHRoO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsUmlnaHQnKTtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gJ3JpZ2h0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdyaWdodCc7XHJcbiAgfSBlbHNlIHtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gZGlzdGFuY2VcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBkaXN0YW5jZTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkRGlzdGFuY2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSkge1xyXG4gIGZ1bmN0aW9uIGFkanVzdChhbmdsZSkge1xyXG4gICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHdoaWxlIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgIGFuZ2xlIC09IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFuZ2xlO1xyXG4gIH1cclxuICBhbmdsZSA9IGFkanVzdChhbmdsZSk7XHJcbiAgc3RhcnRBbmdsZSA9IGFkanVzdChzdGFydEFuZ2xlKTtcclxuICBlbmRBbmdsZSA9IGFkanVzdChlbmRBbmdsZSk7XHJcbiAgaWYgKHN0YXJ0QW5nbGUgPiBlbmRBbmdsZSkge1xyXG4gICAgZW5kQW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICBpZiAoYW5nbGUgPCBzdGFydEFuZ2xlKSB7XHJcbiAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYW5nbGUgPj0gc3RhcnRBbmdsZSAmJiBhbmdsZSA8PSBlbmRBbmdsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaSkge1xyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSB7XHJcbiAgICBpZiAocG9pbnRzW2kgLSAxXSAmJiBwb2ludHNbaSArIDFdKSB7XHJcbiAgICAgIHJldHVybiBwb2ludHNbaV0ueSA+PSBNYXRoLm1heChwb2ludHNbaSAtIDFdLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcG9pbnRzW2ldLnkgPD0gTWF0aC5taW4ocG9pbnRzW2kgLSAxXS55LFxyXG4gICAgICAgIHBvaW50c1tpICsgMV0ueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnggPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBvaW50c1tpXS54IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueCxcclxuICAgICAgICBwb2ludHNbaSArIDFdLngpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YXIgYSA9IDAuMjtcclxuICB2YXIgYiA9IDAuMjtcclxuICB2YXIgcEF4ID0gbnVsbDtcclxuICB2YXIgcEF5ID0gbnVsbDtcclxuICB2YXIgcEJ4ID0gbnVsbDtcclxuICB2YXIgcEJ5ID0gbnVsbDtcclxuICBpZiAoaSA8IDEpIHtcclxuICAgIHBBeCA9IHBvaW50c1swXS54ICsgKHBvaW50c1sxXS54IC0gcG9pbnRzWzBdLngpICogYTtcclxuICAgIHBBeSA9IHBvaW50c1swXS55ICsgKHBvaW50c1sxXS55IC0gcG9pbnRzWzBdLnkpICogYTtcclxuICB9IGVsc2Uge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLnggKyAocG9pbnRzW2kgKyAxXS54IC0gcG9pbnRzW2kgLSAxXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueSArIChwb2ludHNbaSArIDFdLnkgLSBwb2ludHNbaSAtIDFdLnkpICogYTtcclxuICB9XHJcblxyXG4gIGlmIChpID4gcG9pbnRzLmxlbmd0aCAtIDMpIHtcclxuICAgIHZhciBsYXN0ID0gcG9pbnRzLmxlbmd0aCAtIDE7XHJcbiAgICBwQnggPSBwb2ludHNbbGFzdF0ueCAtIChwb2ludHNbbGFzdF0ueCAtIHBvaW50c1tsYXN0IC0gMV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2xhc3RdLnkgLSAocG9pbnRzW2xhc3RdLnkgLSBwb2ludHNbbGFzdCAtIDFdLnkpICogYjtcclxuICB9IGVsc2Uge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54IC0gKHBvaW50c1tpICsgMl0ueCAtIHBvaW50c1tpXS54KSAqIGI7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnkgLSAocG9pbnRzW2kgKyAyXS55IC0gcG9pbnRzW2ldLnkpICogYjtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkgKyAxKSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpKSkge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLng7XHJcbiAgfVxyXG4gIGlmIChwQXkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEF5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueTtcclxuICB9XHJcbiAgaWYgKHBCeSA+PSBNYXRoLm1heChwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSB8fCBwQnkgPD0gTWF0aC5taW4ocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKHBBeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQXggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEJ4ID49IE1hdGgubWF4KHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBCeCA8PSBNYXRoLm1pbihwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY3RyQToge1xyXG4gICAgICB4OiBwQXgsXHJcbiAgICAgIHk6IHBBeVxyXG4gICAgfSxcclxuICAgIGN0ckI6IHtcclxuICAgICAgeDogcEJ4LFxyXG4gICAgICB5OiBwQnlcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gY29udmVydENvb3JkaW5hdGVPcmlnaW4oeCwgeSwgY2VudGVyKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IGNlbnRlci54ICsgeCxcclxuICAgIHk6IGNlbnRlci55IC0geVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGF2b2lkQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSB7XHJcbiAgaWYgKHRhcmdldCkge1xyXG4gICAgLy8gaXMgY29sbGlzaW9uIHRlc3RcclxuICAgIHdoaWxlICh1dGlsLmlzQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSkge1xyXG4gICAgICBpZiAob2JqLnN0YXJ0LnggPiAwKSB7XHJcbiAgICAgICAgb2JqLnN0YXJ0LnktLTtcclxuICAgICAgfSBlbHNlIGlmIChvYmouc3RhcnQueCA8IDApIHtcclxuICAgICAgICBvYmouc3RhcnQueSsrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvYmouc3RhcnQueSA+IDApIHtcclxuICAgICAgICAgIG9iai5zdGFydC55Kys7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9iai5zdGFydC55LS07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyl7XHJcbiAgbGV0IHBpZVNlcmllc0FyciA9IFtdO1xyXG4gIGlmKHNlcmllcy5sZW5ndGg+MCAmJiBzZXJpZXNbMF0uZGF0YS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSl7XHJcbiAgICBvcHRzLl9waWVTZXJpZXNfID0gc2VyaWVzO1xyXG4gICAgbGV0IG9sZHNlcmllcyA9IHNlcmllc1swXS5kYXRhO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgb2xkc2VyaWVzW2ldLmZvcm1hdHRlciA9IHNlcmllc1swXS5mb3JtYXR0ZXI7XHJcbiAgICAgIG9sZHNlcmllc1tpXS5kYXRhID0gb2xkc2VyaWVzW2ldLnZhbHVlO1xyXG4gICAgICBwaWVTZXJpZXNBcnIucHVzaChvbGRzZXJpZXNbaV0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy5zZXJpZXMgPSBwaWVTZXJpZXNBcnI7XHJcbiAgfWVsc2V7XHJcbiAgICBwaWVTZXJpZXNBcnIgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIHJldHVybiBwaWVTZXJpZXNBcnI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgaW5kZXggPSAwO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGlmICghaXRlbS5jb2xvcikge1xyXG4gICAgICBpdGVtLmNvbG9yID0gY29uZmlnLmNvbG9yW2luZGV4XTtcclxuICAgICAgaW5kZXggPSAoaW5kZXggKyAxKSAlIGNvbmZpZy5jb2xvci5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ubGluZWFySW5kZXgpIHtcclxuICAgICAgaXRlbS5saW5lYXJJbmRleCA9IGk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0uaW5kZXgpIHtcclxuICAgICAgaXRlbS5pbmRleCA9IDA7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0uc2hvdyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGl0ZW0uc2hvdyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ucG9pbnRTaGFwZSkge1xyXG4gICAgICBpdGVtLnBvaW50U2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJsaW5lXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjb2x1bW4nOlxyXG4gICAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJyZWN0XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhcmVhJzpcclxuICAgICAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJ0cmlhbmdsZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxDdXN0b21Db2xvcihsaW5lYXJUeXBlLCBjdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpIHtcclxuICB2YXIgbmV3Y29sb3IgPSBjdXN0b21Db2xvciB8fCBbXTtcclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPT0gMCApIHtcclxuICAgIG5ld2NvbG9yID0gY29uZmlnLmxpbmVhckNvbG9yO1xyXG4gIH1cclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPCBzZXJpZXMubGVuZ3RoKSB7XHJcbiAgICBsZXQgY2hhemhpID0gc2VyaWVzLmxlbmd0aCAtIG5ld2NvbG9yLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhemhpOyBpKyspIHtcclxuICAgICAgbmV3Y29sb3IucHVzaChjb25maWcubGluZWFyQ29sb3JbKGkgKyAxKSAlIGNvbmZpZy5saW5lYXJDb2xvci5sZW5ndGhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG5ld2NvbG9yO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSkge1xyXG4gIHZhciBsaW1pdCA9IDA7XHJcbiAgdmFyIHJhbmdlID0gbWF4RGF0YSAtIG1pbkRhdGE7XHJcbiAgaWYgKHJhbmdlID49IDEwMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwMCkge1xyXG4gICAgbGltaXQgPSAxMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwKSB7XHJcbiAgICBsaW1pdCA9IDU7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxKSB7XHJcbiAgICBsaW1pdCA9IDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjEpIHtcclxuICAgIGxpbWl0ID0gMC4xO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMSkge1xyXG4gICAgbGltaXQgPSAwLjAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMDAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMDAxO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbWluUmFuZ2U6IGZpbmRSYW5nZShtaW5EYXRhLCAnbG93ZXInLCBsaW1pdCksXHJcbiAgICBtYXhSYW5nZTogZmluZFJhbmdlKG1heERhdGEsICd1cHBlcicsIGxpbWl0KVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lYXN1cmVUZXh0KHRleHQsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIHdpZHRoID0gMDtcclxuICB0ZXh0ID0gU3RyaW5nKHRleHQpO1xyXG5cclxuXHJcblxyXG4gIGlmIChjb250ZXh0ICE9PSBmYWxzZSAmJiBjb250ZXh0ICE9PSB1bmRlZmluZWQgJiYgY29udGV4dC5zZXRGb250U2l6ZSAmJiBjb250ZXh0Lm1lYXN1cmVUZXh0KSB7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIHJldHVybiBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpLndpZHRoO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB2YXIgdGV4dCA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gdGV4dFtpXTtcclxuICAgICAgaWYgKC9bYS16QS1aXS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDc7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1swLTldLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gNS41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXC4vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjc7XHJcbiAgICAgIH0gZWxzZSBpZiAoLy0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAzLjI1O1xyXG4gICAgICB9IGVsc2UgaWYgKC86Ly50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9bXFx1NGUwMC1cXHU5ZmE1XS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXCh8XFwpLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMy43MztcclxuICAgICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC8lLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gODtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aCArPSAxMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZHRoICogZm9udFNpemUgLyAxMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGFDb21iaW5lKHNlcmllcykge1xyXG4gIHJldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiAoYS5kYXRhID8gYS5kYXRhIDogYSkuY29uY2F0KGIuZGF0YSk7XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgbGVuKSB7XHJcbiAgdmFyIHN1bSA9IG5ldyBBcnJheShsZW4pO1xyXG4gIGZvciAodmFyIGogPSAwOyBqIDwgc3VtLmxlbmd0aDsgaisrKSB7XHJcbiAgICBzdW1bal0gPSAwO1xyXG4gIH1cclxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdW0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgc3VtW2pdICs9IHNlcmllc1tpXS5kYXRhW2pdO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEuZGF0YSA/IGEuZGF0YSA6IGEpLmNvbmNhdChiLmRhdGEpLmNvbmNhdChzdW0pO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG91Y2hlcyh0b3VjaGVzLCBvcHRzLCBlKSB7XHJcbiAgbGV0IHgsIHk7XHJcbiAgaWYgKHRvdWNoZXMuY2xpZW50WCkge1xyXG4gICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgIHkgPSBvcHRzLmhlaWdodCAtIHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB4ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeCA9IHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB5ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgeSA9IG9wdHMuaGVpZ2h0IC0gdG91Y2hlcy54ICogb3B0cy5waXg7XHJcbiAgICAgIHggPSB0b3VjaGVzLnkgKiBvcHRzLnBpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB0b3VjaGVzLnggKiBvcHRzLnBpeDtcclxuICAgICAgeSA9IHRvdWNoZXMueSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeDogeCxcclxuICAgIHk6IHlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFNlcmllc0RhdGFJdGVtKHNlcmllcywgaW5kZXgsIGdyb3VwKSB7XHJcbiAgdmFyIGRhdGEgPSBbXTtcclxuICB2YXIgbmV3U2VyaWVzID0gW107XHJcbiAgdmFyIGluZGV4SXNBcnIgPSBpbmRleC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMTtcclxuICBpZihpbmRleElzQXJyKXtcclxuICAgIGxldCB0ZW1wU2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllcy5wdXNoKHRlbXBTZXJpZXNbZ3JvdXBbaV1dKTtcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIG5ld1NlcmllcyA9IHNlcmllcztcclxuICB9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3U2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IG5ld1Nlcmllc1tpXTtcclxuICAgIGxldCB0bXBpbmRleCA9IC0xO1xyXG4gICAgaWYoaW5kZXhJc0Fycil7XHJcbiAgICAgIHRtcGluZGV4ID0gaW5kZXhbaV07XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdG1waW5kZXggPSBpbmRleDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLmRhdGFbdG1waW5kZXhdICE9PSBudWxsICYmIHR5cGVvZiBpdGVtLmRhdGFbdG1waW5kZXhdICE9PSAndW5kZWZpbmVkJyAmJiBpdGVtLnNob3cpIHtcclxuICAgICAgbGV0IHNlcmllc0l0ZW0gPSB7fTtcclxuICAgICAgc2VyaWVzSXRlbS5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHNlcmllc0l0ZW0udHlwZSA9IGl0ZW0udHlwZTtcclxuICAgICAgc2VyaWVzSXRlbS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgICAgIHNlcmllc0l0ZW0ucG9pbnRTaGFwZSA9IGl0ZW0ucG9pbnRTaGFwZTtcclxuICAgICAgc2VyaWVzSXRlbS5kaXNhYmxlTGVnZW5kID0gaXRlbS5kaXNhYmxlTGVnZW5kO1xyXG4gICAgICBzZXJpZXNJdGVtLm5hbWUgPSBpdGVtLm5hbWU7XHJcbiAgICAgIHNlcmllc0l0ZW0uc2hvdyA9IGl0ZW0uc2hvdztcclxuICAgICAgc2VyaWVzSXRlbS5kYXRhID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLmRhdGFbdG1waW5kZXhdKSA6IGl0ZW0uZGF0YVt0bXBpbmRleF07XHJcbiAgICAgIGRhdGEucHVzaChzZXJpZXNJdGVtKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1heFRleHRMaXN0TGVuZ3RoKGxpc3QsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIGxlbmd0aExpc3QgPSBsaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbSwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBsZW5ndGhMaXN0KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzKGxlbmd0aCkge1xyXG4gIHZhciBlYWNoQW5nbGUgPSAyICogTWF0aC5QSSAvIGxlbmd0aDtcclxuICB2YXIgQ29vcmRpbmF0ZVNlcmllcyA9IFtdO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgIENvb3JkaW5hdGVTZXJpZXMucHVzaChlYWNoQW5nbGUgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIENvb3JkaW5hdGVTZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiAtMSAqIGl0ZW0gKyBNYXRoLlBJIC8gMjtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGdyb3VwLCBjYXRlZ29yaWVzKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cz9vcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM6W107XHJcbiAgbGV0IHBvaW50cyA9IHt9O1xyXG4gIGlmKGdyb3VwLmxlbmd0aCA+IDApe1xyXG4gICAgbGV0IGZpbHRlclBvaW50cyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmaWx0ZXJQb2ludHMucHVzaChjYWxQb2ludHNbZ3JvdXBbaV1dKVxyXG4gICAgfVxyXG4gICAgcG9pbnRzID0gZmlsdGVyUG9pbnRzWzBdW2luZGV4WzBdXTtcclxuICB9ZWxzZXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmKGNhbFBvaW50c1tpXVtpbmRleF0pe1xyXG4gICAgICAgIHBvaW50cyA9IGNhbFBvaW50c1tpXVtpbmRleF07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGxldCB0aXRsZVRleHQgPSBudWxsO1xyXG4gICAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoPjApIHtcclxuICAgICAgdGl0bGVUZXh0ID0gY2F0ZWdvcmllc1tpbmRleF07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGl0bGVUZXh0LCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIHRleHRMaXN0ID0gdGV4dExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVMZWdlbmQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzKSxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZVRvb2xUaXBEYXRhKHNlcmllcywgc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMsIGV4dHJhKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA2ICYmIGFyZ3VtZW50c1s2XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzZdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cztcclxuICBsZXQgdXBDb2xvciA9IGV4dHJhLmNvbG9yLnVwRmlsbDtcclxuICBsZXQgZG93bkNvbG9yID0gZXh0cmEuY29sb3IuZG93bkZpbGw7XHJcbiAgLy/popzoibLpobrluo/kuLrlvIDnm5jvvIzmlLbnm5jvvIzmnIDkvY7vvIzmnIDpq5hcclxuICBsZXQgY29sb3IgPSBbdXBDb2xvciwgdXBDb2xvciwgZG93bkNvbG9yLCB1cENvbG9yXTtcclxuICB2YXIgdGV4dExpc3QgPSBbXTtcclxuICBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaW5kZXggPT0gMCkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRhWzFdIC0gaXRlbS5kYXRhWzBdIDwgMCkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbG9yWzFdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVswXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbMF0gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSA8IGl0ZW0uZGF0YVswXSkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMl0gPiBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzJdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzNdIDwgc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclszXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHRleHQxID0ge1xyXG4gICAgICB0ZXh0OiAn5byA55uY77yaJyArIGl0ZW0uZGF0YVswXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzBdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQyID0ge1xyXG4gICAgICB0ZXh0OiAn5pS255uY77yaJyArIGl0ZW0uZGF0YVsxXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzFdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQ0ID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA6auY77yaJyArIGl0ZW0uZGF0YVszXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzNdXHJcbiAgICB9O1xyXG4gICAgdGV4dExpc3QucHVzaCh0ZXh0MSwgdGV4dDIsIHRleHQzLCB0ZXh0NCk7XHJcbiAgfSk7XHJcbiAgdmFyIHZhbGlkQ2FsUG9pbnRzID0gW107XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IHBvaW50cyA9IGNhbFBvaW50c1tpXTtcclxuICAgIGlmICh0eXBlb2YgcG9pbnRzW2luZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgcG9pbnRzW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICB2YWxpZENhbFBvaW50cy5wdXNoKHBvaW50c1tpbmRleF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQueCA9IE1hdGgucm91bmQodmFsaWRDYWxQb2ludHNbMF1bMF0ueCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU2VyaWVzKHNlcmllcykge1xyXG4gIGxldCB0ZW1wU2VyaWVzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChzZXJpZXNbaV0uc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgIHRlbXBTZXJpZXMucHVzaChzZXJpZXNbaV0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wU2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQ3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHNwYWNpbmcgPSAwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB4QXhpc1BvaW50cy5wdXNoKG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2ldIC0gc3BhY2luZyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScpICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgICAgbGV0IHRpbWVQb2ludHMgPSBBcnJheShjYWxQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGltZVBvaW50c1tpXSA9IEFycmF5KGNhbFBvaW50c1tpXS5sZW5ndGgpXHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhbFBvaW50c1tpXS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICB0aW1lUG9pbnRzW2ldW2pdID0gKE1hdGguYWJzKGNhbFBvaW50c1tpXVtqXS54IC0gY3VycmVudFBvaW50cy54KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcG9pbnRWYWx1ZSA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHBvaW50SW5kZXggPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGltZVBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRWYWx1ZVtpXSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHRpbWVQb2ludHNbaV0pO1xyXG4gICAgICAgICAgcG9pbnRJbmRleFtpXSA9IHRpbWVQb2ludHNbaV0uaW5kZXhPZihwb2ludFZhbHVlW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pblZhbHVlID0gTWF0aC5taW4uYXBwbHkobnVsbCwgcG9pbnRWYWx1ZSk7XHJcbiAgICAgICAgY3VycmVudC5pbmRleCA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRWYWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYocG9pbnRWYWx1ZVtpXSA9PSBtaW5WYWx1ZSl7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuZ3JvdXAucHVzaChpKTtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleC5wdXNoKHBvaW50SW5kZXhbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnggKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cztcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgeUF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnkgKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTGVnZW5kSW5kZXgoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YSwgb3B0cykge1xyXG4gIGxldCBjdXJyZW50SW5kZXggPSAtMTtcclxuICBsZXQgZ2FwID0gMDtcclxuICBpZiAoaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLmFyZWEpKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgbGV0IGFyZWEgPSBpdGVtW2pdWydhcmVhJ107XHJcbiAgICAgICAgaWYgKGFyZWEgJiYgY3VycmVudFBvaW50cy54ID4gYXJlYVswXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhWzJdICsgZ2FwICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWFbMV0gLSBnYXAgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYVszXSArIGdhcCkge1xyXG4gICAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgYXJlYSkge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPiBhcmVhLnN0YXJ0LnggJiYgY3VycmVudFBvaW50cy54IDwgYXJlYS5lbmQueCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhLnN0YXJ0LnkgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYS5lbmQueTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPD0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEwICYmIGN1cnJlbnRQb2ludHMueCA+PSBvcHRzLmFyZWFbM10gLSAxMCAmJiBjdXJyZW50UG9pbnRzLnkgPj0gb3B0cy5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueSA8PSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLCBjb3VudCkge1xyXG4gIHZhciBlYWNoQW5nbGVBcmVhID0gMiAqIE1hdGguUEkgLyBjb3VudDtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgaWYgKGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCByYWRhckRhdGEuY2VudGVyLCByYWRhckRhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGZpeEFuZ2xlID0gZnVuY3Rpb24gZml4QW5nbGUoYW5nbGUpIHtcclxuICAgICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgICAgYW5nbGUgLT0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFuZ2xlO1xyXG4gICAgfTtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocmFkYXJEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSByYWRhckRhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtMSAqIGFuZ2xlO1xyXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHZhciBhbmdsZUxpc3QgPSByYWRhckRhdGEuYW5nbGVMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIGl0ZW0gPSBmaXhBbmdsZSgtMSAqIGl0ZW0pO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgdmFyIHJhbmdlU3RhcnQgPSBmaXhBbmdsZShpdGVtIC0gZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICB2YXIgcmFuZ2VFbmQgPSBmaXhBbmdsZShpdGVtICsgZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICBpZiAocmFuZ2VFbmQgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgICAgcmFuZ2VFbmQgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgPD0gcmFuZ2VFbmQgfHwgYW5nbGUgKyAyICogTWF0aC5QSSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlICsgMiAqIE1hdGguUEkgPD0gcmFuZ2VFbmQpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBmdW5uZWxEYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5uZWxEYXRhLnNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBmdW5uZWxEYXRhLnNlcmllc1tpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmZ1bm5lbEFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5mdW5uZWxBcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uZnVubmVsQXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmZ1bm5lbEFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgd29yZERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHdvcmREYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IHdvcmREYXRhW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5hcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uYXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIGNEYXRhID0gb3B0cy5jaGFydERhdGEubWFwRGF0YTtcclxuICB2YXIgZGF0YSA9IG9wdHMuc2VyaWVzO1xyXG4gIHZhciB0bXAgPSBwb2ludFRvQ29vcmRpbmF0ZShjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCwgY0RhdGEuYm91bmRzLCBjRGF0YS5zY2FsZSwgY0RhdGEueG9mZnNldCwgY0RhdGEueW9mZnNldCk7XHJcbiAgdmFyIHBvaSA9IFt0bXAueCwgdG1wLnldO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgICBpZiAoaXNQb2lXaXRoaW5Qb2x5KHBvaSwgaXRlbSwgb3B0cy5jaGFydERhdGEubWFwRGF0YS5tZXJjYXRvcikpIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0Um9zZURhdGFQb2ludHMob3B0cy5fc2VyaWVzXywgb3B0cy5leHRyYS5yb3NlLnR5cGUsIHBpZURhdGEucmFkaXVzLCBwaWVEYXRhLnJhZGl1cyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucm9zZSAmJiBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Jvc2VfcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRQaWVDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHBpZURhdGEuc2VyaWVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5waWUgJiYgb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5leHRyYS5yaW5nICYmIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBjZW50ZXIsIHJhZGl1cykge1xyXG4gIHJldHVybiBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnggLSBjZW50ZXIueCwgMikgKyBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnkgLSBjZW50ZXIueSwgMikgPD0gTWF0aC5wb3cocmFkaXVzLCAyKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKSB7XHJcbiAgdmFyIG5ld1BvaW50cyA9IFtdO1xyXG4gIHZhciBpdGVtcyA9IFtdO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZihlYWNoU2VyaWVzLmNvbm5lY3ROdWxscyl7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdQb2ludHMucHVzaChpdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGl0ZW1zID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH0pO1xyXG4gIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICB9XHJcbiAgcmV0dXJuIG5ld1BvaW50cztcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGNhbExlZ2VuZERhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNoYXJ0RGF0YSwgY29udGV4dCkge1xyXG4gIGxldCBsZWdlbmREYXRhID0ge1xyXG4gICAgYXJlYToge1xyXG4gICAgICBzdGFydDoge1xyXG4gICAgICAgIHg6IDAsXHJcbiAgICAgICAgeTogMFxyXG4gICAgICB9LFxyXG4gICAgICBlbmQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IDAsXHJcbiAgICAgIGhlaWdodDogMCxcclxuICAgICAgd2hvbGVXaWR0aDogMCxcclxuICAgICAgd2hvbGVIZWlnaHQ6IDBcclxuICAgIH0sXHJcbiAgICBwb2ludHM6IFtdLFxyXG4gICAgd2lkdGhBcnI6IFtdLFxyXG4gICAgaGVpZ2h0QXJyOiBbXVxyXG4gIH07XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgICByZXR1cm4gbGVnZW5kRGF0YTtcclxuICB9XHJcbiAgbGV0IHBhZGRpbmcgPSBvcHRzLmxlZ2VuZC5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgbGV0IG1hcmdpbiA9IG9wdHMubGVnZW5kLm1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIGxldCBmb250U2l6ZSA9IG9wdHMubGVnZW5kLmZvbnRTaXplID8gb3B0cy5sZWdlbmQuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICBsZXQgc2hhcGVXaWR0aCA9IDE1ICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgbGV0IGxpbmVIZWlnaHQgPSBNYXRoLm1heChvcHRzLmxlZ2VuZC5saW5lSGVpZ2h0ICogb3B0cy5waXgsIGZvbnRTaXplKTtcclxuICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgIGxldCBsZWdlbmRMaXN0ID0gW107XHJcbiAgICBsZXQgd2lkdGhDb3VudCA9IDA7XHJcbiAgICBsZXQgd2lkdGhDb3VudEFyciA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgICBjb25zdCBsZWdlbmRUZXh0ID0gaXRlbS5sZWdlbmRUZXh0ID8gaXRlbS5sZWdlbmRUZXh0IDogaXRlbS5uYW1lO1xyXG4gICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChsZWdlbmRUZXh0IHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh3aWR0aENvdW50ICsgaXRlbVdpZHRoID4gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkge1xyXG4gICAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgd2lkdGhDb3VudCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93ID0gW2l0ZW1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoQ291bnQgKz0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICBsZWdlbmREYXRhLndpZHRoQXJyID0gd2lkdGhDb3VudEFycjtcclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gTWF0aC5tYXguYXBwbHkobnVsbCwgd2lkdGhDb3VudEFycik7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZFdpZHRoIC0gMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gKG9wdHMud2lkdGggLSBsZWdlbmRXaWR0aCkgLyAyIC0gcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IChvcHRzLndpZHRoICsgbGVnZW5kV2lkdGgpIC8gMiArIHBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nICsgMiAqIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5wb2ludHMgPSBsZWdlbmRMaXN0O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsZXQgbGVuID0gc2VyaWVzLmxlbmd0aDtcclxuICAgIGxldCBtYXhIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSAtIDIgKiBtYXJnaW4gLSAyICogcGFkZGluZztcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1pbihNYXRoLmZsb29yKG1heEhlaWdodCAvIGxpbmVIZWlnaHQpLCBsZW4pO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW4gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gKG9wdHMuaGVpZ2h0IC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IChvcHRzLmhlaWdodCArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGxldCBsaW5lTnVtID0gbGVuICUgbWF4TGVuZ3RoID09PSAwID8gbGVuIC8gbWF4TGVuZ3RoIDogTWF0aC5mbG9vcigobGVuIC8gbWF4TGVuZ3RoKSArIDEpO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZU51bTsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wID0gc2VyaWVzLnNsaWNlKGkgKiBtYXhMZW5ndGgsIGkgKiBtYXhMZW5ndGggKyBtYXhMZW5ndGgpO1xyXG4gICAgICBjdXJyZW50Um93LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICBsZWdlbmREYXRhLnBvaW50cyA9IGN1cnJlbnRSb3c7XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBjdXJyZW50Um93W2ldO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChpdGVtW2pdLm5hbWUgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmIChpdGVtV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGVnZW5kRGF0YS53aWR0aEFyci5wdXNoKG1heFdpZHRoKTtcclxuICAgICAgICBsZWdlbmREYXRhLmhlaWdodEFyci5wdXNoKGl0ZW0ubGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSAwXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVnZW5kRGF0YS53aWR0aEFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlZ2VuZFdpZHRoICs9IGxlZ2VuZERhdGEud2lkdGhBcnJbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmREYXRhLmFyZWEud2lkdGggKyBwYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCAtIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcsIGNvbnRleHQpIHtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICB2YXIgZm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gIHZhciBjYXRlZ29yaWVzVGV4dExlbnRoID0gY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtLGluZGV4LG9wdHMpIDogaXRlbTtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgXHJcbiAgdmFyIG1heFRleHRMZW5ndGggPSBNYXRoLm1heC5hcHBseSh0aGlzLCBjYXRlZ29yaWVzVGV4dExlbnRoKTtcclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCA9PSB0cnVlKSB7XHJcbiAgICByZXN1bHQuYW5nbGUgPSBvcHRzLnhBeGlzLnJvdGF0ZUFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgIE1hdGguYWJzKG1heFRleHRMZW5ndGggKiBNYXRoLnNpbihyZXN1bHQuYW5nbGUpKVxyXG4gICAgdGVtcEhlaWdodCA9IHRlbXBIZWlnaHQgPCBmb250U2l6ZSArIDIgKiBjb25maWcueEF4aXNUZXh0UGFkZGluZyA/IHRlbXBIZWlnaHQgKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgOiB0ZW1wSGVpZ2h0O1xyXG4gICAgaWYob3B0cy5lbmFibGVTY3JvbGwgPT0gdHJ1ZSAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cgPT0gdHJ1ZSl7XHJcbiAgICAgIHRlbXBIZWlnaHQgKz0gMTIgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IHRlbXBIZWlnaHQ7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkKXtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IDA7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBjb25maWcueEF4aXNIZWlnaHRcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICAvLyBnZXQgbWF4IGxlbmd0aCBvZiBjYXRlZ29yaWVzIHRleHRcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHRleHRMZW5ndGgpO1xyXG4gIC8vIOWmguaenOWIu+W6puWAvOaWh+acrOWGheWuuei/h+mVvyzliJnlsIblhbbpgIbml7bpkojml4vovaw0NcKwXHJcbiAgaWYgKG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBvcHRpb24sIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmKG9wdGlvbi50eXBlID09ICdmdW5uZWwnKXtcclxuICAgICAgc2VyaWVzW2ldLnJhZGl1cyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGEgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSAgKGVhY2hTcGFjaW5nICogKHNlcmllcy5sZW5ndGggLSBpKSkgLyAoZWFjaFNwYWNpbmcgKiBzZXJpZXMubGVuZ3RoKSAqIHJhZGl1cyAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBzZXJpZXNbaV0uX3Byb3BvcnRpb25fID0gc2VyaWVzW2ldLmRhdGEgLyBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgLy8gaWYob3B0aW9uLnR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgLy8gICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIC8vIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKGFyY2Jhck9wdGlvbi5kaXJlY3Rpb24gPT0gJ2Njdycpe1xyXG4gICAgICAgIGlmIChhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSA8IGFyY2Jhck9wdGlvbi5lbmRBbmdsZSkge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IDIgKyBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYgKGFyY2Jhck9wdGlvbi5lbmRBbmdsZSA8IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlKSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gMiArIGFyY2Jhck9wdGlvbi5lbmRBbmdsZSAtIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSBhcmNiYXJPcHRpb24uZW5kQW5nbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZihhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKXtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzIDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGUgKyAxO1xyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBpdGVtLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICsgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIGl0ZW0uX29sZEFuZ2xlXyA9IGdhdWdlT3B0aW9uLm9sZEFuZ2xlO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLm9sZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgaXRlbS5fb2xkQW5nbGVfICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhID49IGdhdWdlT3B0aW9uLm9sZERhdGEpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAoaXRlbS5fZW5kQW5nbGVfIC0gaXRlbS5fb2xkQW5nbGVfKSAqIHByb2Nlc3MgKyBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fb2xkQW5nbGVfIC0gKGl0ZW0uX29sZEFuZ2xlXyAtIGl0ZW0uX2VuZEFuZ2xlXykgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcyk7XHJcbiAgbGV0IG1heExlbmd0aCA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKCtpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDIpKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIG1lYXN1cmVUZXh0KHRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpKTtcclxuICB9XHJcbiAgcmV0dXJuIG1heExlbmd0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMpIHtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHZhciBzZXJpZXNHYXAgPSAwO1xyXG4gICAgdmFyIGNhdGVnb3J5R2FwID0gMDtcclxuICAgIGlmIChvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEuY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEubWl4ICYmIG9wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5taXguY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgaXRlbS54ICs9IChpbmRleCArIDAuNSAtIGNvbHVtbkxlbiAvIDIpICogKGl0ZW0ud2lkdGggKyBzZXJpZXNHYXApO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmJhci5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmJhci5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICBzZXJpZXNHYXAgPSAgTWF0aC5taW4oc2VyaWVzR2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGNhdGVnb3J5R2FwID0gIE1hdGgubWluKGNhdGVnb3J5R2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwIC0gc2VyaWVzR2FwICogKGNvbHVtbkxlbiAtIDEpKSAvIGNvbHVtbkxlbik7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueSArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVNZXRlckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBib3JkZXIpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXA7XHJcbiAgICBpZiAob3B0cy5leHRyYS5jb2x1bW4gJiYgb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoIC09IGJvcmRlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXhuKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXApO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmJhciAmJiBvcHRzLmV4dHJhLmJhci53aWR0aCAmJiArb3B0cy5leHRyYS5iYXIud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5iYXIud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBkYXRhQ291bnQgPSBvcHRzLmVuYWJsZVNjcm9sbCA/IE1hdGgubWluKG9wdHMueEF4aXMuaXRlbUNvdW50LCBjYXRlZ29yaWVzLmxlbmd0aCkgOiBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT0gJ2JhcicpICYmIGRhdGFDb3VudCA+IDEgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgIGRhdGFDb3VudCAtPSAxO1xyXG4gIH1cclxuICB2YXIgd2lkdGhSYXRpbyA9IDA7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxKXtcclxuICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICB3aWR0aFJhdGlvID0gb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMTtcclxuICAgIGRhdGFDb3VudCArPSB3aWR0aFJhdGlvO1xyXG4gIH1cclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBkYXRhQ291bnQ7XHJcbiAgdmFyIHhBeGlzUG9pbnRzID0gW107XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIHdpZHRoUmF0aW8gLyAyICogZWFjaFNwYWNpbmcgKyBpbmRleCAqIGVhY2hTcGFjaW5nKTtcclxuICB9KTtcclxuICBpZiAob3B0cy54QXhpcy5ib3VuZGFyeUdhcCAhPT0gJ2p1c3RpZnknKSB7XHJcbiAgICBpZiAob3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgICAgeEF4aXNQb2ludHMucHVzaChzdGFydFggKyB3aWR0aFJhdGlvICogZWFjaFNwYWNpbmcgKyBjYXRlZ29yaWVzLmxlbmd0aCAqIGVhY2hTcGFjaW5nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHhBeGlzUG9pbnRzLnB1c2goZW5kWCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFg6IHN0YXJ0WCxcclxuICAgIGVuZFg6IGVuZFgsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDYW5kbGVEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBjUG9pbnRzID0gW107XHJcbiAgICAgIGl0ZW0uZm9yRWFjaChmdW5jdGlvbihpdGVtcywgaW5kZXhzKSB7XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtcy52YWx1ZSB8fCBpdGVtcztcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgIGNQb2ludHMucHVzaChwb2ludCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwb2ludHMucHVzaChjUG9pbnRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnICkge1xyXG4gICAgYm91bmRhcnlHYXAgPSBvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwO1xyXG4gIH1cclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgICAgbGV0IHhyYW5nZXMsIHhtaW5SYW5nZSwgeG1heFJhbmdlO1xyXG4gICAgICAgICAgeHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgICAgICAgIHhtaW5SYW5nZSA9IHhyYW5nZXMuc2hpZnQoKTtcclxuICAgICAgICAgIHhtYXhSYW5nZSA9IHhyYW5nZXMucG9wKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW1bMV07XHJcbiAgICAgICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgdmFsaWRXaWR0aCAqIChpdGVtWzBdIC0geG1pblJhbmdlKSAvICh4bWF4UmFuZ2UgLSB4bWluUmFuZ2UpO1xyXG4gICAgICAgICAgaWYob3B0cy50eXBlID09ICdidWJibGUnKXtcclxuICAgICAgICAgICAgcG9pbnQuciA9IGl0ZW1bMl07XHJcbiAgICAgICAgICAgIHBvaW50LnQgPSBpdGVtWzNdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIGhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbikge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIG1vdW50V2lkdGggPSBlYWNoU3BhY2luZyAqIG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0uZGF0YTtcclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC53aWR0aCA9IG1vdW50V2lkdGg7XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkV2lkdGggKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHBvaW50LnggPSBoZWlnaHQgKyBvcHRzLmFyZWFbM107XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHN0YWNrU2VyaWVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gOSAmJiBhcmd1bWVudHNbOV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s5XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdICsgTWF0aC5yb3VuZChlYWNoU3BhY2luZyAvIDIpO1xyXG5cclxuICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc2VyaWVzSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgdmFsdWUgKz0gc3RhY2tTZXJpZXNbaV0uZGF0YVtpbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2YWx1ZTAgPSB2YWx1ZSAtIGl0ZW07XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gdmFsaWRIZWlnaHQgKiAodmFsdWUwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50LnkwID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodGMpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzZXJpZXNJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgICB2YWx1ZSArPSBzdGFja1Nlcmllc1tpXS5kYXRhW2luZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHZhbHVlMCA9IHZhbHVlIC0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSB2YWxpZEhlaWdodCAqICh2YWx1ZTAgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gMDtcclxuICAgICAgfVxyXG4gICAgICB2YXIgaGVpZ2h0YyA9IGhlaWdodDA7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBoZWlnaHRjICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LmhlaWdodCA9IGhlaWdodCAtIGhlaWdodGM7XHJcbiAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LngwID0gb3B0cy5hcmVhWzNdICsgaGVpZ2h0YztcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFlBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrLCB5RGF0YSkge1xyXG4gIHZhciBpbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogLTE7XHJcbiAgdmFyIGRhdGE7XHJcbiAgaWYgKHN0YWNrID09ICdzdGFjaycpIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZShzZXJpZXMpO1xyXG4gIH1cclxuICB2YXIgc29ydGVkID0gW107XHJcbiAgLy8gcmVtb3ZlIG51bGwgZnJvbSBkYXRhXHJcbiAgZGF0YSA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSAhPT0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKGZ1bmN0aW9uKHN1Yml0ZW0pIHtcclxuICAgICAgICAgICAgc29ydGVkLnB1c2goc3ViaXRlbSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0ZWQucHVzaChpdGVtWzFdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydGVkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnRlZC5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH0pXHJcbiAgdmFyIG1pbkRhdGEgPSB5RGF0YS5taW4gfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IHlEYXRhLm1heCB8fCAwO1xyXG4gIGlmIChzb3J0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgbWluRGF0YSA9IE1hdGgubWluLmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgICBtYXhEYXRhID0gTWF0aC5tYXguYXBwbHkodGhpcywgc29ydGVkKTtcclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIGlmKG1heERhdGEgPT0gMCl7XHJcbiAgICAgIG1heERhdGEgPSAxMDtcclxuICAgIH1lbHNle1xyXG4gICAgICBtaW5EYXRhID0gMDtcclxuICAgIH1cclxuICB9XHJcbiAgdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSAoeURhdGEubWluID09PSB1bmRlZmluZWQgfHwgeURhdGEubWluID09PSBudWxsKSA/IGRhdGFSYW5nZS5taW5SYW5nZSA6IHlEYXRhLm1pbjtcclxuICB2YXIgbWF4UmFuZ2UgPSAoeURhdGEubWF4ID09PSB1bmRlZmluZWQgfHwgeURhdGEubWF4ID09PSBudWxsKSA/IGRhdGFSYW5nZS5tYXhSYW5nZSA6IHlEYXRhLm1heDtcclxuICB2YXIgZWFjaFJhbmdlID0gKG1heFJhbmdlIC0gbWluUmFuZ2UpIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgcmFuZ2UgPSBbXTtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8PSBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyOyBpKyspIHtcclxuICAgIHJhbmdlLnB1c2gobWluUmFuZ2UgKyBlYWNoUmFuZ2UgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIHJhbmdlLnJldmVyc2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWUF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIC8v5aaC5p6c5piv5aSaWei9tO+8jOmHjeaWsOiuoeeul1xyXG4gIHZhciBZTGVuZ3RoID0gb3B0cy55QXhpcy5kYXRhLmxlbmd0aDtcclxuICB2YXIgbmV3U2VyaWVzID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gIGlmIChZTGVuZ3RoID4gMCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbmV3U2VyaWVzW2ldID0gW107XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VyaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHNlcmllc1tqXS5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICBuZXdTZXJpZXNbaV0ucHVzaChzZXJpZXNbal0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IFlMZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIC8v5aaC5p6c5oC75byA5YWz5LiN5pi+56S677yM5by65Yi25q+P5LiqWei9tOS4uuS4jeaYvuekulxyXG4gICAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgeURhdGEuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHlEYXRhLnR5cGUgPT09ICdjYXRlZ29yaWVzJyl7XHJcbiAgICAgICAgaWYoIXlEYXRhLmZvcm1hdHRlcil7XHJcbiAgICAgICAgICB5RGF0YS5mb3JtYXR0ZXIgPSAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgeURhdGEuY2F0ZWdvcmllcyA9IHlEYXRhLmNhdGVnb3JpZXMgfHwgb3B0cy5jYXRlZ29yaWVzO1xyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IHlEYXRhLmNhdGVnb3JpZXM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHV0aWwudG9GaXhlZCh2YWwsIHlEYXRhLnRvZml4IHx8IDApICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmFuZ2VzQXJyW2ldID0gZ2V0WUF4aXNUZXh0TGlzdChuZXdTZXJpZXNbaV0sIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwgeURhdGEsIGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB5QXhpc0ZvbnRTaXplcyA9IHlEYXRhLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyW2ldID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiB5RGF0YS5wb3NpdGlvbiA/IHlEYXRhLnBvc2l0aW9uIDogJ2xlZnQnLFxyXG4gICAgICAgIHdpZHRoOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIHJhbmdlc0Zvcm1hdEFycltpXSA9IHJhbmdlc0FycltpXS5tYXAoZnVuY3Rpb24oaXRlbXMsaW5kZXgpIHtcclxuICAgICAgICBpdGVtcyA9IHlEYXRhLmZvcm1hdHRlcihpdGVtcyxpbmRleCxvcHRzKTtcclxuICAgICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoID0gTWF0aC5tYXgoeUF4aXNXaWR0aEFycltpXS53aWR0aCwgbWVhc3VyZVRleHQoaXRlbXMsIHlBeGlzRm9udFNpemVzLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBjYWxpYnJhdGlvbiA9IHlEYXRhLmNhbGlicmF0aW9uID8gNCAqIG9wdHMucGl4IDogMDtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCArPSBjYWxpYnJhdGlvbiArIDMgKiBvcHRzLnBpeDtcclxuICAgICAgaWYgKHlEYXRhLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PT0gJ2Jhcicpe1xyXG4gICAgICByYW5nZXNBcnJbMF0gPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmFuZ2VzQXJyWzBdID0gZ2V0WUF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwge30pO1xyXG4gICAgfVxyXG4gICAgeUF4aXNXaWR0aEFyclswXSA9IHtcclxuICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH07XHJcbiAgICBcclxuICAgIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0gPSB7XHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRydWVcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMueUF4aXMuZGF0YVswXSA9IHtcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICBtYXg6IG9wdHMueUF4aXMubWF4LFxyXG4gICAgICAgIG1pbjogb3B0cy55QXhpcy5taW4sXHJcbiAgICAgICAgZm9ybWF0dGVyOiAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsfVxyXG4gICAgICB9O1xyXG4gICAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0uY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0udHlwZSA9ICdjYXRlZ29yaWVzJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHlBeGlzRm9udFNpemUgPSBvcHRzLnlBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgcmFuZ2VzRm9ybWF0QXJyWzBdID0gcmFuZ2VzQXJyWzBdLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KSB7XHJcbiAgICAgIGl0ZW0gPSBvcHRzLnlBeGlzLmRhdGFbMF0uZm9ybWF0dGVyKGl0ZW0saW5kZXgsb3B0cyk7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyWzBdLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtLCB5QXhpc0ZvbnRTaXplLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICByYW5nZXNGb3JtYXQ6IHJhbmdlc0Zvcm1hdEFycixcclxuICAgIHJhbmdlczogcmFuZ2VzQXJyLFxyXG4gICAgeUF4aXNXaWR0aDogeUF4aXNXaWR0aEFyclxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFRvb2x0aXBZQXhpc0RhdGEocG9pbnQsIHNlcmllcywgb3B0cywgY29uZmlnLCBlYWNoU3BhY2luZykge1xyXG4gIGxldCByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgbGV0IHNwYWNpbmdWYWxpZCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBtaW5BeGlzID0gb3B0cy5hcmVhWzBdO1xyXG4gIGxldCBpdGVtcyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgbWF4VmFsID0gTWF0aC5tYXguYXBwbHkodGhpcywgcmFuZ2VzW2ldKTtcclxuICAgIGxldCBtaW5WYWwgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCByYW5nZXNbaV0pO1xyXG4gICAgbGV0IGl0ZW0gPSBtYXhWYWwgLSAobWF4VmFsIC0gbWluVmFsKSAqIChwb2ludCAtIG1pbkF4aXMpIC8gc3BhY2luZ1ZhbGlkO1xyXG4gICAgaXRlbSA9IG9wdHMueUF4aXMuZGF0YSAmJiBvcHRzLnlBeGlzLmRhdGFbaV0uZm9ybWF0dGVyID8gb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlcihpdGVtLCBpLCBvcHRzKSA6IGl0ZW0udG9GaXhlZCgwKTtcclxuICAgIGl0ZW1zLnB1c2goU3RyaW5nKGl0ZW0pKVxyXG4gIH1cclxuICByZXR1cm4gaXRlbXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbE1hcmtMaW5lRGF0YShwb2ludHMsIG9wdHMpIHtcclxuICBsZXQgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgcG9pbnRzW2ldLnlBeGlzSW5kZXggPSBwb2ludHNbaV0ueUF4aXNJbmRleCA/IHBvaW50c1tpXS55QXhpc0luZGV4IDogMDtcclxuICAgIGxldCByYW5nZSA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW3BvaW50c1tpXS55QXhpc0luZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZS5zaGlmdCgpO1xyXG4gICAgbGV0IGhlaWdodCA9IHNwYWNpbmdWYWxpZCAqIChwb2ludHNbaV0udmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICBwb2ludHNbaV0ueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gIH1cclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpIHtcclxuICBpZiAob3B0cy5yb3RhdGVMb2NrICE9PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLmhlaWdodCwgMCk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gIH0gZWxzZSBpZiAob3B0cy5fcm90YXRlXyAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICAgIG9wdHMuX3JvdGF0ZV8gPSB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BvaW50U2hhcGUocG9pbnRzLCBjb2xvciwgc2hhcGUsIGNvbnRleHQsIG9wdHMpIHtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlVHlwZSA9PSAnaG9sbG93Jykge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShcIiNmZmZmZmZcIik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnY2lyY2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggKyAyLjUgKiBvcHRzLnBpeCwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkgKyA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdub25lJykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXIpIHtcclxuICB2YXIgdGl0bGVmb250U2l6ZSA9IG9wdHMudGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHN1YnRpdGxlZm9udFNpemUgPSBvcHRzLnN1YnRpdGxlLmZvbnRTaXplIHx8IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplO1xyXG4gIHZhciB0aXRsZSA9IG9wdHMudGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgc3VidGl0bGUgPSBvcHRzLnN1YnRpdGxlLm5hbWUgfHwgJyc7XHJcbiAgdmFyIHRpdGxlRm9udENvbG9yID0gb3B0cy50aXRsZS5jb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICB2YXIgc3VidGl0bGVGb250Q29sb3IgPSBvcHRzLnN1YnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciB0aXRsZUhlaWdodCA9IHRpdGxlID8gdGl0bGVmb250U2l6ZSA6IDA7XHJcbiAgdmFyIHN1YnRpdGxlSGVpZ2h0ID0gc3VidGl0bGUgPyBzdWJ0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgbWFyZ2luID0gNTtcclxuICBpZiAoc3VidGl0bGUpIHtcclxuICAgIHZhciB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChzdWJ0aXRsZSwgc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBzdGFydFggPSBjZW50ZXIueCAtIHRleHRXaWR0aCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRYfHwgMCkgKiBvcHRzLnBpeCA7XHJcbiAgICB2YXIgc3RhcnRZID0gY2VudGVyLnkgKyBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXggLyAyICsgKG9wdHMuc3VidGl0bGUub2Zmc2V0WSB8fCAwKSAqIG9wdHMucGl4O1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHN0YXJ0WSArPSAodGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHN1YnRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoc3VidGl0bGUsIHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICBpZiAodGl0bGUpIHtcclxuICAgIHZhciBfdGV4dFdpZHRoID0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCwgY29udGV4dCk7XHJcbiAgICB2YXIgX3N0YXJ0WCA9IGNlbnRlci54IC0gX3RleHRXaWR0aCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRYIHx8IDApO1xyXG4gICAgdmFyIF9zdGFydFkgPSBjZW50ZXIueSArIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAoc3VidGl0bGUpIHtcclxuICAgICAgX3N0YXJ0WSAtPSAoc3VidGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIF9zdGFydFgsIF9zdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSA/IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGRhdGFbaW5kZXhdXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpbmRleF0gPT09ICdvYmplY3QnICYmIGRhdGFbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaW5kZXhdLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKT4tMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XVsxXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzLmZvcm1hdHRlciA/IHNlcmllcy5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01vdW50UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllc1tpbmRleF0udGV4dFNpemUgPyBzZXJpZXNbaW5kZXhdLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXNbaW5kZXhdLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0udmFsdWVcclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllc1tpbmRleF0uZm9ybWF0dGVyID8gc2VyaWVzW2luZGV4XS5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhclBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBzZXJpZXMudGV4dFNpemUgPyBzZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllcy50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW2luZGV4XVxyXG4gICAgICBpZiAodHlwZW9mIGRhdGFbaW5kZXhdID09PSAnb2JqZWN0JyAmJiBkYXRhW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHZhbHVlID0gZGF0YVtpbmRleF0udmFsdWUgO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54ICsgNCAqIG9wdHMucGl4ICwgaXRlbS55ICsgZm9udFNpemUgLyAyIC0gMyApO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgcmFkaXVzIC09IGdhdWdlT3B0aW9uLndpZHRoIC8gMiArIGdhdWdlT3B0aW9uLmxhYmVsT2Zmc2V0ICogb3B0cy5waXg7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCB0b3RhbE51bWJlciA9IGdhdWdlT3B0aW9uLmVuZE51bWJlciAtIGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGxldCBzcGxpdE51bWJlciA9IHRvdGFsTnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBub3dBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgbGV0IG5vd051bWJlciA9IGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhub3dBbmdsZSAqIE1hdGguUEkpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihub3dBbmdsZSAqIE1hdGguUEkpXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhYmVsVGV4dCA9IGdhdWdlT3B0aW9uLmZvcm1hdHRlciA/IGdhdWdlT3B0aW9uLmZvcm1hdHRlcihub3dOdW1iZXIsaSxvcHRzKSA6IG5vd051bWJlcjtcclxuICAgIHBvcy54ICs9IGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgcG9zLnkgKz0gY2VudGVyUG9zaXRpb24ueTtcclxuICAgIHZhciBzdGFydFggPSBwb3MueDtcclxuICAgIHZhciBzdGFydFkgPSBwb3MueTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShnYXVnZU9wdGlvbi5sYWJlbENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQobGFiZWxUZXh0LCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBub3dBbmdsZSArPSBzcGxpdEFuZ2xlO1xyXG4gICAgaWYgKG5vd0FuZ2xlID49IDIpIHtcclxuICAgICAgbm93QW5nbGUgPSBub3dBbmdsZSAlIDI7XHJcbiAgICB9XHJcbiAgICBub3dOdW1iZXIgKz0gc3BsaXROdW1iZXI7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJMYWJlbChhbmdsZUxpc3QsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oYW5nbGUsIGluZGV4KSB7XHJcbiAgICBpZihyYWRhck9wdGlvbi5sYWJlbFBvaW50U2hvdyA9PT0gdHJ1ZSAmJiBvcHRzLmNhdGVnb3JpZXNbaW5kZXhdICE9PSAnJyl7XHJcbiAgICAgIHZhciBwb3NQb2ludCA9IHtcclxuICAgICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgICAgeTogcmFkaXVzICogTWF0aC5zaW4oYW5nbGUpXHJcbiAgICAgIH07XHJcbiAgICAgIHZhciBwb3NQb2ludEF4aXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3NQb2ludC54LCBwb3NQb2ludC55LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsUG9pbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuYXJjKHBvc1BvaW50QXhpcy54LCBwb3NQb2ludEF4aXMueSwgcmFkYXJPcHRpb24ubGFiZWxQb2ludFJhZGl1cyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICAgIHZhciBwb3MgPSB7XHJcbiAgICAgIHg6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgIHk6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLnNpbihhbmdsZSlcclxuICAgIH07XHJcbiAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIHZhciBzdGFydFggPSBwb3NSZWxhdGl2ZUNhbnZhcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvc1JlbGF0aXZlQ2FudmFzLnk7XHJcbiAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIH0gZWxzZSBpZiAocG9zLnggPCAwKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXIpIHtcclxuICB2YXIgbGluZVJhZGl1cyA9IGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nO1xyXG4gIHZhciB0ZXh0T2JqZWN0Q29sbGVjdGlvbiA9IFtdO1xyXG4gIHZhciBsYXN0VGV4dE9iamVjdCA9IG51bGw7XHJcbiAgdmFyIHNlcmllc0NvbnZlcnQgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgpIHtcclxuICAgIHZhciB0ZXh0ID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLGluZGV4LHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDQpICogMTAwKSArICclJztcclxuICAgIHRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogdGV4dDtcclxuICAgIHZhciBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Byb3BvcnRpb25fIC8gMik7XHJcbiAgICBpZiAoaXRlbS5fcm9zZV9wcm9wb3J0aW9uXykge1xyXG4gICAgICBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIH1cclxuICAgIHZhciBjb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICB2YXIgcmFkaXVzID0gaXRlbS5fcmFkaXVzXztcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyYzogYXJjLFxyXG4gICAgICB0ZXh0OiB0ZXh0LFxyXG4gICAgICBjb2xvcjogY29sb3IsXHJcbiAgICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgICB0ZXh0Q29sb3I6IGl0ZW0udGV4dENvbG9yLFxyXG4gICAgICB0ZXh0U2l6ZTogaXRlbS50ZXh0U2l6ZSxcclxuICAgICAgbGFiZWxTaG93OiBpdGVtLmxhYmVsU2hvd1xyXG4gICAgfTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc0NvbnZlcnQubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzQ29udmVydFtpXTtcclxuICAgIC8vIGxpbmUgZW5kXHJcbiAgICBsZXQgb3JnaW5YMSA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgbGV0IG9yZ2luWTEgPSBNYXRoLnNpbihpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIC8vIGxpbmUgc3RhcnRcclxuICAgIGxldCBvcmdpblgyID0gTWF0aC5jb3MoaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICBsZXQgb3JnaW5ZMiA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgLy8gdGV4dCBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDMgPSBvcmdpblgxID49IDAgPyBvcmdpblgxICsgY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgOiBvcmdpblgxIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmc7XHJcbiAgICBsZXQgb3JnaW5ZMyA9IG9yZ2luWTE7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCBzdGFydFkgPSBvcmdpblkzO1xyXG4gICAgaWYgKGxhc3RUZXh0T2JqZWN0ICYmIHV0aWwuaXNTYW1lWENvb3JkaW5hdGVBcmVhKGxhc3RUZXh0T2JqZWN0LnN0YXJ0LCB7XHJcbiAgICAgICAgeDogb3JnaW5YM1xyXG4gICAgICB9KSkge1xyXG4gICAgICBpZiAob3JnaW5YMyA+IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIGlmIChvcmdpblgxIDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmdpblkzID4gMCkge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9yZ2luWDMgPCAwKSB7XHJcbiAgICAgIG9yZ2luWDMgLT0gdGV4dFdpZHRoO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHRPYmplY3QgPSB7XHJcbiAgICAgIGxpbmVTdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDIsXHJcbiAgICAgICAgeTogb3JnaW5ZMlxyXG4gICAgICB9LFxyXG4gICAgICBsaW5lRW5kOiB7XHJcbiAgICAgICAgeDogb3JnaW5YMSxcclxuICAgICAgICB5OiBvcmdpblkxXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMyxcclxuICAgICAgICB5OiBzdGFydFlcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IHRleHRXaWR0aCxcclxuICAgICAgaGVpZ2h0OiBjb25maWcuZm9udFNpemUsXHJcbiAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplXHJcbiAgICB9O1xyXG4gICAgbGFzdFRleHRPYmplY3QgPSBhdm9pZENvbGxpc2lvbih0ZXh0T2JqZWN0LCBsYXN0VGV4dE9iamVjdCk7XHJcbiAgICB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5wdXNoKGxhc3RUZXh0T2JqZWN0KTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYoc2VyaWVzQ29udmVydFtpXS5sYWJlbFNob3cgPT09IGZhbHNlKXtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBsZXQgaXRlbSA9IHRleHRPYmplY3RDb2xsZWN0aW9uW2ldO1xyXG4gICAgbGV0IGxpbmVTdGFydFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lU3RhcnQueCwgaXRlbS5saW5lU3RhcnQueSwgY2VudGVyKTtcclxuICAgIGxldCBsaW5lRW5kUG9pc3Rpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihpdGVtLmxpbmVFbmQueCwgaXRlbS5saW5lRW5kLnksIGNlbnRlcik7XHJcbiAgICBsZXQgdGV4dFBvc2l0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5zdGFydC54LCBpdGVtLnN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGxldCBjdXJ2ZVN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGggOiB0ZXh0UG9zaXRpb24ueDtcclxuICAgIGxldCB0ZXh0U3RhcnRYID0gaXRlbS5zdGFydC54IDwgMCA/IHRleHRQb3NpdGlvbi54IC0gNSA6IHRleHRQb3NpdGlvbi54ICsgNTtcclxuICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhsaW5lRW5kUG9pc3Rpb24ueCwgbGluZUVuZFBvaXN0aW9uLnksIGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHRleHRQb3NpdGlvbi54ICsgaXRlbS53aWR0aCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY3VydmVTdGFydFgsIHRleHRQb3NpdGlvbi55LCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChpdGVtLnRleHQsIHRleHRTdGFydFgsIHRleHRQb3NpdGlvbi55ICsgMyk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0TGluZShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IG9wdHMuZXh0cmEudG9vbHRpcCB8fCB7fTtcclxuICB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID0gdG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSB1bmRlZmluZWQgPyAnc29saWQnIDogdG9vbFRpcE9wdGlvbi5ncmlkVHlwZTtcclxuICB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPSB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPT0gdW5kZWZpbmVkID8gNCA6IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aDtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFt0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGgsIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aF0pO1xyXG4gIH1cclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24uZ3JpZENvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQubW92ZVRvKG9mZnNldFgsIHN0YXJ0WSk7XHJcbiAgY29udGV4dC5saW5lVG8ob2Zmc2V0WCwgZW5kWSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi54QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gb3B0cy5jYXRlZ29yaWVzW29wdHMudG9vbHRpcC5pbmRleF07XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgbGV0IHRleHRYID0gb2Zmc2V0WCAtIDAuNSAqIHRleHRXaWR0aDtcclxuICAgIGxldCB0ZXh0WSA9IGVuZFkgKyAyICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQucmVjdCh0ZXh0WCAtIGNvbmZpZy50b29sVGlwUGFkZGluZywgdGV4dFksIHRleHRXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCB0ZXh0WSArIGNvbmZpZy50b29sVGlwUGFkZGluZyArIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgbWFya0xpbmVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0LFxyXG4gICAgZGF0YTogW11cclxuICB9LCBvcHRzLmV4dHJhLm1hcmtMaW5lKTtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgcG9pbnRzID0gY2FsTWFya0xpbmVEYXRhKG1hcmtMaW5lT3B0aW9uLmRhdGEsIG9wdHMpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IGFzc2lnbih7fSwge1xyXG4gICAgICBsaW5lQ29sb3I6ICcjREU0QTQyJyxcclxuICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgbGFiZWxGb250Q29sb3I6ICcjNjY2NjY2JyxcclxuICAgICAgbGFiZWxCZ0NvbG9yOiAnI0RGRThGRicsXHJcbiAgICAgIGxhYmVsQmdPcGFjaXR5OiAwLjgsXHJcbiAgICAgIGxhYmVsQWxpZ246ICdsZWZ0JyxcclxuICAgICAgbGFiZWxPZmZzZXRYOiAwLFxyXG4gICAgICBsYWJlbE9mZnNldFk6IDAsXHJcbiAgICB9LCBwb2ludHNbaV0pO1xyXG4gICAgaWYgKG1hcmtMaW5lT3B0aW9uLnR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW21hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGgsIG1hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5saW5lQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgaWYgKGl0ZW0uc2hvd0xhYmVsKSB7XHJcbiAgICAgIGxldCBsYWJlbFRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogaXRlbS52YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdXaWR0aCA9IHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDI7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCA9IGl0ZW0ubGFiZWxBbGlnbiA9PSAnbGVmdCcgPyBvcHRzLmFyZWFbM10gLSBiZ1dpZHRoIDogb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgICAgYmdTdGFydFggKz0gaXRlbS5sYWJlbE9mZnNldFg7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WSA9IGl0ZW0ueSAtIDAuNSAqIGNvbmZpZy5mb250U2l6ZSAtIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgYmdTdGFydFkgKz0gaXRlbS5sYWJlbE9mZnNldFk7XHJcbiAgICAgIGxldCB0ZXh0WCA9IGJnU3RhcnRYICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICBsZXQgdGV4dFkgPSBpdGVtLnk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGl0ZW0ubGFiZWxCZ0NvbG9yLCBpdGVtLmxhYmVsQmdPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5sYWJlbEJnQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIGJnU3RhcnRZLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5sYWJlbEZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCBiZ1N0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSArIGNvbmZpZy50b29sVGlwUGFkZGluZy8yKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZFR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0XHJcbiAgfSwgb3B0cy5leHRyYS50b29sdGlwKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLnRvb2x0aXAub2Zmc2V0LnkpO1xyXG4gIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMudG9vbHRpcC5vZmZzZXQueSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi55QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gY2FsVG9vbHRpcFlBeGlzRGF0YShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nKTtcclxuICAgIGxldCB3aWR0aEFyciA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgICBsZXQgdFN0YXJ0UmlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbFRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0W2ldLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdTdGFydFgsIGJnRW5kWCwgYmdXaWR0aDtcclxuICAgICAgaWYgKHdpZHRoQXJyW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGJnU3RhcnRYID0gdFN0YXJ0TGVmdCAtICh0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKSAtIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCwgYmdTdGFydFggKyB0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBiZ1N0YXJ0WCA9IHRTdGFydFJpZ2h0ICsgMiAqIG9wdHMucGl4O1xyXG4gICAgICAgIGJnRW5kWCA9IE1hdGgubWF4KGJnU3RhcnRYICsgd2lkdGhBcnJbaV0ud2lkdGgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH1cclxuICAgICAgYmdXaWR0aCA9IGJnRW5kWCAtIGJnU3RhcnRYO1xyXG4gICAgICBsZXQgdGV4dFggPSBiZ1N0YXJ0WCArIChiZ1dpZHRoIC0gdGV4dFdpZHRoKSAvIDI7XHJcbiAgICAgIGxldCB0ZXh0WSA9IG9wdHMudG9vbHRpcC5vZmZzZXQueTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQucmVjdChiZ1N0YXJ0WCwgdGV4dFkgLSAwLjUgKiBjb25maWcuZm9udFNpemUgLSBjb25maWcudG9vbFRpcFBhZGRpbmcsIGJnV2lkdGgsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHRbaV0sIHRleHRYLCB0ZXh0WSArIDAuNSAqIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICB0U3RhcnRMZWZ0IC09ICh3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0U3RhcnRSaWdodCArPSB3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOCxcclxuICAgIGFjdGl2ZVdpZHRoOiBlYWNoU3BhY2luZ1xyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoID0gdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aCA+IGVhY2hTcGFjaW5nID8gZWFjaFNwYWNpbmcgOiB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3Qob2Zmc2V0WCAtIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGggLyAyLCBzdGFydFksIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGgsIGVuZFkgLSBzdGFydFkpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoXCIjRkZGRkZGXCIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3QoIHN0YXJ0WCAsb2Zmc2V0WCAtIGVhY2hTcGFjaW5nIC8gMiAsICBlbmRYIC0gc3RhcnRYLGVhY2hTcGFjaW5nKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwKHRleHRMaXN0LCBvZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3dCb3g6IHRydWUsXHJcbiAgICBzaG93QXJyb3c6IHRydWUsXHJcbiAgICBzaG93Q2F0ZWdvcnk6IGZhbHNlLFxyXG4gICAgYmdDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYmdPcGFjaXR5OiAwLjcsXHJcbiAgICBib3JkZXJDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBib3JkZXJSYWRpdXM6IDAsXHJcbiAgICBib3JkZXJPcGFjaXR5OiAwLjcsXHJcbiAgICBmb250Q29sb3I6ICcjRkZGRkZGJyxcclxuICAgIHNwbGl0TGluZTogdHJ1ZSxcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIGlmKHRvb2xUaXBPcHRpb24uc2hvd0NhdGVnb3J5PT10cnVlICYmIG9wdHMuY2F0ZWdvcmllcyl7XHJcbiAgICB0ZXh0TGlzdC51bnNoaWZ0KHt0ZXh0Om9wdHMuY2F0ZWdvcmllc1tvcHRzLnRvb2x0aXAuaW5kZXhdLGNvbG9yOm51bGx9KVxyXG4gIH1cclxuICB2YXIgbGVnZW5kV2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgdmFyIGxlZ2VuZE1hcmdpblJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIHZhciBhcnJvd1dpZHRoID0gdG9vbFRpcE9wdGlvbi5zaG93QXJyb3cgPyA4ICogb3B0cy5waXggOiAwO1xyXG4gIHZhciBpc092ZXJSaWdodEJvcmRlciA9IGZhbHNlO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4Jykge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc3BsaXRMaW5lID09IHRydWUpIHtcclxuICAgICAgZHJhd1Rvb2xUaXBTcGxpdExpbmUob3B0cy50b29sdGlwLm9mZnNldC54LCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQgPSBhc3NpZ24oe1xyXG4gICAgeDogMCxcclxuICAgIHk6IDBcclxuICB9LCBvZmZzZXQpO1xyXG4gIG9mZnNldC55IC09IDggKiBvcHRzLnBpeDtcclxuICB2YXIgdGV4dFdpZHRoID0gdGV4dExpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLnRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgdmFyIHRvb2xUaXBXaWR0aCA9IGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQgKyA0ICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgTWF0aC5tYXguYXBwbHkobnVsbCwgdGV4dFdpZHRoKTtcclxuICB2YXIgdG9vbFRpcEhlaWdodCA9IDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcgKyB0ZXh0TGlzdC5sZW5ndGggKiBjb25maWcudG9vbFRpcExpbmVIZWlnaHQ7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0JveCA9PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG4gIC8vIGlmIGJleW9uZCB0aGUgcmlnaHQgYm9yZGVyXHJcbiAgaWYgKG9mZnNldC54IC0gTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArIHRvb2xUaXBXaWR0aCA+IG9wdHMud2lkdGgpIHtcclxuICAgIGlzT3ZlclJpZ2h0Qm9yZGVyID0gdHJ1ZTtcclxuICB9XHJcbiAgaWYgKHRvb2xUaXBIZWlnaHQgKyBvZmZzZXQueSA+IG9wdHMuaGVpZ2h0KSB7XHJcbiAgICBvZmZzZXQueSA9IG9wdHMuaGVpZ2h0IC0gdG9vbFRpcEhlaWdodDtcclxuICB9XHJcbiAgLy8gZHJhdyBiYWNrZ3JvdW5kIHJlY3RcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24uYmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmJvcmRlckNvbG9yLCB0b29sVGlwT3B0aW9uLmJvcmRlck9wYWNpdHkpKTtcclxuICB2YXIgcmFkaXVzID0gdG9vbFRpcE9wdGlvbi5ib3JkZXJSYWRpdXM7XHJcbiAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAvLyDlop7liqDlt6bkvqfku43nhLbotoXlh7rnmoTliKTmlq1cclxuICAgIGlmKHRvb2xUaXBXaWR0aCArIGFycm93V2lkdGggPiBvcHRzLndpZHRoKXtcclxuICAgICAgb2Zmc2V0LnggPSBvcHRzLndpZHRoICsgTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArICh0b29sVGlwV2lkdGggLSBvcHRzLndpZHRoKVxyXG4gICAgfVxyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLCBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cyxcclxuICAgICAgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4IC0gNSAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsXHJcbiAgICAgIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsIDAsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggPiAwKSB7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICAvLyBkcmF3IGxlZ2VuZFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtLmNvbG9yICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICB2YXIgc3RhcnRYID0gb2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgKGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAtIGNvbmZpZy5mb250U2l6ZSkgLyAyICsgY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogaW5kZXggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKyAxO1xyXG4gICAgICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFksIGxlZ2VuZFdpZHRoLCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICAvLyDlnIblvaLlm77kvovor7fms6jph4rkuIrooYzvvIzlubbmiorkuIvooYzlj5bmtojms6jph4pcclxuICAgICAgLy8gY29udGV4dC5hcmMoc3RhcnRYICsgbGVnZW5kV2lkdGggLyAyICwgc3RhcnRZICsgb3B0cy5mb250U2l6ZSAvIDIsIDQgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodDtcclxuICAgIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgK2xlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgc3RhcnRZID0gb2Zmc2V0LnkgKyAoY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0IC0gY29uZmlnLmZvbnRTaXplKSAvIDIgKyBjb25maWcudG9vbFRpcExpbmVIZWlnaHQgKiBpbmRleCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKVxyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIC8vY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgIC8vIOe7mOWItuWghuWPoOaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyICsgMTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0MCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55MCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgIGhlaWdodCAtPSBoZWlnaHQwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIGl0ZW0ueSwgaXRlbS53aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgICAgLy/nlLvog4zmma/popzoibJcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgIGlmIChzZXJpZXNJbmRleCA9PSAwICYmIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHNlcmllc0luZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPT0gMCAmJiBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IG1vdW50T3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbW91bnQnLFxyXG4gICAgd2lkdGhSYXRpbzogMSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubW91bnQpO1xyXG4gIG1vdW50T3B0aW9uLndpZHRoUmF0aW8gPSBtb3VudE9wdGlvbi53aWR0aFJhdGlvIDw9IDAgPyAwIDogbW91bnRPcHRpb24ud2lkdGhSYXRpbztcclxuICBtb3VudE9wdGlvbi53aWR0aFJhdGlvID0gbW91bnRPcHRpb24ud2lkdGhSYXRpbyA+PSAyID8gMiA6IG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gIH1cclxuICBtb3VudE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihtb3VudE9wdGlvbi5saW5lYXJUeXBlLCBtb3VudE9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbMF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBzd2l0Y2ggKG1vdW50T3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYmFyJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgobW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IG1vdW50T3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueSAtIG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXggLyAyOyBcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBtb3VudE9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyaWFuZ2xlJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgaWYobW91bnRPcHRpb24uYm9yZGVyV2lkdGggPiAwKXtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhpdGVtLnggLSBpdGVtLndpZHRoLzQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdLCBpdGVtLnggLSBpdGVtLndpZHRoLzQsIGl0ZW0ueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oaXRlbS54ICsgaXRlbS53aWR0aC80LCBpdGVtLnksIGl0ZW0ueCArIGl0ZW0ud2lkdGgvNCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0sIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzaGFycCc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54IC0gMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54ICsgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1swXSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0TW91bnREYXRhUG9pbnRzKHNlcmllcywgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIG1vdW50T3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogcG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBbXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pL29wdHMuY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIHlBeGlzUG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgLyAyICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHlBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgLy92YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgICAgICAgIHZhciBzdGFydFkgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IGl0ZW0uaGVpZ2h0O1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBpdGVtLmhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgcjMsIHIzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGl0ZW0ueCAtIHIxLCB0b3AgKyB3aWR0aCAtIHIxLCByMSwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMiwgdG9wICsgd2lkdGggLSByMiwgcjIsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZICsgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBzdGFydFkgKyBpdGVtLndpZHRoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeUF4aXNQb2ludHM6IHlBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogMTtcclxuICB2YXIgY2FuZGxlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBjb2xvcjoge30sXHJcbiAgICBhdmVyYWdlOiB7fVxyXG4gIH0sIG9wdHMuZXh0cmEuY2FuZGxlKTtcclxuICBjYW5kbGVPcHRpb24uY29sb3IgPSBhc3NpZ24oe30sIHtcclxuICAgIHVwTGluZTogJyNmMDQ4NjQnLFxyXG4gICAgdXBGaWxsOiAnI2YwNDg2NCcsXHJcbiAgICBkb3duTGluZTogJyMyZmMyNWInLFxyXG4gICAgZG93bkZpbGw6ICcjMmZjMjViJ1xyXG4gIH0sIGNhbmRsZU9wdGlvbi5jb2xvcik7XHJcbiAgY2FuZGxlT3B0aW9uLmF2ZXJhZ2UgPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3c6IGZhbHNlLFxyXG4gICAgbmFtZTogW10sXHJcbiAgICBkYXk6IFtdLFxyXG4gICAgY29sb3I6IGNvbmZpZy5jb2xvclxyXG4gIH0sIGNhbmRsZU9wdGlvbi5hdmVyYWdlKTtcclxuICBvcHRzLmV4dHJhLmNhbmRsZSA9IGNhbmRsZU9wdGlvbjtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIC8v55S75Z2H57q/XHJcbiAgaWYgKGNhbmRsZU9wdGlvbi5hdmVyYWdlLnNob3cgfHwgc2VyaWVzTUEpIHsgLy9NZXJnZSBwdWxsIHJlcXVlc3QgITEyIGZyb20g6YKx6LS157+UXHJcbiAgICBzZXJpZXNNQS5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LFxyXG4gICAgICAgICAgICAgICAgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nlLtL57q/XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdFswXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBzcGxpdFBvaW50TGlzdFswXVtpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIC8v5aaC5p6c5LiK5raoXHJcbiAgICAgICAgaWYgKGRhdGFbaV1bMV0gLSBkYXRhW2ldWzBdID4gMCkge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBMaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci51cEZpbGwpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMl0ueCwgaXRlbVsyXS55KTsgLy/lupXngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IuZG93bkxpbmUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25GaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgYWRkTGluZTogZmFsc2UsXHJcbiAgICB3aWR0aDogMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEuYXJlYSk7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICBsZXQgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIGxldCBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAvLyDnu5jliLbljLrln5/mlbBcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIG9wdHMuYXJlYVswXSwgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdyYWRpZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmVhT3B0aW9uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAvL+eUu+i/nue6v1xyXG4gICAgICBpZiAoYXJlYU9wdGlvbi5hZGRMaW5lKSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8v55S754K5XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgc2NhdHRlck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2NpcmNsZSdcclxuICB9LCBvcHRzLmV4dHJhLnNjYXR0ZXIpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIHZhciBzaGFwZSA9IGVhY2hTZXJpZXMucG9pbnRTaGFwZTtcclxuICAgIGlmIChzaGFwZSA9PT0gJ2RpYW1vbmQnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlY3QoaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUsIDcsIDcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAndHJpYW5nbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGJ1YmJsZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIGJvcmRlcjoyXHJcbiAgfSwgb3B0cy5leHRyYS5idWJibGUpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGJ1YmJsZU9wdGlvbi5ib3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBidWJibGVPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgaXRlbS5yLCBpdGVtLnkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgaXRlbS5yICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBcclxuICAgIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgdmFyIGZvbnRTaXplID0gZWFjaFNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBcIiNGRkZGRkZcIik7XHJcbiAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0udCksIGl0ZW0ueCwgaXRlbS55ICsgZm9udFNpemUvMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLmxpbmUpO1xyXG4gIGxpbmVPcHRpb24ud2lkdGggKj0gb3B0cy5waXg7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmNvbHVtbik7XHJcbiAgbGV0IGFyZWFPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmFyZWEpO1xyXG4gIGxldCBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogMlxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmxpbmUpO1xyXG4gIGxldCBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIHZhciBjb2x1bW5JbmRleCA9IDA7XHJcbiAgdmFyIGNvbHVtbkxlbmd0aCA9IDA7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2NvbHVtbicpIHtcclxuICAgICAgY29sdW1uTGVuZ3RoICs9IDE7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgLy8g57uY5Yi25p+x54q25pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdjb2x1bW4nKSB7XHJcbiAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueTtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueTtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgfVxyXG4gICAgLy/nu5jliLbljLrln5/lm77mlbDmja5cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2FyZWEnKSB7XHJcbiAgICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBwb2ludHMgPSBzcGxpdFBvaW50TGlzdFtpXTtcclxuICAgICAgICAvLyDnu5jliLbljLrln5/mlbDmja5cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi5ncmFkaWVudCkge1xyXG4gICAgICAgICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCBvcHRzLmFyZWFbMF0sIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdmFyIGZpcnN0UG9pbnQgPSBwb2ludHNbMF07XHJcbiAgICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGZpcnN0UG9pbnQueCwgZmlyc3RQb2ludC55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChlYWNoU2VyaWVzLnN0eWxlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1swXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyDnu5jliLbmipjnur/mlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2xpbmUnKSB7XHJcbiAgICAgIHZhciBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobGluZU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGVhY2hTZXJpZXMuc3R5bGUgPT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksXHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy8g57uY5Yi254K55pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdwb2ludCcpIHtcclxuICAgICAgZWFjaFNlcmllcy5hZGRQb2ludCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZWFjaFNlcmllcy5hZGRQb2ludCA9PSB0cnVlICYmIGVhY2hTZXJpZXMudHlwZSAhPT0gJ2NvbHVtbicpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgdmFyIGNvbHVtbkluZGV4ID0gMDtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBpZiAoZWFjaFNlcmllcy50eXBlICE9PSAnY29sdW1uJykge1xyXG4gICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nLFxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBvcHRzLmV4dHJhLnRvb2x0aXAgfHwge307XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uaG9yaXplbnRhbExpbmUgJiYgb3B0cy50b29sdGlwICYmIHByb2Nlc3MgPT09IDEgJiYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ2NvbHVtbicgfHwgb3B0cy50eXBlID09ICdtb3VudCcgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4JykpIHtcclxuICAgIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpXHJcbiAgfVxyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gIH1cclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdUb29sVGlwKG9wdHMudG9vbHRpcC50ZXh0TGlzdCwgb3B0cy50b29sdGlwLm9mZnNldCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuXHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0geEF4aXNEYXRhLnN0YXJ0WCxcclxuICAgIGVuZFggPSB4QXhpc0RhdGEuZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBib3VuZGFyeUdhcCA9ICdjZW50ZXInO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2JhcicgfHwgb3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScpIHtcclxuICAgIGJvdW5kYXJ5R2FwID0gb3B0cy54QXhpcy5ib3VuZGFyeUdhcDtcclxuICB9XHJcbiAgdmFyIHN0YXJ0WSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5hcmVhWzBdO1xyXG5cclxuICAvL+e7mOWItua7muWKqOadoVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIHZhciBzY3JvbGxZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gKyBjb25maWcueEF4aXNIZWlnaHQ7XHJcbiAgICB2YXIgc2Nyb2xsU2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgdmFyIHNjcm9sbFRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICAgIHNjcm9sbFRvdGFsV2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmVhY2hTcGFjaW5nO1xyXG4gICAgfVxyXG4gICAgdmFyIHNjcm9sbFdpZHRoID0gc2Nyb2xsU2NyZWVuV2lkdGggKiBzY3JvbGxTY3JlZW5XaWR0aCAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB2YXIgc2Nyb2xsTGVmdCA9IDA7XHJcbiAgICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfKSB7XHJcbiAgICAgIHNjcm9sbExlZnQgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICogKHNjcm9sbFNjcmVlbldpZHRoKSAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxCYWNrZ3JvdW5kQ29sb3IgfHwgXCIjRUZFQkVGXCIpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxDb2xvciB8fCBcIiNBNkE2QTZcIik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyBzY3JvbGxMZWZ0LCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIHNjcm9sbExlZnQgKyBzY3JvbGxXaWR0aCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L205Yi75bqm57q/XHJcbiAgaWYgKG9wdHMueEF4aXMuY2FsaWJyYXRpb24gPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtIC0gZWFjaFNwYWNpbmcgLyAyLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0gLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSArIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L20572R5qC8XHJcbiAgaWYgKG9wdHMueEF4aXMuZGlzYWJsZUdyaWQgIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgaWYgKG9wdHMueEF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW29wdHMueEF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4LCBvcHRzLnhBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeF0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy54QXhpcy5ncmlkRXZhbCA9IG9wdHMueEF4aXMuZ3JpZEV2YWwgfHwgMTtcclxuICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGluZGV4ICUgb3B0cy54QXhpcy5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0sIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOaWh+ahiFxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkICE9PSB0cnVlKSB7XHJcbiAgICAvLyDlr7lY6L205YiX6KGo5YGa5oq956iA5aSE55CGXHJcbiAgICAvL+m7mOiupOWFqOmDqOaYvuekuljovbTmoIfnrb5cclxuICAgIGxldCBtYXhYQXhpc0xpc3RMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIC8v5aaC5p6c6K6+572u5LqGWOi9tOWNleWxj+aVsOmHj1xyXG4gICAgaWYgKG9wdHMueEF4aXMubGFiZWxDb3VudCkge1xyXG4gICAgICAvL+WmguaenOiuvue9rljovbTlr4bluqZcclxuICAgICAgaWYgKG9wdHMueEF4aXMuaXRlbUNvdW50KSB7XHJcbiAgICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoID0gTWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gb3B0cy54QXhpcy5pdGVtQ291bnQgKiBvcHRzLnhBeGlzLmxhYmVsQ291bnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heFhBeGlzTGlzdExlbmd0aCA9IG9wdHMueEF4aXMubGFiZWxDb3VudDtcclxuICAgICAgfVxyXG4gICAgICBtYXhYQXhpc0xpc3RMZW5ndGggLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmF0aW8gPSBNYXRoLmNlaWwoY2F0ZWdvcmllcy5sZW5ndGggLyBtYXhYQXhpc0xpc3RMZW5ndGgpO1xyXG5cclxuICAgIGxldCBuZXdDYXRlZ29yaWVzID0gW107XHJcbiAgICBsZXQgY2dMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2dMZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSAlIHJhdGlvICE9PSAwKSB7XHJcbiAgICAgICAgbmV3Q2F0ZWdvcmllcy5wdXNoKFwiXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0NhdGVnb3JpZXMucHVzaChjYXRlZ29yaWVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmV3Q2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdID0gY2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdO1xyXG4gICAgdmFyIHhBeGlzRm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgaWYgKGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID09PSAwKSB7XHJcbiAgICAgIG5ld0NhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHZhciB4aXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKSA6IGl0ZW07XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC1tZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWmguaenOWcqOS4u+inhuWbvuWMuuWfn+WGhVxyXG4gICAgICAgIHZhciBfc2Nyb2xsRGlzdGFuY2VfID0gb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDA7XHJcbiAgICAgICAgdmFyIHRydWVQb2ludHMgPSBib3VuZGFyeUdhcCA9PSAnY2VudGVyJyA/IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMiA6IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgICBpZigodHJ1ZVBvaW50cyAtIE1hdGguYWJzKF9zY3JvbGxEaXN0YW5jZV8pKSA+PSBvcHRzLmFyZWFbM10gJiYgKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPD0gKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0pKXtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc1BvaW50c1tpbmRleF0gKyBvZmZzZXQsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgKyAoY29uZmlnLnhBeGlzSGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0IC0geEF4aXNGb250U2l6ZSkgLyAyKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgeGl0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKGl0ZW0pIDogaXRlbTtcclxuICAgICAgICAvLyDlpoLmnpzlnKjkuLvop4blm77ljLrln5/lhoVcclxuICAgICAgICB2YXIgX3Njcm9sbERpc3RhbmNlXyA9IG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwO1xyXG4gICAgICAgIHZhciB0cnVlUG9pbnRzID0gYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicgPyB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIgOiB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgaWYoKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPj0gb3B0cy5hcmVhWzNdICYmICh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpIDw9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdKSl7XHJcbiAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KFN0cmluZyh4aXRlbSksIHhBeGlzRm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIG9mZnNldFggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgICBpZiAoYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgb2Zmc2V0WCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciBzY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB2YXIgb2Zmc2V0WSA9IHN0YXJ0WSArIDYgKiBvcHRzLnBpeCArIHhBeGlzRm9udFNpemUgLSB4QXhpc0ZvbnRTaXplICogTWF0aC5hYnMoTWF0aC5zaW4oY29uZmlnLl94QXhpc1RleHRBbmdsZV8pKTtcclxuICAgICAgICAgIGlmKG9wdHMueEF4aXMucm90YXRlQW5nbGUgPCAwKXtcclxuICAgICAgICAgICAgb2Zmc2V0WCAtPSB4QXhpc0ZvbnRTaXplIC8gMjtcclxuICAgICAgICAgICAgdGV4dFdpZHRoID0gMDtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBvZmZzZXRYICs9IHhBeGlzRm9udFNpemUgLyAyO1xyXG4gICAgICAgICAgICB0ZXh0V2lkdGggPSAtdGV4dFdpZHRoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC50cmFuc2xhdGUob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJvdGF0ZSgtMSAqIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgdGV4dFdpZHRoICwgMCApO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAvL+e7mOWItljovbTovbTnur9cclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5heGlzTGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVHcmlkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgeEF4aXNlYWNoU3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgVG90YWxXaWR0aCA9IHhBeGlzZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxICl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgVG90YWxXaWR0aCArPSAob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMSkqeEF4aXNlYWNoU3BhY2luZztcclxuICB9XHJcbiAgbGV0IGVuZFggPSBzdGFydFggKyBUb3RhbFdpZHRoO1xyXG4gIGxldCBwb2ludHMgPSBbXTtcclxuICBsZXQgc3RhcnRZID0gMVxyXG4gIGlmIChvcHRzLnhBeGlzLmF4aXNMaW5lID09PSBmYWxzZSkge1xyXG4gICAgc3RhcnRZID0gMFxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gc3RhcnRZOyBpIDwgb3B0cy55QXhpcy5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgcG9pbnRzLnB1c2gob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBlYWNoU3BhY2luZyAqIGkpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMueUF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtvcHRzLnlBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeCwgb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnlBeGlzLmdyaWRDb2xvcik7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgLy8gc2V0IFlBeGlzIGJhY2tncm91bmRcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAnbGVmdCcpIHtcclxuICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgc3RhcnRYLCBlbmRZICsgMiAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAncmlnaHQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KGVuZFgsIDAsIG9wdHMud2lkdGgsIGVuZFkgKyAyICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgXHJcbiAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgdFN0YXJ0Q2VudGVyID0gb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMjtcclxuICBpZiAob3B0cy55QXhpcy5kYXRhKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgaWYoeURhdGEudHlwZSA9PT0gJ2NhdGVnb3JpZXMnKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAvIDIgKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICBsZXQgcmFuZ2VzRm9ybWF0ID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc0Zvcm1hdFtpXTtcclxuICAgICAgICBsZXQgeUF4aXNGb250U2l6ZSA9IHlEYXRhLmZvbnRTaXplID8geURhdGEuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgeUF4aXNXaWR0aCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoW2ldO1xyXG4gICAgICAgIGxldCB0ZXh0QWxpZ24gPSB5RGF0YS50ZXh0QWxpZ24gfHwgXCJyaWdodFwiO1xyXG4gICAgICAgIC8v55S7Wei9tOWIu+W6puWPiuaWh+ahiFxyXG4gICAgICAgIHJhbmdlc0Zvcm1hdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICB2YXIgcG9zID0gcG9pbnRzW2luZGV4XTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHlBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGxldCB0bXBzdHJhdCA9IDA7XHJcbiAgICAgICAgICBsZXQgZ2Fwd2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQgLSAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v55S75paH5a2XXHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG5cclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0UmlnaHQsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0UmlnaHQgKyAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgeUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0Q2VudGVyLCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydENlbnRlciAtIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/nlLvmloflrZdcclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0geUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/nlLtZ6L206L2057q/XHJcbiAgICAgICAgaWYgKHlEYXRhLmF4aXNMaW5lICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRSaWdodCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRSaWdodCwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRDZW50ZXIsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0Q2VudGVyLCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/nlLtZ6L205qCH6aKYXHJcbiAgICAgICAgaWYgKG9wdHMueUF4aXMuc2hvd1RpdGxlKSB7XHJcbiAgICAgICAgICBsZXQgdGl0bGVGb250U2l6ZSA9IHlEYXRhLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgICBsZXQgdGl0bGUgPSB5RGF0YS50aXRsZTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHRpdGxlRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEudGl0bGVGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydExlZnQgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRSaWdodCAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRDZW50ZXIgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICB0U3RhcnRMZWZ0IC09ICh5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0U3RhcnRSaWdodCArPSB5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0xlZ2VuZChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2hhcnREYXRhKSB7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBsZWdlbmREYXRhID0gY2hhcnREYXRhLmxlZ2VuZERhdGE7XHJcbiAgbGV0IGxlZ2VuZExpc3QgPSBsZWdlbmREYXRhLnBvaW50cztcclxuICBsZXQgbGVnZW5kQXJlYSA9IGxlZ2VuZERhdGEuYXJlYTtcclxuICBsZXQgcGFkZGluZyA9IG9wdHMubGVnZW5kLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVdpZHRoID0gMTUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVSaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICBsZXQgaXRlbUdhcCA9IG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICBsZXQgbGluZUhlaWdodCA9IE1hdGgubWF4KG9wdHMubGVnZW5kLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCwgZm9udFNpemUpO1xyXG4gIC8v55S76IOM5pmv5Y+K6L655qGGXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aChvcHRzLmxlZ2VuZC5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMubGVnZW5kLmJvcmRlckNvbG9yKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmxlZ2VuZC5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIGNvbnRleHQubW92ZVRvKGxlZ2VuZEFyZWEuc3RhcnQueCwgbGVnZW5kQXJlYS5zdGFydC55KTtcclxuICBjb250ZXh0LnJlY3QobGVnZW5kQXJlYS5zdGFydC54LCBsZWdlbmRBcmVhLnN0YXJ0LnksIGxlZ2VuZEFyZWEud2lkdGgsIGxlZ2VuZEFyZWEuaGVpZ2h0KTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgbGVnZW5kTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW1MaXN0LCBsaXN0SW5kZXgpIHtcclxuICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMDtcclxuICAgIHdpZHRoID0gbGVnZW5kRGF0YS53aWR0aEFycltsaXN0SW5kZXhdO1xyXG4gICAgaGVpZ2h0ID0gbGVnZW5kRGF0YS5oZWlnaHRBcnJbbGlzdEluZGV4XTtcclxuICAgIGxldCBzdGFydFggPSAwO1xyXG4gICAgbGV0IHN0YXJ0WSA9IDA7XHJcbiAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgc3dpdGNoIChvcHRzLmxlZ2VuZC5mbG9hdCkge1xyXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgcGFkZGluZztcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBsZWdlbmRBcmVhLndpZHRoIC0gd2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyAobGVnZW5kQXJlYS53aWR0aCAtIHdpZHRoKSAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIGxpc3RJbmRleCAqIGxpbmVIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobGlzdEluZGV4ID09IDApIHtcclxuICAgICAgICB3aWR0aCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGggPSBsZWdlbmREYXRhLndpZHRoQXJyW2xpc3RJbmRleCAtIDFdO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIHBhZGRpbmcgKyB3aWR0aDtcclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIChsZWdlbmRBcmVhLmhlaWdodCAtIGhlaWdodCkgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGl0ZW1MaXN0W2ldO1xyXG4gICAgICBpdGVtLmFyZWEgPSBbMCwgMCwgMCwgMF07XHJcbiAgICAgIGl0ZW0uYXJlYVswXSA9IHN0YXJ0WDtcclxuICAgICAgaXRlbS5hcmVhWzFdID0gc3RhcnRZO1xyXG4gICAgICBpdGVtLmFyZWFbM10gPSBzdGFydFkgKyBsaW5lSGVpZ2h0O1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS5sZWdlbmRTaGFwZSkge1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCA0ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndHJpYW5nbGUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RpYW1vbmQnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NpcmNsZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCwgNSAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyZWN0JzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzcXVhcmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ25vbmUnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIHN0YXJ0WCArPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodDtcclxuICAgICAgbGV0IGZvbnRUcmFucyA9IDAuNSAqIGxpbmVIZWlnaHQgKyAwLjUgKiBmb250U2l6ZSAtIDI7XHJcbiAgICAgIGNvbnN0IGxlZ2VuZFRleHQgPSBpdGVtLmxlZ2VuZFRleHQgPyBpdGVtLmxlZ2VuZFRleHQgOiBpdGVtLm5hbWU7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnNob3cgPyBvcHRzLmxlZ2VuZC5mb250Q29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQobGVnZW5kVGV4dCwgc3RhcnRYLCBzdGFydFkgKyBmb250VHJhbnMpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgICBzdGFydFggKz0gbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDtcclxuICAgICAgICBpdGVtLmFyZWFbMl0gPSBzdGFydFg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYICsgbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDs7XHJcbiAgICAgICAgc3RhcnRYIC09IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0O1xyXG4gICAgICAgIHN0YXJ0WSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQaWVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHBpZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgYWN0aXZlT3BhY2l0eTogMC41LFxyXG4gICAgYWN0aXZlUmFkaXVzOiAxMCxcclxuICAgIG9mZnNldEFuZ2xlOiAwLFxyXG4gICAgbGFiZWxXaWR0aDogMTUsXHJcbiAgICByaW5nV2lkdGg6IDMwLFxyXG4gICAgY3VzdG9tUmFkaXVzOiAwLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGNlbnRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy50eXBlID09IFwicGllXCIgPyBvcHRzLmV4dHJhLnBpZSA6IG9wdHMuZXh0cmEucmluZyk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG5cclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgLSBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfLCAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcpO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgaWYgKHBpZU9wdGlvbi5jdXN0b21SYWRpdXMgPiAwKSB7XHJcbiAgICByYWRpdXMgPSBwaWVPcHRpb24uY3VzdG9tUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcGllT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHBpZU9wdGlvbi5saW5lYXJUeXBlLCBwaWVPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocGllT3B0aW9uLm9mZnNldEFuZ2xlKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBwaWVPcHRpb24uYWN0aXZlT3BhY2l0eSB8fCAwLjUpKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfICsgYWN0aXZlUmFkaXVzLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChwaWVPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmxpbmVKb2luID0gXCJyb3VuZFwiO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwaWVPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocGllT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihwaWVPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocGllT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICB2YXIgaW5uZXJQaWVXaWR0aCA9IHJhZGl1cyAqIDAuNjtcclxuICAgIGlmICh0eXBlb2YgcGllT3B0aW9uLnJpbmdXaWR0aCA9PT0gJ251bWJlcicgJiYgcGllT3B0aW9uLnJpbmdXaWR0aCA+IDApIHtcclxuICAgICAgaW5uZXJQaWVXaWR0aCA9IE1hdGgubWF4KDAsIHJhZGl1cyAtIHBpZU9wdGlvbi5yaW5nV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocGllT3B0aW9uLmNlbnRlckNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJQaWVXaWR0aCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEgJiYgb3B0cy50eXBlID09PSAncmluZycpIHtcclxuICAgIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBzZXJpZXM6IHNlcmllc1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByb3NlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnYXJlYScsXHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjUsXHJcbiAgICBhY3RpdmVSYWRpdXM6IDEwLFxyXG4gICAgb2Zmc2V0QW5nbGU6IDAsXHJcbiAgICBsYWJlbFdpZHRoOiAxNSxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5yb3NlKTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSByb3NlT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyAtIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8sIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyk7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgbWluUmFkaXVzID0gcm9zZU9wdGlvbi5taW5SYWRpdXMgfHwgcmFkaXVzICogMC41O1xyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0FyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJjYmFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzdGFydEFuZ2xlOiAwLjc1LFxyXG4gICAgZW5kQW5nbGU6IDAuMjUsXHJcbiAgICB0eXBlOiAnZGVmYXVsdCcsXHJcbiAgICBkaXJlY3Rpb246ICdjdycsXHJcbiAgICBsaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgd2lkdGg6IDEyICxcclxuICAgIGdhcDogMiAsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5hcmNiYXIpO1xyXG4gIHNlcmllcyA9IGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24sIHByb2Nlc3MpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbjtcclxuICBpZiAoYXJjYmFyT3B0aW9uLmNlbnRlclggfHwgYXJjYmFyT3B0aW9uLmNlbnRlclkpIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBhcmNiYXJPcHRpb24uY2VudGVyWCA/IGFyY2Jhck9wdGlvbi5jZW50ZXJYIDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IGFyY2Jhck9wdGlvbi5jZW50ZXJZID8gYXJjYmFyT3B0aW9uLmNlbnRlclkgOiBvcHRzLmhlaWdodCAvIDJcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBvcHRzLndpZHRoIC8gMixcclxuICAgICAgeTogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH1cclxuICB2YXIgcmFkaXVzO1xyXG4gIGlmIChhcmNiYXJPcHRpb24ucmFkaXVzKSB7XHJcbiAgICByYWRpdXMgPSBhcmNiYXJPcHRpb24ucmFkaXVzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIHJhZGl1cyAtPSA1ICogb3B0cy5waXg7XHJcbiAgICByYWRpdXMgLT0gYXJjYmFyT3B0aW9uLndpZHRoIC8gMjtcclxuICB9XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoYXJjYmFyT3B0aW9uLmxpbmVhclR5cGUsIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIFxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgIC8v6IOM5pmv6aKc6ImyXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGFyY2Jhck9wdGlvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNFOUU5RTknKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgaWYgKGFyY2Jhck9wdGlvbi50eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cyAtIChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCArIGFyY2Jhck9wdGlvbi5nYXAgKiBvcHRzLnBpeCkgKiBpLCAwLCAyICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgaW5uZXJSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aDtcclxuICB2YXIgdG90YWxBbmdsZSA9IDA7XHJcbiAgLy/liKTmlq3ku6rooajnm5jnmoTmoLflvI/vvJpkZWZhdWx055m+5bqm5qC35byP77yMcHJvZ3Jlc3PmlrDmoLflvI9cclxuICBpZiAoZ2F1Z2VPcHRpb24udHlwZSA9PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAvLyMjIOesrOS4gOatpeeUu+S4reW/g+WchuW9ouiDjOaZr+WSjOi/m+W6puadoeiDjOaZr1xyXG4gICAgLy/kuK3lv4PlnIblvaLog4zmma9cclxuICAgIHZhciBwaWVSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDM7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55IC0gcGllUmFkaXVzLCBjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55ICsgcGllUmFkaXVzKTtcclxuICAgIC8v6YWN572u5riQ5Y+Y5aGr5YWF77yI6LW354K577ya5Lit5b+D54K55ZCR5LiK5YeP5Y2K5b6E77yb57uT5p2f54K55Lit5b+D54K55ZCR5LiL5Yqg5Y2K5b6E77yJXHJcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBwaWVSYWRpdXMsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIC8v55S76L+b5bqm5p2h6IOM5pmvXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMC4zKSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAvLyMjIOesrOS6jOatpeeUu+WIu+W6pue6v1xyXG4gICAgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBsZXQgc3BsaXRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXI7XHJcbiAgICBsZXQgY2hpbGRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXI7XHJcbiAgICBsZXQgc3RhcnRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cztcclxuICAgIGxldCBlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS53aWR0aDtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBsZXQgbGVuID0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICogZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyICsgMTtcclxuICAgIGxldCBwcm9jID0gc2VyaWVzWzBdLmRhdGEgKiBwcm9jZXNzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAvL+WIu+W6pue6v+maj+i/m+W6puWPmOiJslxyXG4gICAgICBpZiAocHJvYyA+IChpIC8gbGVuKSkge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vIyMg56ys5LiJ5q2l55S76L+b5bqm5p2hXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBzZXJpZXNbMF0uX3Byb3BvcnRpb25fICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIC8vIyMg56ys5Zub5q2l55S75oyH6ZKIXHJcbiAgICBsZXQgcG9pbnRlclJhZGl1cyA9IHJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMi41O1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChzZXJpZXNbMF0uX3Byb3BvcnRpb25fIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCAvIDMpO1xyXG4gICAgbGV0IGdyYWRpZW50MyA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgLXBvaW50ZXJSYWRpdXMgKiAwLjYsIDAsIHBvaW50ZXJSYWRpdXMgKiAwLjYpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMC41JywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYignI0ZGRkZGRicsIDApKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ3JhZGllbnQzKTtcclxuICAgIGNvbnRleHQuYXJjKDAsIDAsIHBvaW50ZXJSYWRpdXMsIDAuODUgKiBNYXRoLlBJLCAxLjE1ICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIC00KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiAtIDQsIDApO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCA0KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvL2RlZmF1bHTnmb7luqbmoLflvI9cclxuICB9IGVsc2Uge1xyXG4gICAgLy/nlLvog4zmma9cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNbaV07XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaENhdGVnb3JpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMsIGVhY2hDYXRlZ29yaWVzLl9zdGFydEFuZ2xlXyAqIE1hdGguUEksIGVhY2hDYXRlZ29yaWVzLl9lbmRBbmdsZV8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIC8v55S75Yi75bqm57q/XHJcbiAgICB0b3RhbEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIGdhdWdlT3B0aW9uLmVuZEFuZ2xlICsgMTtcclxuICAgIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICAgIGxldCBjaGlsZEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlcjtcclxuICAgIGxldCBzdGFydFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzO1xyXG4gICAgbGV0IGVuZFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzICsgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLndpZHRoO1xyXG4gICAgbGV0IGNoaWxkZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGRXaWR0aDtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoc3BsaXRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKiBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhjaGlsZGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8v55S75oyH6ZKIXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSgoZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIC1nYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gMik7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKC1pbm5lclJhZGl1cywgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSgnI0ZGRkZGRicpO1xyXG4gICAgICBjb250ZXh0LmFyYygwLCAwLCBnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gNiwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/nlLvku6rooajnm5jmoIfpopjvvIzlia/moIfpophcclxuICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ2dhdWdlJykge1xyXG4gICAgb3B0cy5leHRyYS5nYXVnZS5vbGRBbmdsZSA9IHNlcmllc1swXS5fcHJvcG9ydGlvbl87XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZERhdGEgPSBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIGlubmVyUmFkaXVzOiBpbm5lclJhZGl1cyxcclxuICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMsXHJcbiAgICB0b3RhbEFuZ2xlOiB0b3RhbEFuZ2xlXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByYWRhck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZENvbG9yOiAnI2NjY2NjYycsXHJcbiAgICBncmlkVHlwZTogJ3JhZGFyJyxcclxuICAgIGdyaWRFdmFsOjEsXHJcbiAgICBheGlzTGFiZWw6ZmFsc2UsXHJcbiAgICBheGlzTGFiZWxUb2ZpeDowLFxyXG4gICAgbGFiZWxDb2xvcjonIzY2NjY2NicsXHJcbiAgICBsYWJlbFBvaW50U2hvdzpmYWxzZSxcclxuICAgIGxhYmVsUG9pbnRSYWRpdXM6MyxcclxuICAgIGxhYmVsUG9pbnRDb2xvcjonI2NjY2NjYycsXHJcbiAgICBvcGFjaXR5OiAwLjIsXHJcbiAgICBncmlkQ291bnQ6IDMsXHJcbiAgICBib3JkZXI6ZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDoyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEucmFkYXIpO1xyXG4gIHZhciBjb29yZGluYXRlQW5nbGUgPSBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMob3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgeHIgPSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyXHJcbiAgdmFyIHlyID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oeHIgLSAoZ2V0TWF4VGV4dExpc3RMZW5ndGgob3B0cy5jYXRlZ29yaWVzLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKSwgeXIgLSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pO1xyXG4gIHJhZGl1cyAtPSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeDtcclxuICByYWRpdXMgPSByYWRpdXMgPCAxMCA/IDEwIDogcmFkaXVzO1xyXG4gIC8vIOeUu+WIhuWJsue6v1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgY29vcmRpbmF0ZUFuZ2xlLmZvckVhY2goZnVuY3Rpb24oYW5nbGUsaW5kZXgpIHtcclxuICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBpZiAoaW5kZXggJSByYWRhck9wdGlvbi5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIFxyXG4gIC8vIOeUu+iDjOaZr+e9keagvFxyXG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHtcclxuICAgIHZhciBzdGFydFBvcyA9IHt9O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgICBpZiAocmFkYXJPcHRpb24uZ3JpZFR5cGUgPT0gJ3JhZGFyJykge1xyXG4gICAgICBjb29yZGluYXRlQW5nbGUuZm9yRWFjaChmdW5jdGlvbihhbmdsZSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguY29zKGFuZ2xlKSwgcmFkaXVzIC9cclxuICAgICAgICAgIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICAgIHN0YXJ0UG9zID0gcG9zO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFBvcy54LCBzdGFydFBvcy55KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoMS41KSwgcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKDEuNSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgY2VudGVyUG9zaXRpb24ueSAtIHBvcy55LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfTtcclxuICBmb3IgKHZhciBpID0gMTsgaSA8PSByYWRhck9wdGlvbi5ncmlkQ291bnQ7IGkrKykge1xyXG4gICAgX2xvb3AoaSk7XHJcbiAgfVxyXG4gIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUsIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIFxyXG4gICAgdmFyIGZpbGxjb2xvciA9IGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpO1xyXG4gICAgaWYgKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIDAsY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocmFkYXJPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW3Nlcmllc0luZGV4XS5saW5lYXJJbmRleF0sIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbGNvbG9yKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIOeUu+WIu+W6puWAvFxyXG4gIGlmKHJhZGFyT3B0aW9uLmF4aXNMYWJlbCA9PT0gdHJ1ZSl7XHJcbiAgICBjb25zdCBtYXhEYXRhID0gTWF0aC5tYXgocmFkYXJPcHRpb24ubWF4LCBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQ29tYmluZShzZXJpZXMpKSk7XHJcbiAgICBjb25zdCBzdGVwTGVuZ3RoID0gcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50O1xyXG4gICAgY29uc3QgZm9udFNpemUgPSBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGFyT3B0aW9uLmdyaWRDb3VudCArIDE7IGkrKykge1xyXG4gICAgICBsZXQgbGFiZWwgPSBpICogbWF4RGF0YSAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudDtcclxuICAgICAgbGFiZWwgPSBsYWJlbC50b0ZpeGVkKHJhZGFyT3B0aW9uLmF4aXNMYWJlbFRvZml4KTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWwpLCBjZW50ZXJQb3NpdGlvbi54ICsgMyAqIG9wdHMucGl4LCBjZW50ZXJQb3NpdGlvbi55IC0gaSAqIHN0ZXBMZW5ndGggKyBmb250U2l6ZSAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvLyBkcmF3IGxhYmVsIHRleHRcclxuICBkcmF3UmFkYXJMYWJlbChjb29yZGluYXRlQW5nbGUsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgXHJcbiAgLy8gZHJhdyBkYXRhTGFiZWxcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHJhZGFyRGF0YVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgLy/lpoLmnpzmmK/kuK3lv4PngrnlnoLnm7TnmoTkuIrkuIvngrnkvY1cclxuICAgICAgICBpZihNYXRoLmFicyhpdGVtLnBvc2l0aW9uLnggLSBjZW50ZXJQb3NpdGlvbi54KTwyKXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5LiK6Z2iXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnkgPCBjZW50ZXJQb3NpdGlvbi55KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55IC0gNCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgKyAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5bem5L6nXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnggPCBjZW50ZXJQb3NpdGlvbi54KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54IC0gNCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggKyA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gIH1cclxuICBcclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgYW5nbGVMaXN0OiBjb29yZGluYXRlQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG4vLyDnu4/nuqzluqbovazloqjljaHmiZhcclxuZnVuY3Rpb24gbG9ubGF0Mm1lcmNhdG9yKGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbWVyY2F0b3IgPSBBcnJheSgyKTtcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIHZhciB5ID0gTWF0aC5sb2coTWF0aC50YW4oKDkwICsgbGF0aXR1ZGUpICogTWF0aC5QSSAvIDM2MCkpIC8gKE1hdGguUEkgLyAxODApO1xyXG4gIHkgPSB5ICogMjAwMzc1MDguMzQgLyAxODA7XHJcbiAgbWVyY2F0b3JbMF0gPSB4O1xyXG4gIG1lcmNhdG9yWzFdID0geTtcclxuICByZXR1cm4gbWVyY2F0b3I7XHJcbn1cclxuXHJcbi8vIOWiqOWNoeaJmOi9rOe7j+e6rOW6plxyXG5mdW5jdGlvbiBtZXJjYXRvcjJsb25sYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSkge1xyXG4gIHZhciBsb25sYXQgPSBBcnJheSgyKVxyXG4gIHZhciB4ID0gbG9uZ2l0dWRlIC8gMjAwMzc1MDguMzQgKiAxODA7XHJcbiAgdmFyIHkgPSBsYXRpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHkgPSAxODAgLyBNYXRoLlBJICogKDIgKiBNYXRoLmF0YW4oTWF0aC5leHAoeSAqIE1hdGguUEkgLyAxODApKSAtIE1hdGguUEkgLyAyKTtcclxuICBsb25sYXRbMF0gPSB4O1xyXG4gIGxvbmxhdFsxXSA9IHk7XHJcbiAgcmV0dXJuIGxvbmxhdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdCb3goZGF0YSkge1xyXG4gIHZhciBib3VuZHMgPSB7fSxjb29yZHM7XHJcbiAgYm91bmRzLnhNaW4gPSAxODA7XHJcbiAgYm91bmRzLnhNYXggPSAwO1xyXG4gIGJvdW5kcy55TWluID0gOTA7XHJcbiAgYm91bmRzLnlNYXggPSAwXHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgbG9uZ2l0dWRlID0gY29vcmRzW2pdWzBdO1xyXG4gICAgICAgIHZhciBsYXRpdHVkZSA9IGNvb3Jkc1tqXVsxXTtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7XHJcbiAgICAgICAgICB4OiBsb25naXR1ZGUsXHJcbiAgICAgICAgICB5OiBsYXRpdHVkZVxyXG4gICAgICAgIH1cclxuICAgICAgICBib3VuZHMueE1pbiA9IGJvdW5kcy54TWluIDwgcG9pbnQueCA/IGJvdW5kcy54TWluIDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueE1heCA9IGJvdW5kcy54TWF4ID4gcG9pbnQueCA/IGJvdW5kcy54TWF4IDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueU1pbiA9IGJvdW5kcy55TWluIDwgcG9pbnQueSA/IGJvdW5kcy55TWluIDogcG9pbnQueTtcclxuICAgICAgICBib3VuZHMueU1heCA9IGJvdW5kcy55TWF4ID4gcG9pbnQueSA/IGJvdW5kcy55TWF4IDogcG9pbnQueTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYm91bmRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb29yZGluYXRlVG9Qb2ludChsYXRpdHVkZSwgbG9uZ2l0dWRlLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IChsb25naXR1ZGUgLSBib3VuZHMueE1pbikgKiBzY2FsZSArIHhvZmZzZXQsXHJcbiAgICB5OiAoYm91bmRzLnlNYXggLSBsYXRpdHVkZSkgKiBzY2FsZSArIHlvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwb2ludFRvQ29vcmRpbmF0ZShwb2ludFksIHBvaW50WCwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAocG9pbnRYIC0geG9mZnNldCkgLyBzY2FsZSArIGJvdW5kcy54TWluLFxyXG4gICAgeTogYm91bmRzLnlNYXggLSAocG9pbnRZIC0geW9mZnNldCkgLyBzY2FsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpIHtcclxuICBpZiAoc19wb2lbMV0gPT0gZV9wb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID4gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA8IHBvaVsxXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPT0gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChlX3BvaVsxXSA9PSBwb2lbMV0gJiYgc19wb2lbMV0gPiBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzBdIDwgcG9pWzBdICYmIGVfcG9pWzFdIDwgcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGxldCB4c2VnID0gZV9wb2lbMF0gLSAoZV9wb2lbMF0gLSBzX3BvaVswXSkgKiAoZV9wb2lbMV0gLSBwb2lbMV0pIC8gKGVfcG9pWzFdIC0gc19wb2lbMV0pO1xyXG4gIGlmICh4c2VnIDwgcG9pWzBdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaXNQb2lXaXRoaW5Qb2x5KHBvaSwgcG9seSwgbWVyY2F0b3IpIHtcclxuICBsZXQgc2luc2MgPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seS5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGVwb2x5ID0gcG9seVtpXVswXTtcclxuICAgIGlmIChwb2x5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGVwb2x5ID0gcG9seVtpXVswXVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBlcG9seS5sZW5ndGggLSAxOyBqKyspIHtcclxuICAgICAgbGV0IHNfcG9pID0gZXBvbHlbal07XHJcbiAgICAgIGxldCBlX3BvaSA9IGVwb2x5W2ogKyAxXTtcclxuICAgICAgaWYgKG1lcmNhdG9yKSB7XHJcbiAgICAgICAgc19wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbal1bMF0sIGVwb2x5W2pdWzFdKTtcclxuICAgICAgICBlX3BvaSA9IGxvbmxhdDJtZXJjYXRvcihlcG9seVtqICsgMV1bMF0sIGVwb2x5W2ogKyAxXVsxXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpKSB7XHJcbiAgICAgICAgc2luc2MgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAoc2luc2MgJSAyID09IDEpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBtYXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGJvcmRlcjogdHJ1ZSxcclxuICAgIG1lcmNhdG9yOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYWN0aXZlOnRydWUsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBzZXJpZXNbaV0uZmlsbE9wYWNpdHl8fG1hcE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgaWYgKG1hcE9wdGlvbi5hY3RpdmUgPT0gdHJ1ZSAmJiBvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBjZW50ZXJQb2ludCA9IGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZDtcclxuICAgICAgaWYgKGNlbnRlclBvaW50KSB7XHJcbiAgICAgICAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgICAgICAgY2VudGVyUG9pbnQgPSBsb25sYXQybWVyY2F0b3IoZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkWzBdLCBkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMV0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvaW50ID0gY29vcmRpbmF0ZVRvUG9pbnQoY2VudGVyUG9pbnRbMV0sIGNlbnRlclBvaW50WzBdLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KTtcclxuICAgICAgICBsZXQgZm9udFNpemUgPSBkYXRhW2ldLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgIGxldCBmb250Q29sb3IgPSBkYXRhW2ldLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICAgICAgICBpZihtYXBPcHRpb24uYWN0aXZlICYmIG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3IgJiYgb3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKXtcclxuICAgICAgICAgIGZvbnRDb2xvciA9IG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLm5hbWU7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZvbnRDb2xvcilcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIHBvaW50LnggLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkgLyAyLCBwb2ludC55ICsgZm9udFNpemUgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEubWFwRGF0YSA9IHtcclxuICAgIGJvdW5kczogYm91bmRzLFxyXG4gICAgc2NhbGU6IHNjYWxlLFxyXG4gICAgeG9mZnNldDogeG9mZnNldCxcclxuICAgIHlvZmZzZXQ6IHlvZmZzZXQsXHJcbiAgICBtZXJjYXRvcjogbWFwT3B0aW9uLm1lcmNhdG9yXHJcbiAgfVxyXG4gIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgMSk7XHJcbiAgY29udGV4dC5kcmF3KCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHR5cGUsIGNvbnRleHQpIHtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5zZXJpZXM7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IHgsIHk7XHJcbiAgICAgICAgbGV0IGFyZWE7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIHggPSBub3JtYWxJbnQoLW9wdHMud2lkdGggLyAyLCBvcHRzLndpZHRoIC8gMiwgNSkgLSB0V2lkdGggLyAyO1xyXG4gICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgK1xyXG4gICAgICAgICAgICBvcHRzLmhlaWdodCAvIDJcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBsZXQgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYSwgcG9pbnRzLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAoIWlzQ29sbGlzaW9uKSBicmVhaztcclxuICAgICAgICAgIGlmIChicmVha251bSA9PSAxMDAwKSB7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbLTEwMCwgLTEwMCwgLTEwMCwgLTEwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAndmVydGljYWwnOlxyXG4gICAgICBmdW5jdGlvbiBTcGluKCkge1xyXG4gICAgICAgIC8v6I635Y+W5Z2H5YyA6ZqP5py65YC877yM5piv5ZCm5peL6L2s77yM5peL6L2s55qE5qaC546H5Li677yIMS0wLjXvvIlcclxuICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuNykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgICAgICBsZXQgdEhlaWdodCA9IHBvaW50c1tpXS50ZXh0U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgICAgICBsZXQgaXNTcGluID0gU3BpbigpO1xyXG4gICAgICAgIGxldCB4LCB5LCBhcmVhLCBhcmVhdjtcclxuICAgICAgICBsZXQgYnJlYWtudW0gPSAwO1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICBicmVha251bSsrO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uO1xyXG4gICAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMiwgKC14IC0gNSArIG9wdHMuaGVpZ2h0IC8gMiksIHkgKyA1ICsgb3B0cy53aWR0aCAvIDIsICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKV07XHJcbiAgICAgICAgICAgIGFyZWF2ID0gW29wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpIC0gNSwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSAtIDUsIG9wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpICsgdEhlaWdodCwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSArIHRXaWR0aCArIDVdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhdiwgcG9pbnRzLCBvcHRzLmhlaWdodCwgb3B0cy53aWR0aCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeCAtIDUgKyBvcHRzLndpZHRoIC8gMiwgeSAtIDUgLSB0SGVpZ2h0ICsgb3B0cy5oZWlnaHQgLyAyLCB4ICsgdFdpZHRoICsgNSArIG9wdHMud2lkdGggLyAyLCB5ICsgNSArIG9wdHMuaGVpZ2h0IC8gMl07XHJcbiAgICAgICAgICAgIGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAwLCAtMTAwMCwgLTEwMDAsIC0xMDAwXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoaXNTcGluKSB7XHJcbiAgICAgICAgICBwb2ludHNbaV0uYXJlYSA9IGFyZWF2O1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWF2ID0gYXJlYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwb2ludHNbaV0ucm90YXRlID0gaXNTcGluO1xyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgd29yZE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ25vcm1hbCcsXHJcbiAgICBhdXRvQ29sb3JzOiB0cnVlXHJcbiAgfSwgb3B0cy5leHRyYS53b3JkKTtcclxuICBpZiAoIW9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEgPSBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB3b3JkT3B0aW9uLnR5cGUsIGNvbnRleHQpO1xyXG4gIH1cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgY29udGV4dC5yZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YTtcclxuICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLndpZHRoIC8gMiwgb3B0cy5oZWlnaHQgLyAyKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocG9pbnRzW2ldLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodEhlaWdodCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWF2WzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBvaW50c1tpXS5hcmVhWzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgZnVubmVsT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOidmdW5uZWwnLFxyXG4gICAgYWN0aXZlV2lkdGg6IDEwLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC4zLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGZpbGxPcGFjaXR5OiAxLFxyXG4gICAgbWluU2l6ZTogMCxcclxuICAgIGxhYmVsQWxpZ246ICdyaWdodCcsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5mdW5uZWwpO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyBzZXJpZXMubGVuZ3RoO1xyXG4gIGxldCBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXVxyXG4gIH07XHJcbiAgbGV0IGFjdGl2ZVdpZHRoID0gZnVubmVsT3B0aW9uLmFjdGl2ZVdpZHRoICogb3B0cy5waXg7XHJcbiAgbGV0IHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBhY3RpdmVXaWR0aCwgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBhY3RpdmVXaWR0aCk7XHJcbiAgbGV0IHNlcmllc05ldyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbiwgZWFjaFNwYWNpbmcsIHByb2Nlc3MpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gIGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihmdW5uZWxPcHRpb24ubGluZWFyVHlwZSwgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgaWYoZnVubmVsT3B0aW9uLnR5cGUgPT0gJ3B5cmFtaWQnKXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpICsgMV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpICsgMV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1lYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC0gKHNlcmllc05ldy5sZW5ndGggLSAxKSAqIGVhY2hTcGFjaW5nKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGggKyBmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNOZXdbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSBdO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzTmV3W2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChzZXJpZXNOZXcubGVuZ3RoIC0gaSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoc2VyaWVzTmV3Lmxlbmd0aCAtIGkgLSAxKV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBlYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3RnVubmVsVGV4dChzZXJpZXNOZXcsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBmdW5uZWxPcHRpb24ubGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllc05ldywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNOZXdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZihpdGVtLmxhYmVsU2hvdyA9PT0gZmFsc2Upe1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydFgsIGVuZFgsIHN0YXJ0WSwgZm9udFNpemU7XHJcbiAgICBsZXQgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpLHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICB0ZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IHRleHQ7XHJcbiAgICBpZiAobGFiZWxBbGlnbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMl0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMl0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYICsgYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhYmVsQWxpZ24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMF0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMF0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYIC0gYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIGVuZFggLSA1IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpLCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGxhYmVsQWxpZ24sIGFjdGl2ZVdpZHRoLCBjZW50ZXJQb3NpdGlvbikge1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgaWYgKGl0ZW0uY2VudGVyVGV4dCkge1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS5jZW50ZXJUZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY2VudGVyVGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLmNlbnRlclRleHQsIGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChpdGVtLmNlbnRlclRleHQsIGZvbnRTaXplLCBjb250ZXh0KSAvIDIsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG52YXIgVGltaW5nID0ge1xyXG4gIGVhc2VJbjogZnVuY3Rpb24gZWFzZUluKHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcywgMyk7XHJcbiAgfSxcclxuICBlYXNlT3V0OiBmdW5jdGlvbiBlYXNlT3V0KHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcyAtIDEsIDMpICsgMTtcclxuICB9LFxyXG4gIGVhc2VJbk91dDogZnVuY3Rpb24gZWFzZUluT3V0KHBvcykge1xyXG4gICAgaWYgKChwb3MgLz0gMC41KSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIE1hdGgucG93KHBvcywgMyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHBvcyAtIDIsIDMpICsgMik7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lYXI6IGZ1bmN0aW9uIGxpbmVhcihwb3MpIHtcclxuICAgIHJldHVybiBwb3M7XHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gQW5pbWF0aW9uKG9wdHMpIHtcclxuICB0aGlzLmlzU3RvcCA9IGZhbHNlO1xyXG4gIG9wdHMuZHVyYXRpb24gPSB0eXBlb2Ygb3B0cy5kdXJhdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAxMDAwIDogb3B0cy5kdXJhdGlvbjtcclxuICBvcHRzLnRpbWluZyA9IG9wdHMudGltaW5nIHx8ICdlYXNlSW5PdXQnO1xyXG4gIHZhciBkZWxheSA9IDE3O1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCkge1xyXG4gICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCwgZGVsYXkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgdmFyIHRpbWVTdGFtcCA9ICtuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgc3RlcCh0aW1lU3RhbXApO1xyXG4gICAgICAgIH0sIGRlbGF5KTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwKSB7XHJcbiAgICAgICAgc3RlcChudWxsKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHZhciBhbmltYXRpb25GcmFtZSA9IGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCk7XHJcbiAgdmFyIHN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICB2YXIgX3N0ZXAgPSBmdW5jdGlvbiBzdGVwKHRpbWVzdGFtcCkge1xyXG4gICAgaWYgKHRpbWVzdGFtcCA9PT0gbnVsbCB8fCB0aGlzLmlzU3RvcCA9PT0gdHJ1ZSkge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChzdGFydFRpbWVTdGFtcCA9PT0gbnVsbCkge1xyXG4gICAgICBzdGFydFRpbWVTdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIGlmICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCA8IG9wdHMuZHVyYXRpb24pIHtcclxuICAgICAgdmFyIHByb2Nlc3MgPSAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXApIC8gb3B0cy5kdXJhdGlvbjtcclxuICAgICAgdmFyIHRpbWluZ0Z1bmN0aW9uID0gVGltaW5nW29wdHMudGltaW5nXTtcclxuICAgICAgcHJvY2VzcyA9IHRpbWluZ0Z1bmN0aW9uKHByb2Nlc3MpO1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2Vzcyhwcm9jZXNzKTtcclxuICAgICAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgIH1cclxuICB9O1xyXG4gIF9zdGVwID0gX3N0ZXAuYmluZCh0aGlzKTtcclxuICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG59XHJcblxyXG5BbmltYXRpb24ucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmlzU3RvcCA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2hhcnRzKHR5cGUsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgdmFyIHNlcmllcyA9IG9wdHMuc2VyaWVzO1xyXG4gIC8v5YW85a65RUNoYXJ0c+mlvOWbvuexu+aVsOaNruagvOW8j1xyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ21vdW50JyB8fCB0eXBlID09PSAncm9zZScgfHwgdHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgIHNlcmllcyA9IGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyk7XHJcbiAgfVxyXG4gIHZhciBjYXRlZ29yaWVzID0gb3B0cy5jYXRlZ29yaWVzO1xyXG4gIGlmICh0eXBlID09PSAnbW91bnQnKSB7XHJcbiAgICBjYXRlZ29yaWVzID0gW107XHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICBpZihzZXJpZXNbal0uc2hvdyAhPT0gZmFsc2UpIGNhdGVnb3JpZXMucHVzaChzZXJpZXNbal0ubmFtZSlcclxuICAgIH1cclxuICAgIG9wdHMuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIHZhciBkdXJhdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDA7XHJcbiAgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2Uuc3RvcCgpO1xyXG4gIHZhciBzZXJpZXNNQSA9IG51bGw7XHJcbiAgaWYgKHR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgIGxldCBhdmVyYWdlID0gYXNzaWduKHt9LCBvcHRzLmV4dHJhLmNhbmRsZS5hdmVyYWdlKTtcclxuICAgIGlmIChhdmVyYWdlLnNob3cpIHtcclxuICAgICAgc2VyaWVzTUEgPSBjYWxDYW5kbGVNQShhdmVyYWdlLmRheSwgYXZlcmFnZS5uYW1lLCBhdmVyYWdlLmNvbG9yLCBzZXJpZXNbMF0uZGF0YSk7XHJcbiAgICAgIHNlcmllc01BID0gZmlsbFNlcmllcyhzZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgICAgb3B0cy5zZXJpZXNNQSA9IHNlcmllc01BO1xyXG4gICAgfSBlbHNlIGlmIChvcHRzLnNlcmllc01BKSB7XHJcbiAgICAgIHNlcmllc01BID0gb3B0cy5zZXJpZXNNQSA9IGZpbGxTZXJpZXMob3B0cy5zZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc01BID0gc2VyaWVzO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICB9XHJcbiAgLyog6L+H5ruk5o6Jc2hvdz1mYWxzZeeahHNlcmllcyAqL1xyXG4gIG9wdHMuX3Nlcmllc18gPSBzZXJpZXMgPSBmaWx0ZXJTZXJpZXMoc2VyaWVzKTtcclxuICAvL+mHjeaWsOiuoeeul+WbvuihqOWMuuWfn1xyXG4gIG9wdHMuYXJlYSA9IG5ldyBBcnJheSg0KTtcclxuICAvL+WkjeS9jee7mOWbvuWMuuWfn1xyXG4gIGZvciAobGV0IGogPSAwOyBqIDwgNDsgaisrKSB7XHJcbiAgICBvcHRzLmFyZWFbal0gPSBvcHRzLnBhZGRpbmdbal0gKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgLy/pgJrov4forqHnrpfkuInlpKfljLrln5/vvJrlm77kvovjgIFY6L2044CBWei9tOeahOWkp+Wwj++8jOehruWumue7mOWbvuWMuuWfn1xyXG4gIHZhciBfY2FsTGVnZW5kRGF0YSA9IGNhbExlZ2VuZERhdGEoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEsIGNvbnRleHQpLFxyXG4gICAgbGVnZW5kSGVpZ2h0ID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCxcclxuICAgIGxlZ2VuZFdpZHRoID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZVdpZHRoO1xyXG5cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSBsZWdlbmRIZWlnaHQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIG9wdHMuYXJlYVszXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgIG9wdHMuYXJlYVsxXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG5cclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IHt9LFxyXG4gICAgeUF4aXNXaWR0aCA9IDA7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2NvbHVtbid8fCBvcHRzLnR5cGUgPT09ICdtb3VudCcgfHwgb3B0cy50eXBlID09PSAnYXJlYScgfHwgb3B0cy50eXBlID09PSAnbWl4JyB8fCBvcHRzLnR5cGUgPT09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInICB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICAvL+WmguaenOaYvuekulnovbTmoIfpophcclxuICAgIGlmIChvcHRzLnlBeGlzLnNob3dUaXRsZSkge1xyXG4gICAgICBsZXQgbWF4VGl0bGVIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG1heFRpdGxlSGVpZ2h0ID0gTWF0aC5tYXgobWF4VGl0bGVIZWlnaHQsIG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplID8gb3B0cy55QXhpcy5kYXRhW2ldLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZSlcclxuICAgICAgfVxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbWF4VGl0bGVIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBsZXQgcmlnaHRJbmRleCA9IDAsXHJcbiAgICAgIGxlZnRJbmRleCA9IDA7XHJcbiAgICAvL+iuoeeul+S4u+e7mOWbvuWMuuWfn+W3puWPs+S9jee9rlxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5QXhpc1dpZHRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh5QXhpc1dpZHRoW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGlmIChsZWZ0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGVmdEluZGV4ICs9IDE7XHJcbiAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgaWYgKHJpZ2h0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmlnaHRJbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEueUF4aXNEYXRhID0gX2NhbFlBeGlzRGF0YTtcclxuXHJcbiAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoICYmIG9wdHMudHlwZSAhPT0gJ3JhZGFyJyAmJiBvcHRzLnR5cGUgIT09ICdnYXVnZScgJiYgb3B0cy50eXBlICE9PSAnYmFyJykge1xyXG4gICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gZ2V0WEF4aXNQb2ludHMob3B0cy5jYXRlZ29yaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmcsIGNvbnRleHQpLFxyXG4gICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICBjb25maWcueEF4aXNIZWlnaHQgPSB4QXhpc0hlaWdodDtcclxuICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICBvcHRzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzRGF0YSA9IF9jYWxDYXRlZ29yaWVzRGF0YTtcclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSBjYWxYQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICBjYXRlZ29yaWVzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlc0Zvcm1hdDtcclxuICAgICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgICBhbmdsZSA9IF9jYWxDYXRlZ29yaWVzRGF0YS5hbmdsZTtcclxuICAgICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSB4QXhpc0hlaWdodDtcclxuICAgICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHM6IFtdXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL+iuoeeul+WPs+Wvuem9kOWBj+enu+i3neemu1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbEFsaWduID09ICdyaWdodCcgJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID09PSB1bmRlZmluZWQpIHtcclxuICAgIGxldCBvZmZzZXRMZWZ0ID0gMCxcclxuICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICAgIHN0YXJ0WCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICAgIGVuZFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCxcclxuICAgICAgZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAtIHRvdGFsV2lkdGg7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCA9IG9mZnNldExlZnQ7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBvZmZzZXRMZWZ0O1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gMDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSAwO1xyXG4gICAgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzTUEsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIFxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnd29yZCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWFwJzpcclxuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICB0aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICB9LDUwKVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Z1bm5lbCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZnVubmVsRGF0YSA9IGRyYXdGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0xpbmVEYXRhUG9pbnRzID0gZHJhd0xpbmVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3NjYXR0ZXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzID0gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2J1YmJsZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QnViYmxlRGF0YVBvaW50cyA9IGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21peCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TWl4RGF0YVBvaW50cyA9IGRyYXdNaXhEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01peERhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdNaXhEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2NvbHVtbic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3Q29sdW1uRGF0YVBvaW50cyA9IGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNb3VudERhdGFQb2ludHMgPSBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01vdW50RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNb3VudERhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TW91bnREYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QmFyRGF0YVBvaW50cyA9IGRyYXdCYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeUF4aXNQb2ludHMgPSBfZHJhd0JhckRhdGFQb2ludHMueUF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCYXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueUF4aXNQb2ludHMgPSB5QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeUF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJlYSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QXJlYURhdGFQb2ludHMgPSBkcmF3QXJlYURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3QXJlYURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmluZyc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdwaWUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5waWVEYXRhID0gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncm9zZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3Um9zZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmFkYXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5yYWRhckRhdGEgPSBkcmF3UmFkYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2FyY2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmFyY2JhckRhdGEgPSBkcmF3QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdnYXVnZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmdhdWdlRGF0YSA9IGRyYXdHYXVnZURhdGFQb2ludHMoY2F0ZWdvcmllcywgc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY2FuZGxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDYW5kbGVEYXRhUG9pbnRzID0gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoc2VyaWVzTUEpIHtcclxuICAgICAgICAgICAgZHJhd0xlZ2VuZChzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVDaGFydHNFdmVudCgpIHtcclxuICB0aGlzLmV2ZW50cyA9IHt9O1xyXG59XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xyXG4gIHRoaXMuZXZlbnRzW3R5cGVdID0gdGhpcy5ldmVudHNbdHlwZV0gfHwgW107XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XHJcbn07XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSBbXTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uKCkge1xyXG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XHJcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG4gIH1cclxuICB2YXIgdHlwZSA9IGFyZ3NbMF07XHJcbiAgdmFyIHBhcmFtcyA9IGFyZ3Muc2xpY2UoMSk7XHJcbiAgaWYgKCEhdGhpcy5ldmVudHNbdHlwZV0pIHtcclxuICAgIHRoaXMuZXZlbnRzW3R5cGVdLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsaXN0ZW5lci5hcHBseShudWxsLCBwYXJhbXMpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCdbdUNoYXJ0c10gJytlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxudmFyIHVDaGFydHMgPSBmdW5jdGlvbiB1Q2hhcnRzKG9wdHMpIHtcclxuICBvcHRzLnBpeCA9IG9wdHMucGl4ZWxSYXRpbyA/IG9wdHMucGl4ZWxSYXRpbyA6IDE7XHJcbiAgb3B0cy5mb250U2l6ZSA9IG9wdHMuZm9udFNpemUgPyBvcHRzLmZvbnRTaXplIDogMTM7XHJcbiAgb3B0cy5mb250Q29sb3IgPSBvcHRzLmZvbnRDb2xvciA/IG9wdHMuZm9udENvbG9yIDogY29uZmlnLmZvbnRDb2xvcjtcclxuICBpZiAob3B0cy5iYWNrZ3JvdW5kID09IFwiXCIgfHwgb3B0cy5iYWNrZ3JvdW5kID09IFwibm9uZVwiKSB7XHJcbiAgICBvcHRzLmJhY2tncm91bmQgPSBcIiNGRkZGRkZcIlxyXG4gIH1cclxuICBvcHRzLnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnRpdGxlKTtcclxuICBvcHRzLnN1YnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnN1YnRpdGxlKTtcclxuICBvcHRzLmR1cmF0aW9uID0gb3B0cy5kdXJhdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAxMDAwO1xyXG4gIG9wdHMueUF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIGRhdGE6IFtdLFxyXG4gICAgc2hvd1RpdGxlOiBmYWxzZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIGdyaWRTZXQ6ICdudW1iZXInLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQgKiBvcHRzLnBpeCxcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgcGFkZGluZzogMTAsXHJcbiAgICBmb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueUF4aXMpO1xyXG4gIG9wdHMueEF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIHJvdGF0ZUxhYmVsOiBmYWxzZSxcclxuICAgIHJvdGF0ZUFuZ2xlOjQ1LFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBjYWxpYnJhdGlvbjpmYWxzZSxcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIHNjcm9sbEFsaWduOiAnbGVmdCcsXHJcbiAgICBib3VuZGFyeUdhcDogJ2NlbnRlcicsXHJcbiAgICBheGlzTGluZTogdHJ1ZSxcclxuICAgIGF4aXNMaW5lQ29sb3I6ICcjY2NjY2NjJ1xyXG4gIH0sIG9wdHMueEF4aXMpO1xyXG4gIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBvcHRzLnhBeGlzLnNjcm9sbEFsaWduO1xyXG4gIG9wdHMubGVnZW5kID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiB0cnVlLFxyXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgZmxvYXQ6ICdjZW50ZXInLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwKScsXHJcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBwYWRkaW5nOiA1LFxyXG4gICAgbWFyZ2luOiA1LFxyXG4gICAgaXRlbUdhcDogMTAsXHJcbiAgICBmb250U2l6ZTogb3B0cy5mb250U2l6ZSxcclxuICAgIGxpbmVIZWlnaHQ6IG9wdHMuZm9udFNpemUsXHJcbiAgICBmb250Q29sb3I6IG9wdHMuZm9udENvbG9yLFxyXG4gICAgZm9ybWF0dGVyOiB7fSxcclxuICAgIGhpZGRlbkNvbG9yOiAnI0NFQ0VDRSdcclxuICB9LCBvcHRzLmxlZ2VuZCk7XHJcbiAgb3B0cy5leHRyYSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYSk7XHJcbiAgb3B0cy5yb3RhdGUgPSBvcHRzLnJvdGF0ZSA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLmFuaW1hdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5jYW52YXMyZCA9IG9wdHMuY2FudmFzMmQgPyB0cnVlIDogZmFsc2U7XHJcbiAgXHJcbiAgbGV0IGNvbmZpZyQkMSA9IGFzc2lnbih7fSwgY29uZmlnKTtcclxuICBjb25maWckJDEuY29sb3IgPSBvcHRzLmNvbG9yID8gb3B0cy5jb2xvciA6IGNvbmZpZyQkMS5jb2xvcjtcclxuICBpZiAob3B0cy50eXBlID09ICdwaWUnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnBpZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncmluZycpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucmluZy5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncm9zZScpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucm9zZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuXHJcbiAgLy/lsY/luZXml4vovaxcclxuICBjb25maWckJDEucm90YXRlID0gb3B0cy5yb3RhdGU7XHJcbiAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICBsZXQgdGVtcFdpZHRoID0gb3B0cy53aWR0aDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gb3B0cy5oZWlnaHQ7XHJcbiAgICBvcHRzLndpZHRoID0gdGVtcEhlaWdodDtcclxuICAgIG9wdHMuaGVpZ2h0ID0gdGVtcFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgLy/pgILphY3pq5jliIblsY9cclxuICBvcHRzLnBhZGRpbmcgPSBvcHRzLnBhZGRpbmcgPyBvcHRzLnBhZGRpbmcgOiBjb25maWckJDEucGFkZGluZztcclxuICBjb25maWckJDEueUF4aXNXaWR0aCA9IGNvbmZpZy55QXhpc1dpZHRoICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ID0gY29uZmlnLnhBeGlzSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsICYmIG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ICs9IDYgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50aXRsZUZvbnRTaXplID0gY29uZmlnLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEuc3VidGl0bGVGb250U2l6ZSA9IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBQYWRkaW5nID0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBMaW5lSGVpZ2h0ID0gY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYoIW9wdHMuY29udGV4dCl7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1Q2hhcnRzXSDmnKrojrflj5bliLBjb250ZXh077yB5rOo5oSP77yadjIuMOeJiOacrOWQju+8jOmcgOimgeiHquihjOiOt+WPlmNhbnZhc+eahOe7mOWbvuS4iuS4i+aWh+W5tuS8oOWFpW9wdHMuY29udGV4dO+8gScpO1xyXG4gIH1cclxuICB0aGlzLmNvbnRleHQgPSBvcHRzLmNvbnRleHQ7XHJcbiAgaWYgKCF0aGlzLmNvbnRleHQuc2V0VGV4dEFsaWduKSB7XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0U3Ryb2tlU3R5bGUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0cm9rZVN0eWxlID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lV2lkdGggPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpbmVXaWR0aCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZUNhcCA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGluZUNhcCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0Rm9udFNpemUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvbnQgPSBlICsgXCJweCBzYW5zLXNlcmlmXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0RmlsbFN0eWxlID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxsU3R5bGUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldFRleHRBbGlnbiA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGV4dEFsaWduID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5kcmF3ID0gZnVuY3Rpb24oKSB7fVxyXG4gIH1cclxuICAvL+WFvOWuuU5WVUVzZXRMaW5lRGFzaFxyXG4gIGlmKCF0aGlzLmNvbnRleHQuc2V0TGluZURhc2gpe1xyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVEYXNoID0gZnVuY3Rpb24oZSkge31cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEgPSB7fTtcclxuICB0aGlzLnVldmVudCA9IG5ldyB1Q2hhcnRzRXZlbnQoKTtcclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICBzdGFydFRvdWNoWDogMCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gIHRoaXMuY29uZmlnID0gY29uZmlnJCQxO1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIGNvbmZpZyQkMSwgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnVwZGF0ZURhdGEgPSBmdW5jdGlvbigpIHtcclxuICBsZXQgZGF0YSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XHJcbiAgdGhpcy5vcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIGRhdGEpO1xyXG4gIHRoaXMub3B0cy51cGRhdGVEYXRhID0gdHJ1ZTtcclxuICBsZXQgc2Nyb2xsUG9zaXRpb24gPSBkYXRhLnNjcm9sbFBvc2l0aW9uIHx8ICdjdXJyZW50JztcclxuICBzd2l0Y2ggKHNjcm9sbFBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICdjdXJyZW50JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IDA7XHJcbiAgICAgIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICAgICAgc3RhcnRUb3VjaFg6IDAsXHJcbiAgICAgICAgZGlzdGFuY2U6IDAsXHJcbiAgICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLCB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICAgICAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gICAgICBsZXQgX2dldFhBeGlzUG9pbnRzMCA9IGdldFhBeGlzUG9pbnRzKHRoaXMub3B0cy5jYXRlZ29yaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnKSwgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgIHN0YXJ0WCA9IF9nZXRYQXhpc1BvaW50czAuc3RhcnRYLFxyXG4gICAgICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICAgICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gICAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLSB0b3RhbFdpZHRoO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS56b29tID0gZnVuY3Rpb24oKSB7XHJcbiAgdmFyIHZhbCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudDtcclxuICBpZiAodGhpcy5vcHRzLmVuYWJsZVNjcm9sbCAhPT0gdHJ1ZSkge1xyXG4gICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXSDor7flkK/nlKjmu5rliqjmnaHlkI7kvb/nlKgnKVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICAvL+W9k+WJjeWxj+W5leS4remXtOeCuVxyXG4gIGxldCBjZW50ZXJQb2ludCA9IE1hdGgucm91bmQoTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkgLyB0aGlzLm9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nKSArIE1hdGgucm91bmQodGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCAvIDIpO1xyXG4gIHRoaXMub3B0cy5hbmltYXRpb24gPSBmYWxzZTtcclxuICB0aGlzLm9wdHMueEF4aXMuaXRlbUNvdW50ID0gdmFsLml0ZW1Db3VudDtcclxuICAvL+mHjeaWsOiuoeeul3jovbTlgY/np7vot53nprtcclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLFxyXG4gICAgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICBsZXQgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksXHJcbiAgICB4QXhpc1BvaW50cyA9IF9nZXRYQXhpc1BvaW50czAueEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IF9nZXRYQXhpc1BvaW50czAuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNlbnRlckxlZnQgPSBlYWNoU3BhY2luZyAqIGNlbnRlclBvaW50O1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAvIDIgLSBjZW50ZXJMZWZ0O1xyXG4gIGlmIChvZmZzZXRMZWZ0ID4gMCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRMZWZ0IDwgTWF4TGVmdCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IE1heExlZnQ7XHJcbiAgfVxyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRvYnVsZVpvb20gPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29uc3QgdGNzID0gZS5jaGFuZ2VkVG91Y2hlcztcclxuICBpZiAodGNzLmxlbmd0aCA8IDIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0Y3MubGVuZ3RoOyBpKyspIHtcclxuICAgIHRjc1tpXS54ID0gdGNzW2ldLnggPyB0Y3NbaV0ueCA6IHRjc1tpXS5jbGllbnRYO1xyXG4gICAgdGNzW2ldLnkgPSB0Y3NbaV0ueSA/IHRjc1tpXS55IDogdGNzW2ldLmNsaWVudFk7XHJcbiAgfVxyXG4gIGNvbnN0IG50Y3MgPSBbZ2V0VG91Y2hlcyh0Y3NbMF0sIHRoaXMub3B0cywgZSksZ2V0VG91Y2hlcyh0Y3NbMV0sIHRoaXMub3B0cywgZSldOyBcclxuICBjb25zdCB4bGVuZ3RoID0gTWF0aC5hYnMobnRjc1swXS54IC0gbnRjc1sxXS54KTtcclxuICAvLyDorrDlvZXliJ3lp4vnmoTkuKTmjIfkuYvpl7TnmoTmlbDmja5cclxuICBpZighdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50KXtcclxuICAgIGxldCBjdHMwID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0Y3NbMF0ueCx5OnRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCArIDJ9XX07XHJcbiAgICBsZXQgY3RzMSA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGNzWzFdLngseTp0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggKyAyfV19O1xyXG4gICAgaWYodGhpcy5vcHRzLnJvdGF0ZSl7XHJcbiAgICAgIGN0czAgPSB7Y2hhbmdlZFRvdWNoZXM6W3t4OnRoaXMub3B0cy5oZWlnaHQgLyB0aGlzLm9wdHMucGl4IC0gdGhpcy5vcHRzLmFyZWFbMF0gLyB0aGlzLm9wdHMucGl4IC0gMix5OnRjc1swXS55fV19O1xyXG4gICAgICBjdHMxID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0aGlzLm9wdHMuaGVpZ2h0IC8gdGhpcy5vcHRzLnBpeCAtIHRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCAtIDIseTp0Y3NbMV0ueX1dfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MSA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMwKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MiA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMxKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDb3VudCA9IE1hdGguYWJzKG1vdmVDdXJyZW50MSAtIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSBtb3ZlQ291bnQ7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDEgPSBNYXRoLm1pbihtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDIgPSBNYXRoLm1heChtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBjdXJyZW50RWFjaFNwYWNpbmcgPSB4bGVuZ3RoIC8gdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50O1xyXG4gIGxldCBpdGVtQ291bnQgPSAodGhpcy5vcHRzLndpZHRoIC0gdGhpcy5vcHRzLmFyZWFbMV0gLSB0aGlzLm9wdHMuYXJlYVszXSkgLyBjdXJyZW50RWFjaFNwYWNpbmc7XHJcbiAgaXRlbUNvdW50ID0gaXRlbUNvdW50IDw9IDIgPyAyIDogaXRlbUNvdW50O1xyXG4gIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCA+PSB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggPyB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggOiBpdGVtQ291bnQ7XHJcbiAgdGhpcy5vcHRzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgPSBpdGVtQ291bnQ7XHJcbiAgLy8g6YeN5paw6K6h566X5rua5Yqo5p2h5YGP56e76Led56a7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjdXJyZW50TGVmdCA9IGVhY2hTcGFjaW5nICogdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQxO1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSAtY3VycmVudExlZnQrTWF0aC5taW4obnRjc1swXS54LG50Y3NbMV0ueCktdGhpcy5vcHRzLmFyZWFbM10tZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9mZnNldExlZnQgPiAwKSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gMDtcclxuICB9XHJcbiAgaWYgKG9mZnNldExlZnQgPCBNYXhMZWZ0KSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gTWF4TGVmdDtcclxuICB9XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldD0gb2Zmc2V0TGVmdDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWD0gMDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZT0wO1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufVxyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtb3VudCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgb3B0cy5fc2VyaWVzX1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIG9wdHMpIDogc2VyaWVzRGF0YS5uYW1lICsgJzogJyArIHNlcmllc0RhdGEuZGF0YSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHNbaW5kZXhdLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueCA9IF90b3VjaGVzJC54O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWl4Jykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0TWl4VG9vbFRpcERhdGEgPSBnZXRNaXhUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldE1peFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldE1peFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2NhbmRsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0Q2FuZGxlVG9vbFRpcERhdGEodGhpcy5vcHRzLnNlcmllc1swXS5kYXRhLCBzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLmV4dHJhLmNhbmRsZSwgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3Jvc2UnIHx8IHRoaXMub3B0cy50eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICd3b3JkJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCB0aGlzLm9wdHMuc2VyaWVzW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgdGhpcy5vcHRzKSA6IHNlcmllc0RhdGEubmFtZSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGhpcy5vcHRzLmNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgdGhpcy5vcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgICAgfTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKGRpc3RhbmNlKSB7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiBkaXN0YW5jZSxcclxuICAgIHN0YXJ0VG91Y2hYOiBkaXN0YW5jZSxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBsZXQgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBkaXN0YW5jZSxcclxuICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICB9KTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsU3RhcnQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBfdG91Y2hlcyQueDtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGwgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9PT0gMCkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbiAgbGV0IExpbWl0ID0gdGhpcy5vcHRzLnRvdWNoTW92ZUxpbWl0IHx8IDYwO1xyXG4gIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZTtcclxuICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyBMaW1pdCkpIHJldHVybjtcclxuICBpZiAodGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPT0gMCkgcmV0dXJuO1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdmFyIF90b3VjaGVzJCA9IGdldFRvdWNoZXModG91Y2hlcywgdGhpcy5vcHRzLCBlKTtcclxuICAgIHZhciBfZGlzdGFuY2U7XHJcbiAgICBfZGlzdGFuY2UgPSBfdG91Y2hlcyQueCAtIHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYO1xyXG4gICAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgdmFyIHZhbGlkRGlzdGFuY2UgPSBjYWxWYWxpZERpc3RhbmNlKHRoaXMsIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsIHRoaXMub3B0cy5jaGFydERhdGEsIHRoaXMuY29uZmlnLCB0aGlzLm9wdHMpO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSBfZGlzdGFuY2UgPSB2YWxpZERpc3RhbmNlIC0gY3VycmVudE9mZnNldDtcclxuICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgX3Njcm9sbERpc3RhbmNlXzogY3VycmVudE9mZnNldCArIF9kaXN0YW5jZSxcclxuICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgfSk7XHJcblx0XHR0aGlzLm9wdHMgPSBvcHRzO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgICByZXR1cm4gY3VycmVudE9mZnNldCArIF9kaXN0YW5jZTtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGxFbmQgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfc2Nyb2xsT3B0aW9uID0gdGhpcy5zY3JvbGxPcHRpb24sXHJcbiAgICAgIGN1cnJlbnRPZmZzZXQgPSBfc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQsXHJcbiAgICAgIGRpc3RhbmNlID0gX3Njcm9sbE9wdGlvbi5kaXN0YW5jZTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZSA9IDA7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSAwO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHVDaGFydHM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///68\n"); /***/ }), /* 69 */ /*!**********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n var date = new Date();\n date.setTime(timeStamp * 1000);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var h = date.getHours();\n h = h < 10 ? '0' + h : h;\n var minute = date.getMinutes();\n var second = date.getSeconds();\n minute = minute < 10 ? '0' + minute : minute;\n second = second < 10 ? '0' + second : second;\n if (returnType == 'full') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}\n if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}\n if (returnType == 'h:m') {return h + ':' + minute;}\n if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}\n return [y, m, d, h, minute, second];\n};\n\nvar cfu = {\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\n \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n \"range\": [\"饼状图\", \"圆环图\", \"玫瑰图\", \"词云图\", \"漏斗图\", \"地图\", \"圆弧进度条\", \"折线图\", \"柱状图\", \"山峰图\", \"条状图\", \"区域图\", \"雷达图\", \"仪表盘\", \"K线图\", \"混合图\", \"时间轴折线\", \"时间轴区域\", \"散点图\", \"气泡图\", \"自定义类型\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\n \"categories\": [\"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n //instance为实例变量承载属性,不要删除\n \"instance\": {},\n //option为opts及eopts承载属性,不要删除\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"yAxisDemo1\": function yAxisDemo1(val, index, opts) {return val + '元';},\n \"yAxisDemo2\": function yAxisDemo2(val, index, opts) {return val.toFixed(2);},\n \"xAxisDemo1\": function xAxisDemo1(val, index, opts) {return val + '年';},\n \"xAxisDemo2\": function xAxisDemo2(val, index, opts) {return formatDateTime(val, 'h:m');},\n \"seriesDemo1\": function seriesDemo1(val, index, series, opts) {return val + '元';},\n \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n if (index == 0) {\n return '随便用' + item.data + '年';\n } else {\n return '其他我没改' + item.data + '天';\n }\n },\n \"pieDemo\": function pieDemo(val, index, series, opts) {\n if (index !== undefined) {\n return series[index].name + ':' + series[index].data + '元';\n }\n } },\n\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\n \"demotype\": {\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2 },\n\n \"legend\": {},\n\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2 } } },\n\n\n\n //下面是自定义配置,请添加项目所需的通用配置\n \"pie\": {\n \"type\": \"pie\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"extra\": {\n \"pie\": {\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n \"ring\": {\n \"type\": \"ring\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"rotate\": false,\n \"dataLabel\": true,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25 },\n\n \"title\": {\n \"name\": \"收益率\",\n \"fontSize\": 15,\n \"color\": \"#666666\" },\n\n \"subtitle\": {\n \"name\": \"70%\",\n \"fontSize\": 25,\n \"color\": \"#7cb5ec\" },\n\n \"extra\": {\n \"ring\": {\n \"ringWidth\": 30,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n \"rose\": {\n \"type\": \"rose\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"legend\": {\n \"show\": true,\n \"position\": \"left\",\n \"lineHeight\": 25 },\n\n \"extra\": {\n \"rose\": {\n \"type\": \"area\",\n \"minRadius\": 50,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": false,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n \"word\": {\n \"type\": \"word\",\n \"color\": color,\n \"extra\": {\n \"word\": {\n \"type\": \"normal\",\n \"autoColors\": false } } },\n\n\n\n \"funnel\": {\n \"type\": \"funnel\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"extra\": {\n \"funnel\": {\n \"activeOpacity\": 0.3,\n \"activeWidth\": 10,\n \"border\": true,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\",\n \"fillOpacity\": 1,\n \"labelAlign\": \"right\" } } },\n\n\n\n \"map\": {\n \"type\": \"map\",\n \"color\": color,\n \"padding\": [0, 0, 0, 0],\n \"dataLabel\": true,\n \"extra\": {\n \"map\": {\n \"border\": true,\n \"borderWidth\": 1,\n \"borderColor\": \"#666666\",\n \"fillOpacity\": 0.6,\n \"activeBorderColor\": \"#F04864\",\n \"activeFillColor\": \"#FACC14\",\n \"activeFillOpacity\": 1 } } },\n\n\n\n \"arcbar\": {\n \"type\": \"arcbar\",\n \"color\": color,\n \"title\": {\n \"name\": \"百分比\",\n \"fontSize\": 25,\n \"color\": \"#00FF00\" },\n\n \"subtitle\": {\n \"name\": \"默认标题\",\n \"fontSize\": 15,\n \"color\": \"#666666\" },\n\n \"extra\": {\n \"arcbar\": {\n \"type\": \"default\",\n \"width\": 12,\n \"backgroundColor\": \"#E9E9E9\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"gap\": 2 } } },\n\n\n\n \"line\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2 },\n\n \"legend\": {},\n\n \"extra\": {\n \"line\": {\n \"type\": \"straight\",\n \"width\": 2 } } },\n\n\n\n \"tline\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"boundaryGap\": \"justify\" },\n\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [\n {\n \"min\": 0,\n \"max\": 80 }] },\n\n\n\n \"legend\": {},\n\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2 } } },\n\n\n\n \"tarea\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true,\n \"boundaryGap\": \"justify\" },\n\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [\n {\n \"min\": 0,\n \"max\": 80 }] },\n\n\n\n \"legend\": {},\n\n \"extra\": {\n \"area\": {\n \"type\": \"curve\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": true } } },\n\n\n\n \"column\": {\n \"type\": \"column\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"data\": [{ \"min\": 0 }] },\n\n \"legend\": {},\n\n \"extra\": {\n \"column\": {\n \"type\": \"group\",\n \"width\": 30,\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08 } } },\n\n\n\n \"mount\": {\n \"type\": \"mount\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"data\": [{ \"min\": 0 }] },\n\n \"legend\": {},\n\n \"extra\": {\n \"mount\": {\n \"type\": \"mount\",\n \"widthRatio\": 1.5 } } },\n\n\n\n \"bar\": {\n \"type\": \"bar\",\n \"color\": color,\n \"padding\": [15, 30, 0, 5],\n \"xAxis\": {\n \"boundaryGap\": \"justify\",\n \"disableGrid\": false,\n \"min\": 0,\n \"axisLine\": false },\n\n \"yAxis\": {},\n\n \"legend\": {},\n\n \"extra\": {\n \"bar\": {\n \"type\": \"group\",\n \"width\": 30,\n \"meterBorde\": 1,\n \"meterFillColor\": \"#FFFFFF\",\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08 } } },\n\n\n\n \"area\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2 },\n\n \"legend\": {},\n\n \"extra\": {\n \"area\": {\n \"type\": \"straight\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": false } } },\n\n\n\n \"radar\": {\n \"type\": \"radar\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"dataLabel\": false,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25 },\n\n \"extra\": {\n \"radar\": {\n \"gridType\": \"radar\",\n \"gridColor\": \"#CCCCCC\",\n \"gridCount\": 3,\n \"opacity\": 0.2,\n \"max\": 200 } } },\n\n\n\n \"gauge\": {\n \"type\": \"gauge\",\n \"color\": color,\n \"title\": {\n \"name\": \"66Km/H\",\n \"fontSize\": 25,\n \"color\": \"#2fc25b\",\n \"offsetY\": 50 },\n\n \"subtitle\": {\n \"name\": \"实时速度\",\n \"fontSize\": 15,\n \"color\": \"#1890ff\",\n \"offsetY\": -50 },\n\n \"extra\": {\n \"gauge\": {\n \"type\": \"default\",\n \"width\": 30,\n \"labelColor\": \"#666666\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"startNumber\": 0,\n \"endNumber\": 100,\n \"labelFormat\": \"\",\n \"splitLine\": {\n \"fixRadius\": 0,\n \"splitNumber\": 10,\n \"width\": 30,\n \"color\": \"#FFFFFF\",\n \"childNumber\": 5,\n \"childWidth\": 12 },\n\n \"pointer\": {\n \"width\": 24,\n \"color\": \"auto\" } } } },\n\n\n\n\n \"candle\": {\n \"type\": \"candle\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"enableScroll\": true,\n \"enableMarkLine\": true,\n \"dataLabel\": false,\n \"xAxis\": {\n \"labelCount\": 4,\n \"itemCount\": 40,\n \"disableGrid\": true,\n \"gridColor\": \"#CCCCCC\",\n \"gridType\": \"solid\",\n \"dashLength\": 4,\n \"scrollShow\": true,\n \"scrollAlign\": \"left\",\n \"scrollColor\": \"#A6A6A6\",\n \"scrollBackgroundColor\": \"#EFEBEF\" },\n\n \"yAxis\": {},\n\n \"legend\": {},\n\n \"extra\": {\n \"candle\": {\n \"color\": {\n \"upLine\": \"#f04864\",\n \"upFill\": \"#f04864\",\n \"downLine\": \"#2fc25b\",\n \"downFill\": \"#2fc25b\" },\n\n \"average\": {\n \"show\": true,\n \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n \"day\": [5, 10, 20],\n \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"] } },\n\n\n \"markLine\": {\n \"type\": \"dash\",\n \"dashLength\": 5,\n \"data\": [\n {\n \"value\": 2150,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true },\n\n {\n \"value\": 2350,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true }] } } },\n\n\n\n\n\n \"mix\": {\n \"type\": \"mix\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true },\n\n \"yAxis\": {\n \"disabled\": false,\n \"disableGrid\": false,\n \"splitNumber\": 5,\n \"gridType\": \"dash\",\n \"dashLength\": 4,\n \"gridColor\": \"#CCCCCC\",\n \"padding\": 10,\n \"showTitle\": true,\n \"data\": [] },\n\n \"legend\": {},\n\n \"extra\": {\n \"mix\": {\n \"column\": {\n \"width\": 20 } } } },\n\n\n\n\n \"scatter\": {\n \"type\": \"scatter\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"dataLabel\": false,\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0 },\n\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\" },\n\n \"legend\": {},\n\n \"extra\": {\n \"scatter\": {} } },\n\n\n\n \"bubble\": {\n \"type\": \"bubble\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0,\n \"max\": 250 },\n\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"data\": [{\n \"min\": 0,\n \"max\": 150 }] },\n\n\n \"legend\": {},\n\n \"extra\": {\n \"bubble\": {\n \"border\": 2,\n \"opacity\": 0.5 } } } };var _default =\n\n\n\n\n\ncfu;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwiaW5kZXgiLCJvcHRzIiwidG9GaXhlZCIsInNlcmllcyIsIml0ZW0iLCJjYXRlZ29yeSIsImRhdGEiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoid0ZBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQUQsRUFBWSxTQUFaLEVBQXVCLFNBQXZCLEVBQWtDLFNBQWxDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLFNBQTlFLEVBQXlGLFNBQXpGLENBQWQ7O0FBRUE7QUFDQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLFNBQUQsRUFBWUMsVUFBWixFQUF5QjtBQUM5QyxNQUFJQyxJQUFJLEdBQUcsSUFBSUMsSUFBSixFQUFYO0FBQ0FELE1BQUksQ0FBQ0UsT0FBTCxDQUFhSixTQUFTLEdBQUcsSUFBekI7QUFDQSxNQUFJSyxDQUFDLEdBQUdILElBQUksQ0FBQ0ksV0FBTCxFQUFSO0FBQ0EsTUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQUwsS0FBa0IsQ0FBMUI7QUFDQUQsR0FBQyxHQUFHQSxDQUFDLEdBQUcsRUFBSixHQUFVLE1BQU1BLENBQWhCLEdBQXFCQSxDQUF6QjtBQUNBLE1BQUlFLENBQUMsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLEVBQVI7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RixFQXRCSCxFQTlnQkUsRUFBWixDOzs7Ozs7QUE2aUJlbUIsRyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuLy/kuovku7bovazmjaLlh73mlbDvvIzkuLvopoHnlKjkvZzmoLzlvI/ljJZ46L205Li65pe26Ze06L2077yM5qC55o2u6ZyA5rGC6Ieq6KGM5L+u5pS5XHJcbmNvbnN0IGZvcm1hdERhdGVUaW1lID0gKHRpbWVTdGFtcCwgcmV0dXJuVHlwZSk9PntcclxuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZGF0ZS5zZXRUaW1lKHRpbWVTdGFtcCAqIDEwMDApO1xyXG4gIHZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gIHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICBtID0gbSA8IDEwID8gKCcwJyArIG0pIDogbTtcclxuICB2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gIGQgPSBkIDwgMTAgPyAoJzAnICsgZCkgOiBkO1xyXG4gIHZhciBoID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gIGggPSBoIDwgMTAgPyAoJzAnICsgaCkgOiBoO1xyXG4gIHZhciBtaW51dGUgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICB2YXIgc2Vjb25kID0gZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgbWludXRlID0gbWludXRlIDwgMTAgPyAoJzAnICsgbWludXRlKSA6IG1pbnV0ZTtcclxuICBzZWNvbmQgPSBzZWNvbmQgPCAxMCA/ICgnMCcgKyBzZWNvbmQpIDogc2Vjb25kO1xyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2Z1bGwnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkICsgJyAnKyBoICsnOicgKyBtaW51dGUgKyAnOicgKyBzZWNvbmQ7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ3ktbS1kJyl7cmV0dXJuIHkgKyAnLScgKyBtICsgJy0nICsgZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGU7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2g6bTpzJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGUgKyc6JyArIHNlY29uZDt9XHJcbiAgcmV0dXJuIFt5LCBtLCBkLCBoLCBtaW51dGUsIHNlY29uZF07XHJcbn1cclxuXHJcbmNvbnN0IGNmdSA9IHtcclxuICAvL2RlbW90eXBl5Li66Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5LiA6Iis5LiN6ZyA6KaB6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5Y+q6ZyA6KaB5pS55qC56IqC54K55LiK5a+55bqU55qE57G75Z6L5Y2z5Y+vXHJcblx0XCJ0eXBlXCI6W1wicGllXCIsXCJyaW5nXCIsXCJyb3NlXCIsXCJ3b3JkXCIsXCJmdW5uZWxcIixcIm1hcFwiLFwiYXJjYmFyXCIsXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCIsXCJkZW1vdHlwZVwiXSxcclxuXHRcInJhbmdlXCI6W1wi6aW854q25Zu+XCIsXCLlnIbnjq/lm75cIixcIueOq+eRsOWbvlwiLFwi6K+N5LqR5Zu+XCIsXCLmvI/mlpflm75cIixcIuWcsOWbvlwiLFwi5ZyG5byn6L+b5bqm5p2hXCIsXCLmipjnur/lm75cIixcIuafseeKtuWbvlwiLFwi5bGx5bOw5Zu+XCIsXCLmnaHnirblm75cIixcIuWMuuWfn+WbvlwiLFwi6Zu36L6+5Zu+XCIsXCLku6rooajnm5hcIixcIkvnur/lm75cIixcIua3t+WQiOWbvlwiLFwi5pe26Ze06L205oqY57q/XCIsXCLml7bpl7TovbTljLrln59cIixcIuaVo+eCueWbvlwiLFwi5rCU5rOh5Zu+XCIsXCLoh6rlrprkuYnnsbvlnotcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L77yM5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcbiAgLy/oh6rlrprkuYnnsbvlnovml7bpnIDopoHms6jmhI9cInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCLnrYnml7bpl7TovbTvvIjnn6Lph4946L2077yJ57G75Zu+6KGo77yM5rKh5pyJY2F0ZWdvcmllc++8jOS4jemcgOimgeWKoOWFpWNhdGVnb3JpZXNcclxuXHRcImNhdGVnb3JpZXNcIjpbXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcImRlbW90eXBlXCJdLFxyXG4gIC8vaW5zdGFuY2XkuLrlrp7kvovlj5jph4/mib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcImluc3RhbmNlXCI6e30sXHJcbiAgLy9vcHRpb27kuLpvcHRz5Y+KZW9wdHPmib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcIm9wdGlvblwiOnt9LFxyXG4gIC8v5LiL6Z2i5piv6Ieq5a6a5LmJZm9ybWF06YWN572u77yM5Zug6ZmkSDXnq6/lpJbnmoTlhbbku5bnq6/ml6Dms5XpgJrov4dwcm9wc+S8oOmAkuWHveaVsO+8jOWPquiDvemAmui/h+atpOWxnuaAp+WvueW6lOS4i+agh+eahOaWueW8j+adpeabv+aNolxyXG4gIFwiZm9ybWF0dGVyXCI6e1xyXG4gICAgXCJ5QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInlBeGlzRGVtbzJcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsLnRvRml4ZWQoMil9LFxyXG4gICAgXCJ4QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5bm0Jzt9LFxyXG4gICAgXCJ4QXhpc0RlbW8yXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIGZvcm1hdERhdGVUaW1lKHZhbCwnaDptJyl9LFxyXG4gICAgXCJzZXJpZXNEZW1vMVwiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInRvb2x0aXBEZW1vMVwiOmZ1bmN0aW9uKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4PT0wKXtcclxuICAgICAgXHRyZXR1cm4gJ+maj+S+v+eUqCcraXRlbS5kYXRhKyflubQnXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICBcdHJldHVybiAn5YW25LuW5oiR5rKh5pS5JytpdGVtLmRhdGErJ+WkqSdcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFwicGllRGVtb1wiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4ICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIHJldHVybiBzZXJpZXNbaW5kZXhdLm5hbWUrJ++8micrc2VyaWVzW2luZGV4XS5kYXRhKyflhYMnXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhvcHRz5Y+C5pWw77yM5Lya5bCGZGVtb3R5cGXkuI5vcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIC8v5oiR6L+Z6YeM5oqK5puy57q/5Zu+5b2T5YGa5LqG6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5oKo5Y+v5Lul5qC55o2u6ZyA6KaB6ZqP5oSP5oyH5a6a57G75Z6L5oiW6YWN572uXHJcbiAgICBcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gICAgXCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICAgIFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJsaW5lXCI6IHtcclxuICAgIFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gICAgXHRcdFwid2lkdGhcIjogMlxyXG4gICAgXHR9LFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcInBpZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInBpZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJwaWVcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJpbmdcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyaW5nXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwicm90YXRlXCI6IGZhbHNlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuaUtuebiueOh1wiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIjcwJVwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzdjYjVlY1wiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmluZ1wiOiB7XHJcblx0XHRcdFx0XCJyaW5nV2lkdGhcIjozMCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDMsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicm9zZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInJvc2VcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcImxlZnRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJvc2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFx0XHRcIm1pblJhZGl1c1wiOiA1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogZmFsc2UsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwid29yZFwiOntcclxuXHRcdFwidHlwZVwiOiBcIndvcmRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJ3b3JkXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJub3JtYWxcIixcclxuXHRcdFx0XHRcImF1dG9Db2xvcnNcIjogZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjp7XHJcblx0XHRcInR5cGVcIjogXCJmdW5uZWxcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZnVubmVsXCI6IHtcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC4zLFxyXG5cdFx0XHRcdFwiYWN0aXZlV2lkdGhcIjogMTAsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDEsXHJcblx0XHRcdFx0XCJsYWJlbEFsaWduXCI6IFwicmlnaHRcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtYXBcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtYXBcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzAsMCwwLDBdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1hcFwiOiB7XHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDEsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDAuNixcclxuXHRcdFx0XHRcImFjdGl2ZUJvcmRlckNvbG9yXCI6IFwiI0YwNDg2NFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbENvbG9yXCI6IFwiI0ZBQ0MxNFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbE9wYWNpdHlcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJhcmNiYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmNiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi55m+5YiG5q+UXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMDBGRjAwXCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi6buY6K6k5qCH6aKYXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmNiYXJcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDEyLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI0U5RTlFOVwiLFxyXG5cdFx0XHRcdFwic3RhcnRBbmdsZVwiOiAwLjc1LFxyXG5cdFx0XHRcdFwiZW5kQW5nbGVcIjogMC4yNSxcclxuXHRcdFx0XHRcImdhcFwiOiAyXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibGluZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImxpbmVcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcInRsaW5lXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibGluZVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwidGFyZWFcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJhcmVhXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImFyZWFcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuICBcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuICBcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgXHRcdFx0XCJncmFkaWVudFwiOiB0cnVlXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImNvbHVtblwiOntcclxuXHRcdFwidHlwZVwiOiBcImNvbHVtblwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMzAsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwibW91bnRcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJtb3VudFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibW91bnRcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcIm1vdW50XCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFJhdGlvXCI6IDEuNSxcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwiYmFyXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwzMCwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOmZhbHNlLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwiYXhpc0xpbmVcIjpmYWxzZVxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJiYXJcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuICBcdFx0XHRcIm1ldGVyQm9yZGVcIjogMSxcclxuICBcdFx0XHRcIm1ldGVyRmlsbENvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImFyZWFcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmVhXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiZ3JhZGllbnRcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmFkYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmFkYXJcIjoge1xyXG5cdFx0XHRcdFwiZ3JpZFR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcdFwiZ3JpZENvdW50XCI6IDMsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcIm1heFwiOiAyMDBcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZ2F1Z2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJnYXVnZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI2NkttL0hcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMyZmMyNWJcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IDUwXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuWunuaXtumAn+W6plwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzE4OTBmZlwiLFxyXG5cdFx0XHRcIm9mZnNldFlcIjogLTUwXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZ2F1Z2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwibGFiZWxDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJzdGFydE51bWJlclwiOiAwLFxyXG5cdFx0XHRcdFwiZW5kTnVtYmVyXCI6IDEwMCxcclxuXHRcdFx0XHRcImxhYmVsRm9ybWF0XCI6IFwiXCIsXHJcblx0XHRcdFx0XCJzcGxpdExpbmVcIjoge1xyXG5cdFx0XHRcdFx0XCJmaXhSYWRpdXNcIjogMCxcclxuXHRcdFx0XHRcdFwic3BsaXROdW1iZXJcIjogMTAsXHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcdFwiY2hpbGROdW1iZXJcIjogNSxcclxuXHRcdFx0XHRcdFwiY2hpbGRXaWR0aFwiOiAxMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJwb2ludGVyXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjQsXHJcblx0XHRcdFx0XHRcImNvbG9yXCI6IFwiYXV0b1wiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImNhbmRsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImNhbmRsZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImVuYWJsZVNjcm9sbFwiOiB0cnVlLFxyXG5cdFx0XCJlbmFibGVNYXJrTGluZVwiOiB0cnVlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJsYWJlbENvdW50XCI6IDQsXHJcblx0XHRcdFwiaXRlbUNvdW50XCI6IDQwLFxyXG5cdFx0XHRcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwic29saWRcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwic2Nyb2xsU2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInNjcm9sbEFsaWduXCI6IFwibGVmdFwiLFxyXG5cdFx0XHRcInNjcm9sbENvbG9yXCI6IFwiI0E2QTZBNlwiLFxyXG5cdFx0XHRcInNjcm9sbEJhY2tncm91bmRDb2xvclwiOiBcIiNFRkVCRUZcIlxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjoge1xyXG5cdFx0XHRcdFx0XCJ1cExpbmVcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcInVwRmlsbFwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFwiZG93bkxpbmVcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFx0XHRcImRvd25GaWxsXCI6IFwiIzJmYzI1YlwiXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRcImF2ZXJhZ2VcIjoge1xyXG5cdFx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XHRcIm5hbWVcIjogW1wiTUE1XCIsXCJNQTEwXCIsXCJNQTMwXCJdLFxyXG5cdFx0XHRcdFx0XCJkYXlcIjogWzUsMTAsMjBdLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBbXCIjMTg5MGZmXCIsXCIjMmZjMjViXCIsXCIjZmFjYzE0XCJdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcIm1hcmtMaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkYXNoXCIsXHJcblx0XHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDUsXHJcblx0XHRcdFx0XCJkYXRhXCI6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMTUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMzUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtaXhcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtaXhcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJkaXNhYmxlZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJzcGxpdE51bWJlclwiOiA1LFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcImRhc2hMZW5ndGhcIjogNCxcclxuXHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFwicGFkZGluZ1wiOiAxMCxcclxuXHRcdFx0XCJzaG93VGl0bGVcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1peFwiOiB7XHJcblx0XHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAyMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwic2NhdHRlclwiOntcclxuXHRcdFwidHlwZVwiOiBcInNjYXR0ZXJcIixcclxuXHRcdFwiY29sb3JcIjpjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOlsxNSwxNSwwLDE1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6ZmFsc2UsXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjBcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJzY2F0dGVyXCI6IHtcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9LFxyXG5cdFwiYnViYmxlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYnViYmxlXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwibWF4XCI6MjUwXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJkYXRhXCI6W3tcclxuICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgXCJtYXhcIjoxNTBcclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwiYnViYmxlXCI6IHtcclxuICAgICAgICBcImJvcmRlclwiOjIsXHJcbiAgICAgICAgXCJvcGFjaXR5XCI6IDAuNSxcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNmdTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n"); /***/ }), /* 70 */ /*!**********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\n * uCharts®\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\n * 复制使用请保留本段注释,感谢支持开源!\n * \n * uCharts®官方网站\n * https://www.uCharts.cn\n * \n * 开源地址:\n * https://gitee.com/uCharts/uCharts\n * \n * uni-app插件市场地址:\n * http://ext.dcloud.net.cn/plugin?id=271\n * \n */\n\n// 通用配置项\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\nvar cfe = {\n //demotype为自定义图表类型\n \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的\"demotype\"\n \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //instance为实例变量承载属性,option为eopts承载属性,不要删除\n \"instance\": {},\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"tooltipDemo1\": function tooltipDemo1(res) {\n var result = '';\n for (var i in res) {\n if (i == 0) {\n result += res[i].axisValueLabel + '年销售额';\n }\n var value = '--';\n if (res[i].data !== null) {\n value = res[i].data;\n }\n\n\n\n\n\n result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元';\n\n }\n return result;\n },\n legendFormat: function legendFormat(name) {\n return \"自定义图例+\" + name;\n },\n yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n return value + '元';\n },\n seriesFormatDemo: function seriesFormatDemo(res) {\n return res.name + '年' + res.value + '元';\n } },\n\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。\n \"demotype\": {\n \"color\": color\n //在这里填写echarts的option即可\n },\n\n //下面是自定义配置,请添加项目所需的通用配置\n \"column\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'axis' },\n\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40 },\n\n \"legend\": {\n \"bottom\": 'left' },\n\n \"toolbox\": {\n \"show\": false },\n\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } },\n\n\n \"boundaryGap\": true,\n \"data\": [] },\n\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false },\n\n \"axisLabel\": {\n \"color\": '#666666' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } } },\n\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'bar',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top' } } },\n\n\n\n \"line\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'axis' },\n\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40 },\n\n \"legend\": {\n \"top\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc' } },\n\n\n \"toolbox\": {\n \"show\": false },\n\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#CCCCCC' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } },\n\n\n \"boundaryGap\": false,\n \"data\": [] },\n\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false },\n\n \"axisLabel\": {\n \"color\": '#CCCCCC' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } } },\n\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": false,\n \"color\": \"#666666\",\n \"position\": 'top' } } },\n\n\n\n \"area\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'axis' },\n\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40 },\n\n \"legend\": {\n \"bottom\": 'left' },\n\n \"toolbox\": {\n \"show\": false },\n\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } },\n\n\n \"boundaryGap\": true,\n \"data\": [] },\n\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false },\n\n \"axisLabel\": {\n \"color\": '#666666' },\n\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC' } } },\n\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"areaStyle\": {},\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top' } } },\n\n\n\n \"pie\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'item' },\n\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15 },\n\n \"legend\": {\n \"bottom\": 'left' },\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": '50%',\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top' } } },\n\n\n\n \"ring\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'item' },\n\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15 },\n\n \"legend\": {\n \"bottom\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc' } },\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": ['30%', '60%'],\n \"avoidLabelOverlap\": false,\n \"label\": {\n \"show\": false,\n \"color\": \"#FFF\",\n \"position\": 'top' },\n\n \"labelLine\": {\n \"show\": true } } },\n\n\n\n \"rose\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'item' },\n\n \"legend\": {\n \"top\": 'bottom' },\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": \"55%\",\n \"center\": ['50%', '50%'],\n \"roseType\": 'area' } },\n\n\n \"funnel\": {\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"tooltip\": {\n \"trigger\": 'item',\n \"formatter\": \"{b} : {c}%\" },\n\n \"legend\": {\n \"top\": 'bottom' },\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'funnel',\n \"left\": '10%',\n \"top\": 60,\n \"bottom\": 60,\n \"width\": '80%',\n \"min\": 0,\n \"max\": 100,\n \"minSize\": '0%',\n \"maxSize\": '100%',\n \"sort\": 'descending',\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": 'inside' },\n\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": 'solid' } },\n\n\n \"itemStyle\": {\n \"bordercolor\": '#fff',\n \"borderwidth\": 1 },\n\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20 } },\n\n\n \"data\": [] } },\n\n\n \"gauge\": {\n \"color\": color,\n \"tooltip\": {\n \"formatter\": '{a}
{b} : {c}%' },\n\n \"seriesTemplate\": {\n \"name\": '业务指标',\n \"type\": 'gauge',\n \"detail\": { \"formatter\": '{value}%' },\n \"data\": [{ \"value\": 50, \"name\": '完成率' }] } },\n\n\n \"candle\": {\n \"xAxis\": {\n \"data\": [] },\n\n \"yAxis\": {},\n \"color\": color,\n \"title\": {\n \"text\": '' },\n\n \"dataZoom\": [{\n \"type\": 'inside',\n \"xAxisIndex\": [0, 1],\n \"start\": 10,\n \"end\": 100 },\n\n {\n \"show\": true,\n \"xAxisIndex\": [0, 1],\n \"type\": 'slider',\n \"bottom\": 10,\n \"start\": 10,\n \"end\": 100 }],\n\n\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'k',\n \"data\": [] } } };var _default =\n\n\n\n\ncfe;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6IndGQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQUFkOztBQUVBLElBQU1DLEdBQUcsR0FBRztBQUNWO0FBQ0QsVUFBUSxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLE1BQWhCLEVBQXdCLFFBQXhCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9ELE1BQXBELEVBQTRELE9BQTVELEVBQXFFLE9BQXJFLEVBQTZFLFFBQTdFLEVBQXNGLFVBQXRGLENBRkc7QUFHVjtBQUNELGdCQUFjLENBQUMsTUFBRCxFQUFTLFFBQVQsRUFBbUIsTUFBbkIsRUFBMkIsT0FBM0IsRUFBb0MsT0FBcEMsRUFBNkMsUUFBN0MsRUFBc0QsVUFBdEQsQ0FKSDtBQUtWO0FBQ0QsY0FBWSxFQU5EO0FBT1gsWUFBVSxFQVBDO0FBUVY7QUFDQSxlQUFZO0FBQ1Ysb0JBQWUsc0JBQVNDLEdBQVQsRUFBYTtBQUMxQixVQUFJQyxNQUFNLEdBQUcsRUFBYjtBQUNBLFdBQUssSUFBSUMsQ0FBVCxJQUFjRixHQUFkLEVBQW1CO0FBQ2xCLFlBQUlFLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDWEQsZ0JBQU0s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QVNBLEtBREQ7QUFFUixlQUFXO0FBQ0wsbUJBQWEscUJBRFIsRUFGSDs7QUFLUixzQkFBa0I7QUFDakIsY0FBUSxNQURTO0FBRWQsY0FBUSxPQUZNO0FBR2QsZ0JBQVUsRUFBQyxhQUFhLFVBQWQsRUFISTtBQUlkLGNBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBVixFQUFjLFFBQVEsS0FBdEIsRUFBRCxDQUpNLEVBTFYsRUF4V0U7OztBQW9YWCxZQUFVO0FBQ1QsYUFBUztBQUNSLGNBQVEsRUFEQSxFQURBOztBQUlULGFBQVMsRUFKQTtBQUtULGFBQVNBLEtBTEE7QUFNVCxhQUFTO0FBQ1IsY0FBUSxFQURBLEVBTkE7O0FBU1QsZ0JBQVksQ0FBQztBQUNYLGNBQVEsUUFERztBQUVYLG9CQUFjLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FGSDtBQUdYLGVBQVMsRUFIRTtBQUlYLGFBQU8sR0FKSSxFQUFEOztBQU1YO0FBQ0MsY0FBUSxJQURUO0FBRUMsb0JBQWMsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUZmO0FBR0MsY0FBUSxRQUhUO0FBSUMsZ0JBQVUsRUFKWDtBQUtDLGVBQVMsRUFMVjtBQU1DLGFBQU8sR0FOUixFQU5XLENBVEg7OztBQXdCVCxzQkFBa0I7QUFDakIsY0FBUSxFQURTO0FBRWpCLGNBQVEsR0FGUztBQUdqQixjQUFRLEVBSFMsRUF4QlQsRUFwWEMsRUFBWixDOzs7OztBQW9aZUMsRyIsImZpbGUiOiI3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiB1Q2hhcnRzwq5cbiAqIOmrmOaAp+iDvei3qOW5s+WPsOWbvuihqOW6k++8jOaUr+aMgUg144CBQVBQ44CB5bCP56iL5bqP77yI5b6u5L+hL+aUr+S7mOWunS/nmb7luqYv5aS05p2hL1FRLzM2MO+8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxuICog5aSN5Yi25L2/55So6K+35L+d55WZ5pys5q615rOo6YeK77yM5oSf6LCi5pSv5oyB5byA5rqQ77yBXG4gKiBcbiAqIHVDaGFydHPCruWumOaWuee9keermVxuICogaHR0cHM6Ly93d3cudUNoYXJ0cy5jblxuICogXG4gKiDlvIDmupDlnLDlnYA6XG4gKiBodHRwczovL2dpdGVlLmNvbS91Q2hhcnRzL3VDaGFydHNcbiAqIFxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxuICogaHR0cDovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yNzFcbiAqIFxuICovXG5cbi8vIOmAmueUqOmFjee9rumhuVxuXG4vLyDkuLvpopjpopzoibLphY3nva7vvJrlpoLmr4/kuKrlm77ooajnsbvlnovpnIDopoHkuI3lkIzkuLvpopjvvIzor7flnKjlr7nlupTlm77ooajnsbvlnovkuIrmm7TmlLljb2xvcuWxnuaAp1xuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XG5cbmNvbnN0IGNmZSA9IHtcbiAgLy9kZW1vdHlwZeS4uuiHquWumuS5ieWbvuihqOexu+Wei1xuXHRcInR5cGVcIjogW1wicGllXCIsIFwicmluZ1wiLCBcInJvc2VcIiwgXCJmdW5uZWxcIiwgXCJsaW5lXCIsIFwiY29sdW1uXCIsIFwiYXJlYVwiLCBcInJhZGFyXCIsIFwiZ2F1Z2VcIixcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXG4gIC8v5aKe5Yqg6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5aaC5p6c6ZyA6KaBY2F0ZWdvcmllc++8jOivt+WcqOi/memHjOWKoOWFpeaCqOeahOWbvuihqOexu+Wei+S+i+WmguacgOWQjueahFwiZGVtb3R5cGVcIlxuXHRcImNhdGVnb3JpZXNcIjogW1wibGluZVwiLCBcImNvbHVtblwiLCBcImFyZWFcIiwgXCJyYWRhclwiLCBcImdhdWdlXCIsIFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jG9wdGlvbuS4umVvcHRz5om/6L295bGe5oCn77yM5LiN6KaB5Yig6ZmkXG5cdFwiaW5zdGFuY2VcIjoge30sXG5cdFwib3B0aW9uXCI6IHt9LFxuICAvL+S4i+mdouaYr+iHquWumuS5iWZvcm1hdOmFjee9ru+8jOWboOmZpEg156uv5aSW55qE5YW25LuW56uv5peg5rOV6YCa6L+HcHJvcHPkvKDpgJLlh73mlbDvvIzlj6rog73pgJrov4fmraTlsZ7mgKflr7nlupTkuIvmoIfnmoTmlrnlvI/mnaXmm7/mjaJcbiAgXCJmb3JtYXR0ZXJcIjp7XG4gICAgXCJ0b29sdGlwRGVtbzFcIjpmdW5jdGlvbihyZXMpe1xuICAgICAgbGV0IHJlc3VsdCA9ICcnXG4gICAgICBmb3IgKGxldCBpIGluIHJlcykge1xuICAgICAgXHRpZiAoaSA9PSAwKSB7XG4gICAgICBcdFx0cmVzdWx0ICs9IHJlc1tpXS5heGlzVmFsdWVMYWJlbCArICflubTplIDllK7pop0nXG4gICAgICBcdH1cbiAgICAgIFx0bGV0IHZhbHVlID0gJy0tJ1xuICAgICAgXHRpZiAocmVzW2ldLmRhdGEgIT09IG51bGwpIHtcbiAgICAgIFx0XHR2YWx1ZSA9IHJlc1tpXS5kYXRhXG4gICAgICBcdH1cblxuXG5cbiAgICAgIFx0XG5cbiAgICAgIFx0cmVzdWx0ICs9ICc8YnIvPicgKyByZXNbaV0ubWFya2VyICsgcmVzW2ldLnNlcmllc05hbWUgKyAn77yaJyArIHZhbHVlICsgJyDkuIflhYMnXG5cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICBsZWdlbmRGb3JtYXQ6ZnVuY3Rpb24obmFtZSl7XG4gICAgICByZXR1cm4gXCLoh6rlrprkuYnlm77kvosrXCIrbmFtZTtcbiAgICB9LFxuICAgIHlBeGlzRm9ybWF0RGVtbzpmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7XG4gICAgICByZXR1cm4gdmFsdWUgKyAn5YWDJztcbiAgICB9LFxuICAgIHNlcmllc0Zvcm1hdERlbW86ZnVuY3Rpb24ocmVzKXtcbiAgICAgIHJldHVybiByZXMubmFtZSArICflubQnICsgcmVzLnZhbHVlICsgJ+WFgyc7XG4gICAgfVxuICB9LFxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhlb3B0c+WPguaVsO+8jOS8muWwhmRlbW90eXBl5LiOZW9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcbiAgXCJkZW1vdHlwZVwiOntcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxuICAgIC8v5Zyo6L+Z6YeM5aGr5YaZZWNoYXJ0c+eahG9wdGlvbuWNs+WPr1xuICAgIFxuICB9LFxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxuXHRcImNvbHVtblwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnYXhpcydcblx0XHR9LFxuXHRcdFwiZ3JpZFwiOiB7XG5cdFx0XHRcInRvcFwiOiAzMCxcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxuXHRcdFx0XCJyaWdodFwiOiAxNSxcblx0XHRcdFwibGVmdFwiOiA0MFxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxuXHRcdH0sXG5cdFx0XCJ0b29sYm94XCI6IHtcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHR9LFxuXHRcdFwieEF4aXNcIjoge1xuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiB0cnVlLFxuXHRcdFx0XCJkYXRhXCI6IFtdXG5cdFx0fSxcblx0XHRcInlBeGlzXCI6IHtcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxuXHRcdFx0XCJheGlzVGlja1wiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHRcdH0sXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ2JhcicsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcImJhcndpZHRoXCI6IDIwLFxuXHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcImxpbmVcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXG5cdFx0fSxcblx0XHRcImdyaWRcIjoge1xuXHRcdFx0XCJ0b3BcIjogMzAsXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcblx0XHRcdFwicmlnaHRcIjogMTUsXG5cdFx0XHRcImxlZnRcIjogNDBcblx0XHR9LFxuXHRcdFwibGVnZW5kXCI6IHtcblx0XHRcdFwidG9wXCI6ICdsZWZ0Jyxcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcblx0XHRcdFx0XCJjb2xvclwiOicjY2NjY2NjJ1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0XCJ0b29sYm94XCI6IHtcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHR9LFxuXHRcdFwieEF4aXNcIjoge1xuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiBmYWxzZSxcblx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdH0sXG5cdFx0XCJ5QXhpc1wiOiB7XG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXG5cdFx0XHRcImxhYmVsXCI6IHtcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcImFyZWFcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXG5cdFx0fSxcblx0XHRcImdyaWRcIjoge1xuXHRcdFx0XCJ0b3BcIjogMzAsXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcblx0XHRcdFwicmlnaHRcIjogMTUsXG5cdFx0XHRcImxlZnRcIjogNDBcblx0XHR9LFxuXHRcdFwibGVnZW5kXCI6IHtcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0Jyxcblx0XHR9LFxuXHRcdFwidG9vbGJveFwiOiB7XG5cdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0fSxcblx0XHRcInhBeGlzXCI6IHtcblx0XHRcdFwidHlwZVwiOiAnY2F0ZWdvcnknLFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdFwiYm91bmRhcnlHYXBcIjogdHJ1ZSxcblx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdH0sXG5cdFx0XCJ5QXhpc1wiOiB7XG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwiYXJlYVN0eWxlXCI6IHt9LFxuXHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcInBpZVwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbSdcblx0XHR9LFxuXHRcdFwiZ3JpZFwiOiB7XG5cdFx0XHRcInRvcFwiOiA0MCxcblx0XHRcdFwiYm90dG9tXCI6IDMwLFxuXHRcdFx0XCJyaWdodFwiOiAxNSxcblx0XHRcdFwibGVmdFwiOiAxNVxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcInJhZGl1c1wiOiAnNTAlJyxcblx0XHRcdFwibGFiZWxcIjoge1xuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcblx0XHRcdH0sXG5cdFx0fSxcblx0fSxcblx0XCJyaW5nXCI6IHtcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxuXHRcdFwidGl0bGVcIjoge1xuXHRcdFx0XCJ0ZXh0XCI6ICcnXG5cdFx0fSxcblx0XHRcInRvb2x0aXBcIjoge1xuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xuXHRcdH0sXG5cdFx0XCJncmlkXCI6IHtcblx0XHRcdFwidG9wXCI6IDQwLFxuXHRcdFx0XCJib3R0b21cIjogMzAsXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxuXHRcdFx0XCJsZWZ0XCI6IDE1XG5cdFx0fSxcblx0XHRcImxlZ2VuZFwiOiB7XG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXG5cdFx0XHRcInRleHRTdHlsZVwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyNjY2NjY2MnXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcblx0XHRcdFwibmFtZVwiOiAnJyxcblx0XHRcdFwidHlwZVwiOiAncGllJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwicmFkaXVzXCI6IFsnMzAlJywgJzYwJSddLFxuXHRcdFx0XCJhdm9pZExhYmVsT3ZlcmxhcFwiOiBmYWxzZSxcblx0XHRcdFwibGFiZWxcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG4gICAgICAgIFwiY29sb3JcIjogXCIjRkZGXCIsXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXG5cdFx0XHR9LFxuXHRcdFx0XCJsYWJlbExpbmVcIjoge1xuXHRcdFx0XHRcInNob3dcIjogdHJ1ZVxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcInJvc2VcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXG5cdFx0fSxcblx0XHRcImxlZ2VuZFwiOiB7XG5cdFx0XHRcInRvcFwiOiAnYm90dG9tJ1xuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcInJhZGl1c1wiOiBcIjU1JVwiLFxuXHRcdFx0XCJjZW50ZXJcIjogWyc1MCUnLCAnNTAlJ10sXG5cdFx0XHRcInJvc2VUeXBlXCI6ICdhcmVhJyxcblx0XHR9LFxuXHR9LFxuXHRcImZ1bm5lbFwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbScsXG5cdFx0XHRcImZvcm1hdHRlclwiOiBcIntifSA6IHtjfSVcIlxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdmdW5uZWwnLFxuXHRcdFx0XCJsZWZ0XCI6ICcxMCUnLFxuXHRcdFx0XCJ0b3BcIjogNjAsXG5cdFx0XHRcImJvdHRvbVwiOiA2MCxcblx0XHRcdFwid2lkdGhcIjogJzgwJScsXG5cdFx0XHRcIm1pblwiOiAwLFxuXHRcdFx0XCJtYXhcIjogMTAwLFxuXHRcdFx0XCJtaW5TaXplXCI6ICcwJScsXG5cdFx0XHRcIm1heFNpemVcIjogJzEwMCUnLFxuXHRcdFx0XCJzb3J0XCI6ICdkZXNjZW5kaW5nJyxcblx0XHRcdFwiZ2FwXCI6IDIsXG5cdFx0XHRcImxhYmVsXCI6IHtcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ2luc2lkZSdcblx0XHRcdH0sXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XG5cdFx0XHRcdFwibGVuZ3RoXCI6IDEwLFxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAxLFxuXHRcdFx0XHRcdFwidHlwZVwiOiAnc29saWQnXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRcIml0ZW1TdHlsZVwiOiB7XG5cdFx0XHRcdFwiYm9yZGVyY29sb3JcIjogJyNmZmYnLFxuXHRcdFx0XHRcImJvcmRlcndpZHRoXCI6IDFcblx0XHRcdH0sXG5cdFx0XHRcImVtcGhhc2lzXCI6IHtcblx0XHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFx0XCJmb250U2l6ZVwiOiAyMFxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJkYXRhXCI6IFtdLFxuXHRcdH0sXG5cdH0sXG5cdFwiZ2F1Z2VcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0b29sdGlwXCI6IHtcbiAgICAgICAgXCJmb3JtYXR0ZXJcIjogJ3thfSA8YnIvPntifSA6IHtjfSUnXG4gICAgfSxcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcblx0XHRcdFwibmFtZVwiOiAn5Lia5Yqh5oyH5qCHJyxcbiAgICAgIFwidHlwZVwiOiAnZ2F1Z2UnLFxuICAgICAgXCJkZXRhaWxcIjoge1wiZm9ybWF0dGVyXCI6ICd7dmFsdWV9JSd9LFxuICAgICAgXCJkYXRhXCI6IFt7XCJ2YWx1ZVwiOiA1MCwgXCJuYW1lXCI6ICflrozmiJDnjocnfV1cblx0XHR9LFxuXHR9LFxuXHRcImNhbmRsZVwiOiB7XG5cdFx0XCJ4QXhpc1wiOiB7XG5cdFx0XHRcImRhdGFcIjogW11cblx0XHR9LFxuXHRcdFwieUF4aXNcIjoge30sXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJkYXRhWm9vbVwiOiBbe1xuXHRcdFx0XHRcInR5cGVcIjogJ2luc2lkZScsXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXG5cdFx0XHRcdFwidHlwZVwiOiAnc2xpZGVyJyxcblx0XHRcdFx0XCJib3R0b21cIjogMTAsXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxuXHRcdFx0fVxuXHRcdF0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ2snLFxuXHRcdFx0XCJkYXRhXCI6IFtdLFxuXHRcdH0sXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2ZlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n"); /***/ }), /* 71 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/a1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/a1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///71\n"); /***/ }), /* 72 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/b1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/b1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///72\n"); /***/ }), /* 73 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/c1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/c1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n"); /***/ }), /* 74 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/d1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/d1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZDEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///74\n"); /***/ }), /* 75 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/g1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/g1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijc1LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///75\n"); /***/ }), /* 76 */ /*!***************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 77);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJyQixDQUFnQiw2ckJBQUcsRUFBQyIsImZpbGUiOiI3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///76\n"); /***/ }), /* 77 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 78));\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 101));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { series: [], homeViewShow: true, infoViewShow: false, errorInfoViewShow: false, homeMode: [], infoMode: [], errorInfoMode: [], baseInfo: { xDistance: 1, yDistance: 2, xDuration: 3, yDuration: 4, usedPr: 50, used: 3537 }, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, duration: 1000, calendar: '', ringOpts: {}, chartsDataLine1: {}, chartsDataPie2: {}, fontSize: '', height: '', showCharts: false, ejectShow: false, baseIP: '', basePort: '', baseLedId: '', baseCrnId: '', info: null, error: null, infoType: 0, text: '' };}, onShow: function onShow() {// 隐藏时间,电量,信号等\n plus.navigator.setFullscreen(true);}, onLoad: function onLoad() {var _this = this;this.getServerData();this.getDate();setInterval(function () {_this.getDate();_this.getInfo();_this.getError();_this.controller();}, 1000); // setInterval(()=>{\n // \tthis.controller()\n // },5000)\n }, methods: { getUrl: function getUrl() {this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;}, getServerData: function getServerData() {this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));this.chartsDataPie2 = JSON.parse(JSON.stringify(_demodata.default.PieA));}, getInfo: function getInfo() {var that = this;var result = _data.default.dataYYY;var res = result.data;__f__(\"log\", res, \" at pages/home/home.vue:365\");if (res.data && res.data !== \"\") {if (this.infoType == 2) {return;}this.infoType = 1;this.text = res;__f__(\"log\", '*******', \" at pages/home/home.vue:372\");} else {this.infoType = 0;}}, getError: function getError() {var that = this;var result = _data.default.dataEEE;var res = result.data;__f__(\"log\", res, \" at pages/home/home.vue:381\");if (res.data && res.data !== \"\") {this.infoType = 2;this.text = res;} else {if (this.infoType == 1) {return;}this.infoType = 0;}}, // 控制器\n controller: function controller() {__f__(\"log\", this.infoType, \" at pages/home/home.vue:394\");switch (this.infoType) {case 1:this.homeViewShow = false;this.infoViewShow = true;this.errorInfoViewShow = false;this.infoMode = ['fade', 'slide-bottom'];return;case 2:this.homeViewShow = false;this.infoViewShow = false;this.errorInfoViewShow = true;this.infoMode = ['fade', 'slide-bottom'];return;default:this.homeViewShow = true;this.infoViewShow = false;this.errorInfoViewShow = false;this.infoMode = ['fade', 'slide-bottom'];return;}}, // 主屏幕\n handle: function handle(type) {this.homeViewShow = !this.homeViewShow;this.modeClass = type;}, // 拣料\n handle1: function handle1(type) {this.infoViewShow = !this.infoViewShow;this.modeClass = type;}, // 异常\n handle2: function handle2(type) {this.errorInfoViewShow = !this.errorInfoViewShow;this.modeClass = type;}, // 配置\n ejected: function ejected() {this.ejectShow = true;}, // 取消配置\n ejectClose: function ejectClose() {this.ejectShow = false;}, // 确认配置\n ejectConfirm: function ejectConfirm() {uni.setStorageSync('BaseIp', this.baseIP);uni.setStorageSync('BaseLedId', this.baseLedId);uni.setStorageSync('BasePort', this.basePort);uni.setStorageSync('BaseCrnId', this.baseCrnId);this.getUrl();this.ejectShow = false;}, // 日历\n getDate: function getDate() {var dt = new Date();var year, month, day, hours, minutes, seconds, weeks;year = dt.getFullYear();month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();weeks = dt.getDay();switch (weeks) {case 0:weeks = \"星期日\";break;case 1:weeks = \"星期一\";break;case 2:weeks = \"星期二\";break;case 3:weeks = \"星期三\";break;case 4:weeks = \"星期四\";break;case 5:weeks = \"星期五\";break;default:weeks = \"星期六\";}this.calendar = year + \"年\" + month + \"月\" + day + \"日 \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;}, getDateFormat: function getDateFormat(value) {var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;var d = date.getDate();var newDate = m + '-' + d;return newDate;}, /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/line/charts\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];that.chartsData.Line.series = res.data.rows;}} });}, /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/loc/rep\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Pie.series[0].data = res.data.pie;that.stockCount = res.data.stockCunt;that.emptyCount = res.data.emptyCount;that.noneCount = res.data.noneCount;that.used = res.data.used;that.usedPr = res.data.usedPr;}} });}, getOther: function getOther() {var that = this;uni.request({ // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\", data: { crnId: that.baseCrnId, ledId: 1 }, success: function success(result) {__f__(\"log\", result, \" at pages/home/home.vue:526\");var res = result.data;if (res.code === 200) {that.xDistance = res.data.xDistance;that.yDistance = res.data.yDistance;that.xDuration = res.data.xDuration;that.yDuration = res.data.yDuration;} else if (res.code === 403) {} else {}} });} } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1UkE7QUFDQSw0Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFDQSxFQUNBLElBREEsa0JBQ0EsQ0FDQSxTQUNBLFVBREEsRUFFQSxrQkFGQSxFQUdBLG1CQUhBLEVBSUEsd0JBSkEsRUFLQSxZQUxBLEVBTUEsWUFOQSxFQU9BLGlCQVBBLEVBUUEsWUFDQSxZQURBLEVBRUEsWUFGQSxFQUdBLFlBSEEsRUFJQSxZQUpBLEVBS0EsVUFMQSxFQU1BLFVBTkEsRUFSQSxFQWdCQSxjQUNBLFVBQ0EsZ0JBREEsRUFFQSxZQUZBLEVBREEsRUFLQSxTQUNBLGFBQ0EsVUFEQSxHQURBLEVBTEEsRUFoQkEsRUEyQkEs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OEJBQ0EsQ0FDQSxDQWJBLElBZUEsQ0FuS0EsRUFvS0EsUUFwS0Esc0JBb0tBLENBQ0EsZ0JBQ0EsY0FDQTtBQUNBLDhDQUZBLEVBR0EsUUFDQSxxQkFEQSxFQUVBLFFBRkEsRUFIQSxFQU9BLE9BUEEsbUJBT0EsTUFQQSxFQU9BLENBQ0Esb0RBQ0Esc0JBQ0EsdUJBQ0Esb0NBQ0Esb0NBQ0Esb0NBQ0Esb0NBQ0EsQ0FMQSxNQUtBLHVCQUVBLENBRkEsTUFFQSxDQUVBLENBQ0EsQ0FwQkEsSUFzQkEsQ0E1TEEsRUF0RUEsRSIsImZpbGUiOiI3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0PCEtLSDkuLvop4blm74gLS0+XHJcblx0XHQ8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImhvbWVNb2RlXCIgOnNob3c9XCJob21lVmlld1Nob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHRcdDx0ZXh0PuiHquWKqOS7k+W6k1dDU+ebkeaOp+W5s+WPsDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDml6XljoYgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3tjYWxlbmRhcn19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDkuLvkvZMgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbS1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuiHquWKqOWMlueri+S9k+S7k+W6kzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+QXV0b21hdGljIFN0b3JhZ2VhbmQgUmV0cmlldmFsIFN5c3RlbTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRleHRcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCI+5Yip55So56uL5L2T5LuT5bqT6K6+5aSH5Y+v5a6e546w5LuT5bqT6auY5bGC5ZCI55CG5YyW44CB5a2Y5Y+W6Ieq5Yqo5YyW44CB5pON5L2c566A5L6/5YyW77yb6Ieq5Yqo5YyW56uL5L2T5LuT5bqT5piv5b2T5YmN5oqA5pyv5rC05bmz6L6D6auY55qE5b2i5byP44CC6Ieq5Yqo5YyW56uL5L2T5LuT5bqT55qE5Li75L2T55Sx6LSn5p6244CB5be36YGT5byP5aCG5Z6b6LW36YeN5py644CB5YWl77yI5Ye677yJ5bqT5bel5L2c5Y+w5ZKM6Ieq5Yqo6L+Q6L+b77yI5Ye677yJ5Y+K5pON5L2c5o6n5Yi257O757uf57uE5oiQ44CC6LSn5p625piv6ZKi57uT5p6E5oiW6ZKi562L5re35Yed5Zyf57uT5p6E55qE5bu6562R54mp5oiW57uT5p6E5L2T77yM6LSn5p625YaF5piv5qCH5YeG5bC65a+455qE6LSn5L2N56m66Ze077yM5be36YGT5aCG5Z6b6LW36YeN5py656m/6KGM5LqO6LSn5p625LmL6Ze055qE5be36YGT5Lit77yM5a6M5oiQ5a2Y44CB5Y+W6LSn55qE5bel5L2c44CC566h55CG5LiK6YeH55So6K6h566X5py65Y+K5p2h5b2i56CB5oqA5pyv44CCPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7ku5PlupPmlbDmja48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPndhcmVob3VzZSBkYXRhPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltZy1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taW1nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ExLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSAtIDV2dyk7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMnZ3O3BhZGRpbmctbGVmdDogNXZ3Oztmb250LXNpemU6IDJ2dztcIj57e2Jhc2VJbmZvLnhEaXN0YW5jZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiA3dnc7XCI+bTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMTAwJTt0ZXh0LWFsaWduOiBsZWZ0O3RleHQtaW5kZW50OiAyZW07XCI+57Sv6K6h6LWw6KGM6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYjEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJ3aWR0aDogY2FsYygxMDAlIC0gNXZ3KTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAydnc7cGFkZGluZy1sZWZ0OiA1dnc7O2ZvbnQtc2l6ZTogMnZ3O1wiPnt7YmFzZUluZm8ueURpc3RhbmNlfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwO2xlZnQ6IDd2dztcIj5tPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAxMDAlO3RleHQtYWxpZ246IGxlZnQ7dGV4dC1pbmRlbnQ6IDJlbTtcIj7ntK/orqHljYfpmY3ot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWltZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9jMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUgLSA1dncpO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDJ2dztwYWRkaW5nLWxlZnQ6IDV2dzs7Zm9udC1zaXplOiAydnc7XCI+e3tiYXNlSW5mby54RHVyYXRpb259fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206IDA7bGVmdDogN3Z3O1wiPnM8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7dGV4dC1hbGlnbjogbGVmdDt0ZXh0LWluZGVudDogMmVtO1wiPue0r+iuoei1sOihjOaXtumVvyjnp5IpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taW1nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2QxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSAtIDV2dyk7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMnZ3O3BhZGRpbmctbGVmdDogNXZ3Oztmb250LXNpemU6IDJ2dztcIj57e2Jhc2VJbmZvLnlEdXJhdGlvbn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiA3dnc7XCI+czwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMTAwJTt0ZXh0LWFsaWduOiBsZWZ0O3RleHQtaW5kZW50OiAyZW07XCI+57Sv6K6h5Y2H6ZmN5pe26ZW/KOenkik8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuW6k+S9jeS9v+eUqOeOhzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPkVRVUlQTUVOVCBVU0FHRSBUSElTIE1PTlRIPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPs+S+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDnmb7liIbmr5QgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7cmlnaHQ6IDF2dzt0ZXh0LWFsaWduOiByaWdodDtcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+e3tiYXNlSW5mby51c2VkUHJ9fSU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPuWQjOavlOS4iuaciCArIDUlPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7cG9zaXRpb246IHJlbGF0aXZlO2ZvbnQtc2l6ZTogMXZ3XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDov5vluqbmnaEgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7cG9zaXRpb246IHJlbGF0aXZlO21hcmdpbi10b3A6IDUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc0JhclwiIHN0eWxlPVwid2lkdGg6IDgwJTtoZWlnaHQ6IDJ2dztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc1wiIDpzdHlsZT1cIid3aWR0aDonKyBiYXNlSW5mby51c2VkUHIgKyAnJSdcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206IDA7cmlnaHQ6IDA7Zm9udC1zaXplOiAyLjV2dztjb2xvcjogI0ZGNTcyMjs7XCI+e3tiYXNlSW5mby51c2VkfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC95LWJveD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW0tYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMzUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOaKmOe6v+WbviAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3puS+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuWFpeWHuuW6k+e7n+iuoTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5PUkRFUiBTVEFUSVNUSUNTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g55m+5YiG5q+UIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7cmlnaHQ6IDF2dzt0ZXh0LWFsaWduOiByaWdodDtcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPjMxPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+5LuK5pel6K6i5Y2V5pWwPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJsaW5lXCIgOmNoYXJ0RGF0YT1cImNoYXJ0c0RhdGFMaW5lMVwiIDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIvPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC95LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIG51bGwgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiA0MyU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPlrZjnsbvlnos8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+SU5DT01FIERBVEU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlj7PkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDnmb7liIbmr5QgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtZW5kO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5LuK5aSpPC90ZXh0PiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPlRvZGF5PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bemIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3gtcmluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJyaW5nXCIgOm9wdHM9XCJ7bGVnZW5kOntwb3NpdGlvbjonYm90dG9tJ319XCIgOmVvcHRzPVwicmluZ09wdHNcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YVBpZTJcIiA6ZWNoYXJ0c0g1PVwidHJ1ZVwiIDplY2hhcnRzQXBwPVwidHJ1ZVwiLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPsyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBzdWItaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9nMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O1wiPuWcqOW6kzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O2ZvbnQtc2l6ZTogMnZ3O1wiPjEwMDAwPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93IHN1Yi1pbmZvXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAydmg7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2cxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7XCI+5Zyo5bqTPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7Zm9udC1zaXplOiAydnc7XCI+MTAwMDA8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3cgc3ViLWluZm9cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDJ2aDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZzEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztcIj7lnKjlupM8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztmb250LXNpemU6IDJ2dztcIj4xMDAwMDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDE4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtmb250LXNpemU6IDR2aDtqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtsZXR0ZXItc3BhY2luZzogMXZoO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx05ZiJ5ZaE6L656ZSL5py65qKw6IKh5Lu95pyJ6ZmQ5YWs5Y+4XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdDwhLS0g5YWo5p2/L+aLo+aWmeS/oeaBryAtLT5cclxuXHRcdDx1bmktdHJhbnNpdGlvbiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDptb2RlLWNsYXNzPVwiaW5mb01vZGVcIiA6c2hvdz1cImluZm9WaWV3U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tdmlld1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHRleHQ+5oujIOaWmTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDml6XljoYgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3tjYWxlbmRhcn19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDkuLvkvZMgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLW1haW5cIiA+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tYm94XCI+XHJcblx0XHRcdFx0XHRcdDx5LWJveD57e3RleHR9fTwveS1ib3g+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlvILluLjkv6Hmga8gLS0+XHJcblx0XHQ8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImVycm9ySW5mb01vZGVcIiA6c2hvdz1cImVycm9ySW5mb1ZpZXdTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZXJyb3ItaW5mby12aWV3XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0XHQ8dGV4dD7lvILluLg8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7Y2FsZW5kYXJ9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li75L2TIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1tYWluXCIgPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLWJveFwiPlxyXG5cdFx0XHRcdFx0XHQ8eS1ib3g+PC95LWJveD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXRyYW5zaXRpb24+XHJcblx0XHRcclxuXHRcdDwhLS0g6Ieq5a6a5LmJ5by55Ye65bGCIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJlamVjdC1tYXNrXCIgdi1zaG93PVwiZWplY3RTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3RcIj5cclxuXHRcdFx0XHQ8IS0tIOW8ueWHunRpdGxlIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtdGl0bGVcIj7kv67mlLkgLyDphY3nva48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSBpbnB1dCAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LWlucHV0XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+aXDvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUlQXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5wb3J077yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VQb3J0XCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5sZWRJZO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlTGVkSWRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPkNybklk77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VDcm5JZFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0gYnV0dG9uIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtYnV0dG9uXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1pdGVtXCIgQGNsaWNrPVwiZWplY3RDbG9zZVwiPuWPliDmtog8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1pdGVtXCIgQGNsaWNrPVwiZWplY3RDb25maXJtXCI+56GuIOiupDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHNlcmllczogW10sXHJcblx0XHRcdFx0aG9tZVZpZXdTaG93OiB0cnVlLFxyXG5cdFx0XHRcdGluZm9WaWV3U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0ZXJyb3JJbmZvVmlld1Nob3c6IGZhbHNlLFxyXG5cdFx0XHRcdGhvbWVNb2RlOiBbXSxcclxuXHRcdFx0XHRpbmZvTW9kZTogW10sXHJcblx0XHRcdFx0ZXJyb3JJbmZvTW9kZTogW10sXHJcblx0XHRcdFx0YmFzZUluZm86IHtcclxuXHRcdFx0XHRcdHhEaXN0YW5jZTogMSxcclxuXHRcdFx0XHRcdHlEaXN0YW5jZTogMixcclxuXHRcdFx0XHRcdHhEdXJhdGlvbjogMyxcclxuXHRcdFx0XHRcdHlEdXJhdGlvbjogNCxcclxuXHRcdFx0XHRcdHVzZWRQcjogNTAsXHJcblx0XHRcdFx0XHR1c2VkOiAzNTM3XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRjaGFydHNEYXRhOiB7XHJcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xyXG5cdFx0XHRcdFx0XHRcImNhdGVnb3JpZXNcIjogW10sXHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFtdXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XCJQaWVcIjoge1xyXG5cdFx0XHRcdFx0XHRcInNlcmllc1wiOiBbe1xyXG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0XHRcdFx0XHR9XVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGR1cmF0aW9uOiAxMDAwLFxyXG5cdFx0XHRcdGNhbGVuZGFyOiAnJyxcclxuXHRcdFx0XHRyaW5nT3B0czp7fSxcclxuXHRcdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGFQaWUyOiB7fSxcclxuXHRcdFx0XHRmb250U2l6ZTogJycsXHJcblx0XHRcdFx0aGVpZ2h0OiAnJyxcclxuXHRcdFx0XHRzaG93Q2hhcnRzOiBmYWxzZSxcclxuXHRcdFx0XHRlamVjdFNob3c6IGZhbHNlLFxyXG5cdFx0XHRcdGJhc2VJUDogJycsXHJcblx0XHRcdFx0YmFzZVBvcnQ6ICcnLFxyXG5cdFx0XHRcdGJhc2VMZWRJZDogJycsXHJcblx0XHRcdFx0YmFzZUNybklkOiAnJyxcclxuXHRcdFx0XHRpbmZvOiBudWxsLFxyXG5cdFx0XHRcdGVycm9yOiBudWxsLFxyXG5cdFx0XHRcdGluZm9UeXBlOiAwLFxyXG5cdFx0XHRcdHRleHQ6ICcnLFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHQvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0cGx1cy5uYXZpZ2F0b3Iuc2V0RnVsbHNjcmVlbih0cnVlKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdHRoaXMuZ2V0U2VydmVyRGF0YSgpXHJcblx0XHRcdHRoaXMuZ2V0RGF0ZSgpXHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dGhpcy5nZXREYXRlKClcclxuXHRcdFx0XHR0aGlzLmdldEluZm8oKVxyXG5cdFx0XHRcdHRoaXMuZ2V0RXJyb3IoKVxyXG5cdFx0XHRcdHRoaXMuY29udHJvbGxlcigpXHJcblx0XHRcdH0sMTAwMClcclxuXHRcdFx0Ly8gc2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0Ly8gXHR0aGlzLmNvbnRyb2xsZXIoKVxyXG5cdFx0XHQvLyB9LDUwMDApXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRnZXRVcmwoKSB7XHJcblx0XHRcdFx0dGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyB0aGlzLmJhc2VVcmxcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0U2VydmVyRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlbW9kYXRhLkxpbmUpKVxyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YVBpZTI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkZW1vZGF0YS5QaWVBKSlcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdGdldEluZm8oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YVlZWVxyXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaW5mb1R5cGUgPT0gMikge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLmluZm9UeXBlID0gMVxyXG5cdFx0XHRcdFx0dGhpcy50ZXh0ID0gcmVzXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnKioqKioqKicpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RXJyb3IoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YUVFRVxyXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0dGhpcy5pbmZvVHlwZSA9IDJcclxuXHRcdFx0XHRcdHRoaXMudGV4dCA9IHJlc1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5pbmZvVHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5pbmZvVHlwZSA9IDBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaOp+WItuWZqFxyXG5cdFx0XHRjb250cm9sbGVyKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuaW5mb1R5cGUpO1xyXG5cdFx0XHRcdHN3aXRjaCh0aGlzLmluZm9UeXBlKSB7XHJcblx0XHRcdFx0XHRjYXNlIDE6IFxyXG5cdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlIDI6XHJcblx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdGRlZmF1bHQgOlxyXG5cdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuLvlsY/luZVcclxuXHRcdFx0aGFuZGxlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9ICF0aGlzLmhvbWVWaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmi6PmlplcclxuXHRcdFx0aGFuZGxlMSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSAhdGhpcy5pbmZvVmlld1Nob3dcclxuXHRcdFx0XHR0aGlzLm1vZGVDbGFzcyA9IHR5cGVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5byC5bi4XHJcblx0XHRcdGhhbmRsZTIodHlwZSkge1xyXG5cdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSAhdGhpcy5lcnJvckluZm9WaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDphY3nva5cclxuXHRcdFx0ZWplY3RlZCAoKSB7XHJcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWPlua2iOmFjee9rlxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g56Gu6K6k6YWN572uXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaXpeWOhlxyXG5cdFx0XHRnZXREYXRlKCkge1xyXG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0dmFyIHllYXIsbW9udGgsZGF5LGhvdXJzLG1pbnV0ZXMsc2Vjb25kcyx3ZWVrc1xyXG5cdFx0XHRcdHllYXIgPSBkdC5nZXRGdWxsWWVhcigpO1xyXG5cdFx0XHRcdG1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuXHRcdFx0XHRkYXkgPSBkdC5nZXREYXRlKCkgPCAxMCA/ICcwJytkdC5nZXREYXRlKCkgOiBkdC5nZXREYXRlKCk7XHJcblx0XHRcdFx0aG91cnMgPSBkdC5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkdC5nZXRIb3VycygpIDogZHQuZ2V0SG91cnMoKTtcclxuXHRcdFx0XHRtaW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcblx0XHRcdFx0c2Vjb25kcyA9IGR0LmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZHQuZ2V0U2Vjb25kcygpIDogZHQuZ2V0U2Vjb25kcygpOyBcclxuXHRcdFx0XHR3ZWVrcyA9IGR0LmdldERheSgpOyBcclxuXHRcdFx0XHRzd2l0Y2ggKHdlZWtzKSB7XHJcblx0XHRcdFx0XHRjYXNlIDA6IHdlZWtzID0gXCLmmJ/mnJ/ml6VcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDE6IHdlZWtzID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDI6IHdlZWtzID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDM6IHdlZWtzID0gXCLmmJ/mnJ/kuIlcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDQ6IHdlZWtzID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDU6IHdlZWtzID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0IDogd2Vla3MgPSBcIuaYn+acn+WFrVwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmNhbGVuZGFyID0geWVhciArIFwi5bm0XCIgKyBtb250aCArIFwi5pyIXCIgKyBkYXkgKyBcIuaXpSBcIiArIGhvdXJzICsgXCI6XCIgKyBtaW51dGVzICsgXCI6XCIgKyBzZWNvbmRzICsgXCIgXCIgKyB3ZWVrc1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlRm9ybWF0KHZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFyIGRhdGUgPSBuZXcgRGF0ZSgpOy8vIOiOt+WPluW9k+WJjeaXtumXtFxyXG5cdFx0XHRcdFx0XHRcdGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIHZhbHVlKTsvLyDorr7nva7lpKnmlbAgLTEg5aSpXHJcblx0XHRcdFx0XHRcdFx0dmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxXHJcblx0XHRcdFx0XHRcdFx0dmFyIGQgPSBkYXRlLmdldERhdGUoKVxyXG5cdFx0XHRcdFx0XHRcdHZhciBuZXdEYXRlID0gbSArICctJyArIGRcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3RGF0ZVxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHQvKioqKioqKioqKioqKioqIOaKmOe6v+WbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHRcdFx0XHRcdFx0aW5pdGxpbmVDaGFydCgpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9saW5lL2NoYXJ0c1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLkxpbmUuY2F0ZWdvcmllcyA9IFtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNyksdGhhdC5nZXREYXRlRm9ybWF0KC02KSx0aGF0LmdldERhdGVGb3JtYXQoLTUpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTMpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMiksdGhhdC5nZXREYXRlRm9ybWF0KC0xKSx0aGF0LmdldERhdGVGb3JtYXQoMCksXVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IHJlcy5kYXRhLnJvd3NcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdC8qKioqKioqKioqKioqKiog6aW85Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cdFx0XHRcdFx0XHRpbml0UGllQ2hhcnQoKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLlBpZS5zZXJpZXNbMF0uZGF0YSA9IHJlcy5kYXRhLnBpZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZW1wdHlDb3VudCA9IHJlcy5kYXRhLmVtcHR5Q291bnRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm5vbmVDb3VudCA9IHJlcy5kYXRhLm5vbmVDb3VudFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQudXNlZCA9IHJlcy5kYXRhLnVzZWRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LnVzZWRQciA9IHJlcy5kYXRhLnVzZWRQclxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0Z2V0T3RoZXIoKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cDovLzEwLjEwLjAuMjIyOjkwOTAvamt3Y3MvbW9uaXRvci9sZWQ/bGVkSWQ9MTg2XHJcblx0XHRcdFx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9vdGhlclwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZWRJZDogMSxcclxuXHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LnhEaXN0YW5jZSA9IHJlcy5kYXRhLnhEaXN0YW5jZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQueURpc3RhbmNlID0gcmVzLmRhdGEueURpc3RhbmNlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LnlEdXJhdGlvbiA9IHJlcy5kYXRhLnlEdXJhdGlvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09PSA0MDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdEBpbXBvcnQgdXJsKFwiLi4vLi4vc3RhdGljL2Nzcy9jb21tb24uY3NzXCIpO1xyXG5cdC8qIOWIlyAqL1xyXG5cdC5mbGV4LWNvbCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHR9XHJcblx0Lyog6KGMICovXHJcblx0LmZsZXgtcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdH1cclxuXHRcclxuXHQuY29udGFpbmVye1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAxNjNFO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcclxuXHR9XHJcblx0Lyog5Li76KeG5Zu+ICovXHJcblx0LmhvbWUtdmlldyB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDB2dyAxMDB2aDtcclxuXHR9XHJcblx0LmhvbWUtcmlnaHQge1xyXG5cdFx0d2lkdGg6IDUwdnc7XHJcblx0XHRoZWlnaHQ6IDg5dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiBjYWRldGJsdWU7ICovXHJcblx0fVxyXG5cdC5ob21lLXJpZ2h0LWJveCB7XHJcblx0XHR3aWR0aDogOTglO1xyXG5cdFx0aGVpZ2h0OiA5OCU7XHJcblx0fVxyXG5cdC5oZWFkIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogMTF2aDtcclxuXHRcdGZvbnQtc2l6ZTo0dnc7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC43KTtcclxuXHR9XHJcblx0LnRpbWUtdG9vbHMge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDIlO1xyXG5cdFx0dG9wOiAyJTtcclxuXHRcdGZvbnQtc2l6ZToxdnc7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XHJcblx0fVxyXG5cdC5idXR0b24tbGVmdCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDIxLjMlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG5cdH1cclxuXHQuYnV0dG9uLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogNjUlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdH1cclxuXHQuaW1nLWJveCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7ICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGZvbnQtc2l6ZTogMXZ3O1xyXG5cdH1cclxuXHQuaXRlbS1pbWcge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdG1hcmdpbi10b3A6IDUlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmOyAqL1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5kaXN0YW5jZSB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0taW1nIGltYWdlIHtcclxuXHRcdGhlaWdodDogNXZ3O1xyXG5cdFx0d2lkdGg6IDV2dztcclxuXHR9XHJcblx0LnByb2dyZXNzQmFyIHtcclxuXHRcdG1hcmdpbi10b3A6IDklO1xyXG5cdFx0Lyogd2lkdGg6IDEwMCU7ICovXHJcblx0XHRoZWlnaHQ6IDIwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1dnc7XHJcblx0fVxyXG5cdC5wcm9ncmVzcyB7XHJcblx0XHQvKiB3aWR0aDogOTAlOyAqL1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGNTcyMjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDV2dztcclxuXHR9XHJcblx0LmNoYXJ0cy1ib3gge1xyXG5cdCAgd2lkdGg6IDgwJTtcclxuXHQgIGhlaWdodDogMjR2aDtcclxuXHQgIG1hcmdpbi1sZWZ0OiAxMCU7XHJcblx0fSBcclxuXHQuY2hhcnRzLWJveC1yaW5nIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDI0dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmOyAqL1xyXG5cdH1cclxuXHQuc3ViLWluZm8ge1xyXG5cdFx0Zm9udC1zaXplOiAxLjV2dztcclxuXHR9XHJcblx0LnN1Yi1pbmZvIGltYWdlIHtcclxuXHRcdHdpZHRoOiAzLjV2dztcclxuXHRcdGhlaWdodDogMy41dnc7XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdFxyXG5cdFxyXG5cdC8qIOWFseeUqCAqL1xyXG5cdC5tYWluIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogODh2aDtcclxuXHRcdG1hcmdpbi10b3A6IDF2aDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcclxuXHR9XHJcblx0Lm1pYW4taXRlbSB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG5cdC5taWFuLWl0ZW0tYm94IHtcclxuXHRcdHdpZHRoOiA5OCU7XHJcblx0XHRoZWlnaHQ6IDk4JTtcclxuXHR9XHJcblx0LmJveC1pdGVtIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLXRvcDogNCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdH1cclxuXHQuaXRlbS10aXRsZSB7XHJcblx0XHRmb250LXNpemU6MS41dnc7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdH1cclxuXHQuaXRlbS1zdWJUaXRsZSB7XHJcblx0XHRmb250LXNpemU6MC41dnc7XHJcblx0XHR0ZXh0LWluZGVudDogMGVtO1xyXG5cdH1cclxuXHQuaXRlbS10ZXh0IHtcclxuXHRcdGZvbnQtc2l6ZTogMXZ3O1xyXG5cdFx0dGV4dC1pbmRlbnQ6IDJlbTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XHJcblx0XHRsaW5lLWhlaWdodDogM3ZoO1xyXG5cdH1cclxuXHRcclxuXHQvKiDlhajmnb8v5ouj5paZ5L+h5oGvICovXHJcblx0LmluZm8tdmlldyB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDB2dyAxMDB2aDtcclxuXHR9XHJcblx0LmluZm8tbWFpbiB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRoZWlnaHQ6IDg4dmg7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuaW5mby1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQvKiDlvILluLjkv6Hmga8gKi9cclxuXHQuZXJyb3ItaW5mby12aWV3IHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG5cdH1cclxuXHRcclxuXHQvKiDlvLnlh7o66YWN572u5Yy65Z+fICovXHJcblx0LmVqZWN0LW1hc2sge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcdFxyXG5cdH1cclxuXHQuZWplY3R7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogNDB2dztcclxuXHRcdGhlaWdodDogNDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiAycmVtO1xyXG5cdH1cclxuXHQuZWplY3QtdGl0bGUge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwdmg7XHJcblx0XHRsaW5lLWhlaWdodDogMTB2aDtcclxuXHRcdGZvbnQtc2l6ZTogMnZ3O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDJ2aCAwIDAgMDtcclxuXHRcdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0XHRjb2xvcjogIzM2MzYzNjtcclxuXHR9XHJcblx0LmRlc2Mge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6IDQwJTtcclxuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdFx0Y29sb3I6ICM2MDYyNjY7XHJcblx0XHRcclxuXHR9XHJcblx0LmlucHV0IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cGFkZGluZy1sZWZ0OiA1cHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogM3ZoO1xyXG5cdFx0Ym9yZGVyOiAwLjF2aCBzb2xpZCAjY2ZkNGRjO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAyMCU7XHJcblx0XHR0ZXh0LWFsaWduOiBzdGFydDtcclxuXHR9XHJcblx0LmVqZWN0LWlucHV0IGlucHV0IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAzdmg7XHJcblx0XHRmb250LXNpemU6IDF2dztcclxuXHRcdFxyXG5cdFx0XHJcblx0fVxyXG5cdC5lamVjdC1idXR0b24ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRoZWlnaHQ6IDZ2aDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA2dmg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHQuYnV0dG9uLWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuXHQuYnV0dG9uLWl0ZW06bGFzdC1jaGlsZCB7XHJcblx0XHRjb2xvcjogIzY3QzIzQTtcclxuXHRcdFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///77\n"); /***/ }), /* 78 */ /*!******************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/mockdata/demodata.json ***! \******************************************************************/ /*! exports provided: localdata, localdataB, TLine, Scatter, Bubble, Column, ColumnA, Mix, Line, Pie, PieA, Radar, Arcbar1, Arcbar2, Gauge, Candle, CandleColumn, Word, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"localdata\\\":[{\\\"value\\\":35,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":36,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":27,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":31,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":21,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":33,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":24,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":13,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":6,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":34,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":28,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"完成量\\\"}],\\\"localdataB\\\":[{\\\"value\\\":50,\\\"text\\\":\\\"一班\\\"},{\\\"value\\\":30,\\\"text\\\":\\\"二班\\\"},{\\\"value\\\":20,\\\"text\\\":\\\"三班\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"四班\\\"},{\\\"value\\\":8,\\\"text\\\":\\\"五班\\\"}],\\\"TLine\\\":{\\\"series\\\":[{\\\"name\\\":\\\"时间轴1\\\",\\\"data\\\":[[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]},{\\\"name\\\":\\\"时间轴2\\\",\\\"data\\\":[[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]},{\\\"name\\\":\\\"时间轴3\\\",\\\"data\\\":[[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]}]},\\\"Scatter\\\":{\\\"series\\\":[{\\\"name\\\":\\\"散点一\\\",\\\"data\\\":[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82]]},{\\\"name\\\":\\\"散点二\\\",\\\"data\\\":[[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]]}]},\\\"Bubble\\\":{\\\"series\\\":[{\\\"name\\\":\\\"气泡一\\\",\\\"data\\\":[[95,95,23,\\\"标题1\\\"],[30,55,33,\\\"标题2\\\"]]},{\\\"name\\\":\\\"气泡二\\\",\\\"data\\\":[[130,30,30,\\\"标题3\\\"],[200,90,40,\\\"标题4\\\"]]}]},\\\"Column\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"目标值\\\",\\\"data\\\":[35,36,31,33,13,34]},{\\\"name\\\":\\\"完成量\\\",\\\"data\\\":[18,27,21,24,6,28]}]},\\\"ColumnA\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,{\\\"value\\\":20,\\\"color\\\":\\\"#f04864\\\"},45,37,43,34]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[30,{\\\"value\\\":40,\\\"color\\\":\\\"#facc14\\\"},25,14,34,18]}]},\\\"Mix\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"曲面\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"area\\\",\\\"style\\\":\\\"curve\\\"},{\\\"name\\\":\\\"柱1\\\",\\\"index\\\":1,\\\"data\\\":[40,{\\\"value\\\":30,\\\"color\\\":\\\"#f04864\\\"},55,110,24,58],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"柱2\\\",\\\"index\\\":1,\\\"data\\\":[50,20,75,60,34,38],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"曲线\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"line\\\",\\\"style\\\":\\\"curve\\\",\\\"color\\\":\\\"#1890ff\\\",\\\"disableLegend\\\":true},{\\\"name\\\":\\\"折线\\\",\\\"data\\\":[120,140,105,170,95,160],\\\"type\\\":\\\"line\\\",\\\"color\\\":\\\"#2fc25b\\\"},{\\\"name\\\":\\\"点\\\",\\\"index\\\":2,\\\"data\\\":[100,80,125,150,112,132],\\\"type\\\":\\\"point\\\",\\\"color\\\":\\\"#f04864\\\"}]},\\\"Line\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量A\\\",\\\"data\\\":[35,8,25,37,4,20]},{\\\"name\\\":\\\"成交量B\\\",\\\"data\\\":[70,40,65,100,44,68]}]},\\\"Pie\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":50},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":30},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":20},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":18},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":8}]},\\\"PieA\\\":{\\\"series\\\":[{\\\"data\\\":[{\\\"name\\\":\\\"在库\\\",\\\"value\\\":314},{\\\"name\\\":\\\"空\\\",\\\"value\\\":1175},{\\\"name\\\":\\\"禁用\\\",\\\"value\\\":96}]}]},\\\"Radar\\\":{\\\"categories\\\":[\\\"维度1\\\",\\\"维度2\\\",\\\"维度3\\\",\\\"维度4\\\",\\\"维度5\\\",\\\"维度6\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[90,110,165,195,187,172]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[190,210,105,35,27,102]}]},\\\"Arcbar1\\\":{\\\"series\\\":[{\\\"name\\\":\\\"正确率\\\",\\\"data\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"}]},\\\"Arcbar2\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":0.8},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":0.6},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":0.45},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":0.3},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":0.15}]},\\\"Gauge\\\":{\\\"categories\\\":[{\\\"value\\\":0.2,\\\"color\\\":\\\"#1890ff\\\"},{\\\"value\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"},{\\\"value\\\":1,\\\"color\\\":\\\"#f04864\\\"}],\\\"series\\\":[{\\\"name\\\":\\\"完成率\\\",\\\"data\\\":0.66}]},\\\"Candle\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"上证指数\\\",\\\"data\\\":[[2320.26,2302.6,2287.3,2362.94],[2300,2291.3,2288.26,2308.38],[2295.35,2346.5,2295.35,2346.92],[2347.22,2358.98,2337.35,2363.8],[2360.75,2382.48,2347.89,2383.76],[2383.43,2385.42,2371.23,2391.82],[2377.41,2419.02,2369.57,2421.15],[2425.92,2428.15,2417.58,2440.38],[2411,2433.13,2403.3,2437.42],[2432.68,2434.48,2427.7,2441.73],[2430.69,2418.53,2394.22,2433.89],[2416.62,2432.4,2414.4,2443.03],[2441.91,2421.56,2415.43,2444.8],[2420.26,2382.91,2373.53,2427.07],[2383.49,2397.18,2370.61,2397.94],[2378.82,2325.95,2309.17,2378.82],[2322.94,2314.16,2308.76,2330.88],[2320.62,2325.82,2315.01,2338.78],[2313.74,2293.34,2289.89,2340.71],[2297.77,2313.22,2292.03,2324.63],[2322.32,2365.59,2308.92,2366.16],[2364.54,2359.51,2330.86,2369.65],[2332.08,2273.4,2259.25,2333.54],[2274.81,2326.31,2270.1,2328.14],[2333.61,2347.18,2321.6,2351.44],[2340.44,2324.29,2304.27,2352.02],[2326.42,2318.61,2314.59,2333.67],[2314.68,2310.59,2296.58,2320.96],[2309.16,2286.6,2264.83,2333.29],[2282.17,2263.97,2253.25,2286.33],[2255.77,2270.28,2253.31,2276.22],[2269.31,2278.4,2250,2312.08],[2267.29,2240.02,2239.21,2276.05],[2244.26,2257.43,2232.02,2261.31],[2257.74,2317.37,2257.42,2317.86],[2318.21,2324.24,2311.6,2330.81],[2321.4,2328.28,2314.97,2332],[2334.74,2326.72,2319.91,2344.89],[2318.58,2297.67,2281.12,2319.99],[2299.38,2301.26,2289,2323.48],[2273.55,2236.3,2232.91,2273.55],[2238.49,2236.62,2228.81,2246.87],[2229.46,2234.4,2227.31,2243.95],[2234.9,2227.74,2220.44,2253.42],[2232.69,2225.29,2217.25,2241.34],[2196.24,2211.59,2180.67,2212.59],[2215.47,2225.77,2215.47,2234.73],[2224.93,2226.13,2212.56,2233.04],[2236.98,2219.55,2217.26,2242.48],[2218.09,2206.78,2204.44,2226.26],[2199.91,2181.94,2177.39,2204.99],[2169.63,2194.85,2165.78,2196.43],[2195.03,2193.8,2178.47,2197.51],[2181.82,2197.6,2175.44,2206.03],[2201.12,2244.64,2200.58,2250.11],[2236.4,2242.17,2232.26,2245.12],[2242.62,2184.54,2182.81,2242.62],[2187.35,2218.32,2184.11,2226.12],[2213.19,2199.31,2191.85,2224.63],[2203.89,2177.91,2173.86,2210.58],[2170.78,2174.12,2161.14,2179.65],[2179.05,2205.5,2179.05,2222.81],[2212.5,2231.17,2212.5,2236.07],[2227.86,2235.57,2219.44,2240.26],[2242.39,2246.3,2235.42,2255.21],[2246.96,2232.97,2221.38,2247.86],[2228.82,2246.83,2225.81,2247.67],[2247.68,2241.92,2231.36,2250.85],[2238.9,2217.01,2205.87,2239.93],[2217.09,2224.8,2213.58,2225.19],[2221.34,2251.81,2210.77,2252.87],[2249.81,2282.87,2248.41,2288.09],[2286.33,2299.99,2281.9,2309.39],[2297.11,2305.11,2290.12,2305.3],[2303.75,2302.4,2292.43,2314.18],[2293.81,2275.67,2274.1,2304.95],[2281.45,2288.53,2270.25,2292.59],[2286.66,2293.08,2283.94,2301.7],[2293.4,2321.32,2281.47,2322.1],[2323.54,2324.02,2321.17,2334.33],[2316.25,2317.75,2310.49,2325.72],[2320.74,2300.59,2299.37,2325.53],[2300.21,2299.25,2294.11,2313.43],[2297.1,2272.42,2264.76,2297.1],[2270.71,2270.93,2260.87,2276.86],[2264.43,2242.11,2240.07,2266.69],[2242.26,2210.9,2205.07,2250.63],[2190.1,2148.35,2126.22,2190.1]]}]},\\\"CandleColumn\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45]}]},\\\"Word\\\":{\\\"series\\\":[{\\\"name\\\":\\\"跨全端图表\\\",\\\"textSize\\\":25},{\\\"name\\\":\\\"微信小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"支付宝小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"百度小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"QQ小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"头条小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"抖音小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"360小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12}]}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI3OC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///78\n"); /***/ }), /* 79 */ /*!*****************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?mpType=page ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 80);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 99);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///79\n"); /***/ }), /* 80 */ /*!***********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \***********************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 81); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 81 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 18) .default, uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 82) .default, uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 87) .default } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "floor-screen"), class: _vm._$s(1, "c", _vm.floorMove), attrs: { _i: 1 } }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "head"), attrs: { _i: 2 } }, [ _c("text", { attrs: { _i: 3 }, on: { click: function($event) { return _vm.port() } } }), _c( "view", { staticClass: _vm._$s(4, "sc", "time-tools"), attrs: { _i: 4 } }, [ _vm._v( _vm._$s(4, "t0-0", _vm._s(_vm.year)) + _vm._$s(4, "t0-1", _vm._s(_vm.month)) + _vm._$s(4, "t0-2", _vm._s(_vm.day)) + _vm._$s(4, "t0-3", _vm._s(_vm.hours)) + _vm._$s(4, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(4, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(4, "t0-6", _vm._s(_vm.week)) ) ] ), _c("view", { staticClass: _vm._$s(5, "sc", "button-left"), attrs: { _i: 5 }, on: { click: function($event) { return _vm.ejected() } } }), _c("view", { staticClass: _vm._$s(6, "sc", "button-right"), attrs: { _i: 6 }, on: { click: function($event) { return _vm.ledId() } } }) ] ), _c( "view", { staticClass: _vm._$s(7, "sc", "main"), attrs: { _i: 7 } }, [ _c( "view", { staticClass: _vm._$s(8, "sc", "main-sides"), attrs: { _i: 8 } }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "box"), attrs: { _i: 9 } }, [ _c("view", { staticClass: _vm._$s( 10, "sc", "box-border box-border1" ), attrs: { _i: 10 } }), _c("view", { staticClass: _vm._$s( 11, "sc", "box-border box-border2" ), attrs: { _i: 11 } }), _c("view", { staticClass: _vm._$s( 12, "sc", "box-border box-border3" ), attrs: { _i: 12 } }), _c("view", { staticClass: _vm._$s( 13, "sc", "box-border box-border4" ), attrs: { _i: 13 } }), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(14, "v-show", !_vm.errorShow), expression: "_$s(14,'v-show',!errorShow)" } ], attrs: { _i: 14 } }, [ _c( "view", { class: _vm._$s(15, "c", _vm.width), attrs: { _i: 15 } }, [ _c( "view", { staticClass: _vm._$s(16, "sc", "box-items"), attrs: { _i: 16 } }, [_vm._v(_vm._$s(16, "t0-0", _vm._s(_vm.title)))] ), _c( "view", { staticClass: _vm._$s(17, "sc", "box-items"), attrs: { _i: 17 } }, [_vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.staNo)))] ), _c( "view", { staticClass: _vm._$s(18, "sc", "box-items"), attrs: { _i: 18 } }, [_vm._v(_vm._$s(18, "t0-0", _vm._s(_vm.matnr)))] ), _c( "view", { staticClass: _vm._$s(19, "sc", "box-items"), attrs: { _i: 19 } }, [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.maknx)))] ), _c( "view", { staticClass: _vm._$s(20, "sc", "box-items"), attrs: { _i: 20 } }, [_vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.count)))] ) ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(21, "v-show", _vm.orderShow), expression: "_$s(21,'v-show',orderShow)" } ], attrs: { _i: 21 } }, [ _c( "view", { staticClass: _vm._$s(22, "sc", "box-items"), attrs: { _i: 22 } }, [ _vm._v( _vm._$s(22, "t0-0", _vm._s(_vm.orderNo)) ) ] ), _c( "view", { staticClass: _vm._$s(23, "sc", "box-items"), attrs: { _i: 23 } }, [ _vm._v( _vm._$s(23, "t0-0", _vm._s(_vm.doneOfTray)) ) ] ), _c( "view", { staticClass: _vm._$s(24, "sc", "box-items"), attrs: { _i: 24 } }, [ _vm._v( _vm._$s(24, "t0-0", _vm._s(_vm.totalOfTray)) ) ] ), _c( "view", { staticClass: _vm._$s(25, "sc", "box-items"), attrs: { _i: 25 } }, [ _vm._v( _vm._$s(25, "t0-0", _vm._s(_vm.doneOfUnit)) ) ] ), _c( "view", { staticClass: _vm._$s(26, "sc", "box-items"), attrs: { _i: 26 } }, [ _vm._v( _vm._$s(26, "t0-0", _vm._s(_vm.totalOfUnit)) ) ] ) ] ) ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(27, "v-show", _vm.errorShow), expression: "_$s(27,'v-show',errorShow)" } ], attrs: { _i: 27 } }, [ _c("view", [ _vm._v(_vm._$s(28, "t0-0", _vm._s(_vm.errorMsg))) ]) ] ) ] ) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(29, "sc", "top-screen"), class: _vm._$s(29, "c", _vm.topMove), attrs: { _i: 29 } }, [ _c( "view", { staticClass: _vm._$s(30, "sc", "head"), attrs: { _i: 30 } }, [ _c("text", { attrs: { _i: 31 }, on: { click: function($event) { return _vm.port() } } }), _c( "view", { staticClass: _vm._$s(32, "sc", "time-tools"), attrs: { _i: 32 } }, [ _vm._v( _vm._$s(32, "t0-0", _vm._s(_vm.year)) + _vm._$s(32, "t0-1", _vm._s(_vm.month)) + _vm._$s(32, "t0-2", _vm._s(_vm.day)) + _vm._$s(32, "t0-3", _vm._s(_vm.hours)) + _vm._$s(32, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(32, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(32, "t0-6", _vm._s(_vm.week)) ) ] ), _c("view", { staticClass: _vm._$s(33, "sc", "button-left"), attrs: { _i: 33 }, on: { click: function($event) { return _vm.ejected() } } }), _c("view", { staticClass: _vm._$s(34, "sc", "button-right"), attrs: { _i: 34 }, on: { click: function($event) { return _vm.ledId() } } }) ] ), _c( "view", { staticClass: _vm._$s(35, "sc", "main"), attrs: { _i: 35 } }, [ _c( "view", { staticClass: _vm._$s(36, "sc", "main-sides"), attrs: { _i: 36 } }, [ _c( "view", { staticClass: _vm._$s(37, "sc", "box box-lg"), attrs: { _i: 37 } }, [ _c("view", { staticClass: _vm._$s( 38, "sc", "box-border box-border1" ), attrs: { _i: 38 } }), _c("view", { staticClass: _vm._$s( 39, "sc", "box-border box-border2" ), attrs: { _i: 39 } }), _c("view", { staticClass: _vm._$s( 40, "sc", "box-border box-border3" ), attrs: { _i: 40 } }), _c("view", { staticClass: _vm._$s( 41, "sc", "box-border box-border4" ), attrs: { _i: 41 } }), _c( "view", { staticClass: _vm._$s(42, "sc", "box-item introduce"), attrs: { _i: 42 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(44, "sc", "english"), attrs: { _i: 44 } }), _c("p", { staticClass: _vm._$s(45, "sc", "introduce-content"), attrs: { _i: 45 } }) ] ), _c( "view", { staticClass: _vm._$s( 46, "sc", "box-item charge-info" ), attrs: { _i: 46 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(48, "sc", "english"), attrs: { _i: 48 } }), _c( "view", { staticClass: _vm._$s( 49, "sc", "charge-info-item" ), attrs: { _i: 49 } }, [ _c("image", { attrs: { src: _vm._$s( 50, "a-src", __webpack_require__(/*! ../../static/a1.png */ 71) ), _i: 50 } }), _c("view", [ _c( "text", { staticClass: _vm._$s(52, "sc", "count"), attrs: { _i: 52 } }, [ _vm._v( _vm._$s(52, "t0-0", _vm._s(_vm.xDistance)) ) ] ), _c("text", { staticClass: _vm._$s(53, "sc", "unit"), attrs: { _i: 53 } }) ]), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 55, "sc", "charge-info-item" ), attrs: { _i: 55 } }, [ _c("image", { attrs: { src: _vm._$s( 56, "a-src", __webpack_require__(/*! ../../static/b1.png */ 72) ), _i: 56 } }), _c("view", [ _c( "text", { staticClass: _vm._$s(58, "sc", "count"), attrs: { _i: 58 } }, [ _vm._v( _vm._$s(58, "t0-0", _vm._s(_vm.yDistance)) ) ] ), _c("text", { staticClass: _vm._$s(59, "sc", "unit"), attrs: { _i: 59 } }) ]), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 61, "sc", "charge-info-item" ), attrs: { _i: 61 } }, [ _c("image", { attrs: { src: _vm._$s( 62, "a-src", __webpack_require__(/*! ../../static/c1.png */ 73) ), _i: 62 } }), _c("view", [ _c( "text", { staticClass: _vm._$s(64, "sc", "count"), attrs: { _i: 64 } }, [ _vm._v( _vm._$s(64, "t0-0", _vm._s(_vm.xDuration)) ) ] ), _c("text", { staticClass: _vm._$s(65, "sc", "unit"), attrs: { _i: 65 } }) ]), _c("view") ] ), _c( "view", { staticClass: _vm._$s( 67, "sc", "charge-info-item" ), attrs: { _i: 67 } }, [ _c("image", { attrs: { src: _vm._$s( 68, "a-src", __webpack_require__(/*! ../../static/d1.png */ 74) ), _i: 68 } }), _c("view", [ _c( "text", { staticClass: _vm._$s(70, "sc", "count"), attrs: { _i: 70 } }, [ _vm._v( _vm._$s(70, "t0-0", _vm._s(_vm.yDuration)) ) ] ), _c("text", { staticClass: _vm._$s(71, "sc", "unit"), attrs: { _i: 71 } }) ]), _c("view") ] ) ] ), _c( "view", { staticClass: _vm._$s(73, "sc", "box-item use-info"), attrs: { _i: 73 } }, [ _c( "view", { staticClass: _vm._$s(74, "sc", "use-left"), attrs: { _i: 74 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(76, "sc", "english"), attrs: { _i: 76 } }) ] ), _c( "view", { staticClass: _vm._$s(77, "sc", "use-right"), attrs: { _i: 77 } }, [ _c("h3", [ _vm._v(_vm._$s(78, "t0-0", _vm._s(_vm.usedPr))) ]), _c("p", { staticClass: _vm._$s(79, "sc", "english"), attrs: { _i: 79 } }) ] ), _c( "view", { staticClass: _vm._$s(80, "sc", "use-main"), attrs: { _i: 80 } }, [ _c( "view", { staticClass: _vm._$s(81, "sc", "left"), attrs: { _i: 81 } }, [ _c( "view", { staticClass: _vm._$s( 82, "sc", "progressBar" ), attrs: { _i: 82 } }, [ _c("view", { staticClass: _vm._$s( 83, "sc", "progress" ), style: _vm._$s( 83, "s", "width:" + _vm.usedPr + "%" ), attrs: { _i: 83 } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(84, "sc", "right"), attrs: { _i: 84 } }, [_vm._v(_vm._$s(84, "t0-0", _vm._s(_vm.used)))] ) ] ) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(85, "sc", "main-sides"), attrs: { _i: 85 } }, [ _c( "view", { staticClass: _vm._$s(86, "sc", "box box-tp"), attrs: { _i: 86 } }, [ _c("view", { staticClass: _vm._$s( 87, "sc", "box-border box-border1" ), attrs: { _i: 87 } }), _c("view", { staticClass: _vm._$s( 88, "sc", "box-border box-border2" ), attrs: { _i: 88 } }), _c("view", { staticClass: _vm._$s( 89, "sc", "box-border box-border3" ), attrs: { _i: 89 } }), _c("view", { staticClass: _vm._$s( 90, "sc", "box-border box-border4" ), attrs: { _i: 90 } }), _c( "view", { staticClass: _vm._$s(91, "sc", "box-item right-item"), attrs: { _i: 91 } }, [ _c( "view", { staticClass: _vm._$s(92, "sc", "sub-left"), attrs: { _i: 92 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(94, "sc", "english"), attrs: { _i: 94 } }) ] ), _c( "view", { staticClass: _vm._$s(95, "sc", "sub-right"), attrs: { _i: 95 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(97, "sc", "english"), attrs: { _i: 97 } }) ] ), _c( "view", { staticClass: _vm._$s(98, "sc", "sub-main"), attrs: { _i: 98 } }, [ _c( "view", { staticClass: _vm._$s(99, "sc", "charts-box"), attrs: { _i: 99 } }, [ _c("qiun-data-charts", { attrs: { type: "line", chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, _i: 100 } }) ], 1 ) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(101, "sc", "box box-md"), attrs: { _i: 101 } }, [ _c("view", { staticClass: _vm._$s( 102, "sc", "box-border box-border1" ), attrs: { _i: 102 } }), _c("view", { staticClass: _vm._$s( 103, "sc", "box-border box-border2" ), attrs: { _i: 103 } }), _c("view", { staticClass: _vm._$s( 104, "sc", "box-border box-border3" ), attrs: { _i: 104 } }), _c("view", { staticClass: _vm._$s( 105, "sc", "box-border box-border4" ), attrs: { _i: 105 } }), _c( "view", { staticClass: _vm._$s( 106, "sc", "box-item right-item" ), attrs: { _i: 106 } }, [ _c( "view", { staticClass: _vm._$s(107, "sc", "sub-left"), attrs: { _i: 107 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(109, "sc", "english"), attrs: { _i: 109 } }) ] ), _c( "view", { staticClass: _vm._$s(110, "sc", "sub-right"), attrs: { _i: 110 } }, [ _c("h3"), _c("p", { staticClass: _vm._$s(112, "sc", "english"), attrs: { _i: 112 } }) ] ), _c( "view", { staticClass: _vm._$s(113, "sc", "sub-main"), attrs: { _i: 113 } }, [ _c( "view", { staticClass: _vm._$s( 114, "sc", "charts-box ring" ), attrs: { _i: 114 } }, [ _c("qiun-data-charts", { attrs: { type: "ring", opts: { legend: { position: "bottom" } }, eopts: _vm.ringOpts, chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, _i: 115 } }) ], 1 ), _c( "view", { staticClass: _vm._$s( 116, "sc", "sub-main-right" ), attrs: { _i: 116 } }, [ _c( "view", { staticClass: _vm._$s( 117, "sc", "sub-info" ), attrs: { _i: 117 } }, [ _c("image", { attrs: { src: _vm._$s( 118, "a-src", __webpack_require__(/*! ../../static/g1.png */ 75) ), _i: 118 } }), _c("text"), _c("text", [ _vm._v( _vm._$s( 120, "t0-0", _vm._s(_vm.stockCount) ) ) ]) ] ), _c( "view", { staticClass: _vm._$s( 121, "sc", "sub-info" ), attrs: { _i: 121 } }, [ _c("image", { attrs: { src: _vm._$s( 122, "a-src", __webpack_require__(/*! ../../static/f1.png */ 97) ), _i: 122 } }), _c("text"), _c("text", [ _vm._v( _vm._$s( 124, "t0-0", _vm._s(_vm.emptyCount) ) ) ]) ] ), _c( "view", { staticClass: _vm._$s( 125, "sc", "sub-info" ), attrs: { _i: 125 } }, [ _c("image", { attrs: { src: _vm._$s( 126, "a-src", __webpack_require__(/*! ../../static/e1.png */ 98) ), _i: 126 } }), _c("text"), _c("text", [ _vm._v( _vm._$s( 128, "t0-0", _vm._s(_vm.noneCount) ) ) ]) ] ) ] ) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(129, "sc", "box box-bt"), attrs: { _i: 129 } }, [ _c("view", { staticClass: _vm._$s( 130, "sc", "box-border box-border1" ), attrs: { _i: 130 } }), _c("view", { staticClass: _vm._$s( 131, "sc", "box-border box-border2" ), attrs: { _i: 131 } }), _c("view", { staticClass: _vm._$s( 132, "sc", "box-border box-border3" ), attrs: { _i: 132 } }), _c("view", { staticClass: _vm._$s( 133, "sc", "box-border box-border4" ), attrs: { _i: 133 } }), _c("view", { attrs: { _i: 134 }, on: { click: function($event) { return _vm.crn() } } }) ] ) ] ) ] ) ] ), _c( "view", [ _c( "uni-popup", { ref: "url", attrs: { type: "dialog", _i: 136 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置url", value: _vm.baseIP, placeholder: "示例:192.168.1.1", _i: 137 }, on: { confirm: _vm.baseUrlConfirm } }) ], 1 ) ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "ledId", attrs: { type: "dialog", _i: 139 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置ledId", value: _vm.baseLedId, placeholder: "示例:188", _i: 140 }, on: { confirm: _vm.ledIdConfirm } }) ], 1 ) ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "port", attrs: { type: "dialog", _i: 142 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置端口号", value: _vm.basePort, placeholder: "示例:9090", _i: 143 }, on: { confirm: _vm.portConfirm } }) ], 1 ) ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "crnId", attrs: { type: "dialog", _i: 145 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置堆垛机", value: _vm.crnId, placeholder: "示例:1", _i: 146 }, on: { confirm: _vm.crnConfirm } }) ], 1 ) ], 1 ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(147, "v-show", _vm.ejectShow), expression: "_$s(147,'v-show',ejectShow)" } ], staticClass: _vm._$s(147, "sc", "eject-mask"), attrs: { _i: 147 } }, [ _c( "view", { staticClass: _vm._$s(148, "sc", "eject"), attrs: { _i: 148 } }, [ _c("view", { staticClass: _vm._$s(149, "sc", "eject-title"), attrs: { _i: 149 } }), _c( "view", { staticClass: _vm._$s(150, "sc", "eject-input"), attrs: { _i: 150 } }, [ _c( "view", { staticClass: _vm._$s(151, "sc", "item"), attrs: { _i: 151 } }, [ _c("view", { staticClass: _vm._$s(152, "sc", "desc"), attrs: { _i: 152 } }), _c( "view", { staticClass: _vm._$s(153, "sc", "input"), attrs: { _i: 153 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP" } ], attrs: { _i: 154 }, domProps: { value: _vm._$s(154, "v-model", _vm.baseIP) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(155, "sc", "item"), attrs: { _i: 155 } }, [ _c("view", { staticClass: _vm._$s(156, "sc", "desc"), attrs: { _i: 156 } }), _c( "view", { staticClass: _vm._$s(157, "sc", "input"), attrs: { _i: 157 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort" } ], attrs: { _i: 158 }, domProps: { value: _vm._$s(158, "v-model", _vm.basePort) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(159, "sc", "item"), attrs: { _i: 159 } }, [ _c("view", { staticClass: _vm._$s(160, "sc", "desc"), attrs: { _i: 160 } }), _c( "view", { staticClass: _vm._$s(161, "sc", "input"), attrs: { _i: 161 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId" } ], attrs: { _i: 162 }, domProps: { value: _vm._$s(162, "v-model", _vm.baseLedId) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value } } }) ] ) ] ), _c( "view", { staticClass: _vm._$s(163, "sc", "item"), attrs: { _i: 163 } }, [ _c("view", { staticClass: _vm._$s(164, "sc", "desc"), attrs: { _i: 164 } }), _c( "view", { staticClass: _vm._$s(165, "sc", "input"), attrs: { _i: 165 } }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId" } ], attrs: { _i: 166 }, domProps: { value: _vm._$s(166, "v-model", _vm.baseCrnId) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value } } }) ] ) ] ) ] ), _c( "view", { staticClass: _vm._$s(167, "sc", "eject-button"), attrs: { _i: 167 } }, [ _c("view", { staticClass: _vm._$s(168, "sc", "button-item"), attrs: { _i: 168 }, on: { click: _vm.ejectClose } }), _c("view", { staticClass: _vm._$s(169, "sc", "button-item"), attrs: { _i: 169 }, on: { click: _vm.ejectConfirm } }) ] ) ] ) ] ) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 82 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 83);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 85);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC91bmktcG9wdXAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///82\n"); /***/ }), /* 83 */ /*!***********************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \***********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 84); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 84 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 5) .default } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.showPopup) ? _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup"), class: _vm._$s(0, "c", [ _vm.popupstyle, _vm.isDesktop ? "fixforpc-z-index" : "" ]), attrs: { _i: 0 }, on: { touchmove: function($event) { $event.stopPropagation() $event.preventDefault() return _vm.clear($event) } } }, [ _c( "view", { attrs: { _i: 1 }, on: { touchstart: _vm.touchstart } }, [ _vm._$s(2, "i", _vm.maskShow) ? _c("uni-transition", { key: "1", attrs: { name: "mask", "mode-class": "fade", styles: _vm.maskClass, duration: _vm.duration, show: _vm.showTrans, _i: 2 }, on: { click: _vm.onTap } }) : _vm._e(), _c( "uni-transition", { key: "2", attrs: { "mode-class": _vm.ani, name: "content", styles: _vm.transClass, duration: _vm.duration, show: _vm.showTrans, _i: 3 }, on: { click: _vm.onTap } }, [ _c( "view", { staticClass: _vm._$s(4, "sc", "uni-popup__wrapper"), class: _vm._$s(4, "c", [_vm.popupstyle]), style: _vm._$s(4, "s", { backgroundColor: _vm.bg }), attrs: { _i: 4 }, on: { click: _vm.clear } }, [_vm._t("default", null, { _i: 5 })], 2 ) ] ) ], 1 ) ] ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 85 */ /*!*****************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 86);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZzQixDQUFnQix1ckJBQUcsRUFBQyIsImZpbGUiOiI4NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n"); /***/ }), /* 86 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/**\r\n * PopUp 弹出层\r\n * @description 弹出层组件,为了解决遮罩弹层的问题\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\r\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式\r\n * \t@value top 顶部弹出\r\n * \t@value center 中间弹出\r\n * \t@value bottom 底部弹出\r\n * \t@value left\t\t左侧弹出\r\n * \t@value right 右侧弹出\r\n * \t@value message 消息提示\r\n * \t@value dialog 对话框\r\n * \t@value share 底部分享示例\r\n * @property {Boolean} animation = [true|false] 是否开启动画\r\n * @property {Boolean} maskClick = [true|false] 蒙版点击是否关闭弹窗(废弃)\r\n * @property {Boolean} isMaskClick = [true|false] 蒙版点击是否关闭弹窗\r\n * @property {String} backgroundColor 主窗口背景色\r\n * @property {String} maskBackgroundColor 蒙版颜色\r\n * @property {Boolean} safeArea\t\t 是否适配底部安全区\r\n * @event {Function} change 打开关闭弹窗触发,e={show: false}\r\n * @event {Function} maskClick 点击遮罩触发\r\n */var _default =\n\n{\n name: 'uniPopup',\n components: {},\n\n\n\n\n emits: ['change', 'maskClick'],\n props: {\n // 开启动画\n animation: {\n type: Boolean,\n default: true },\n\n // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层\n // message: 消息提示 ; dialog : 对话框\n type: {\n type: String,\n default: 'center' },\n\n // maskClick\n isMaskClick: {\n type: Boolean,\n default: null },\n\n // TODO 2 个版本后废弃属性 ,使用 isMaskClick\n maskClick: {\n type: Boolean,\n default: null },\n\n backgroundColor: {\n type: String,\n default: 'none' },\n\n safeArea: {\n type: Boolean,\n default: true },\n\n maskBackgroundColor: {\n type: String,\n default: 'rgba(0, 0, 0, 0.4)' } },\n\n\n\n watch: {\n /**\r\n * 监听type类型\r\n */\n type: {\n handler: function handler(type) {\n if (!this.config[type]) return;\n this[this.config[type]](true);\n },\n immediate: true },\n\n isDesktop: {\n handler: function handler(newVal) {\n if (!this.config[newVal]) return;\n this[this.config[this.type]](true);\n },\n immediate: true },\n\n /**\r\n * 监听遮罩是否可点击\r\n * @param {Object} val\r\n */\n maskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true },\n\n isMaskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true },\n\n // H5 下禁止底部滚动\n showPopup: function showPopup(show) {\n\n\n\n\n } },\n\n data: function data() {\n return {\n duration: 300,\n ani: [],\n showPopup: false,\n showTrans: false,\n popupWidth: 0,\n popupHeight: 0,\n config: {\n top: 'top',\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n right: 'right',\n message: 'top',\n dialog: 'center',\n share: 'bottom' },\n\n maskClass: {\n position: 'fixed',\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)' },\n\n transClass: {\n position: 'fixed',\n left: 0,\n right: 0 },\n\n maskShow: true,\n mkclick: true,\n popupstyle: this.isDesktop ? 'fixforpc-top' : 'top' };\n\n },\n computed: {\n isDesktop: function isDesktop() {\n return this.popupWidth >= 500 && this.popupHeight >= 500;\n },\n bg: function bg() {\n if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n return 'transparent';\n }\n return this.backgroundColor;\n } },\n\n mounted: function mounted() {var _this = this;\n var fixSize = function fixSize() {var _uni$getSystemInfoSyn =\n uni.getSystemInfoSync(),windowWidth = _uni$getSystemInfoSyn.windowWidth,windowHeight = _uni$getSystemInfoSyn.windowHeight,windowTop = _uni$getSystemInfoSyn.windowTop,safeArea = _uni$getSystemInfoSyn.safeArea,screenHeight = _uni$getSystemInfoSyn.screenHeight,safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n _this.popupWidth = windowWidth;\n _this.popupHeight = windowHeight + windowTop;\n // TODO fix by mehaotian 是否适配底部安全区 ,目前微信ios 、和 app ios 计算有差异,需要框架修复\n if (safeArea) {\n\n\n\n\n _this.safeAreaInsets = safeAreaInsets.bottom;\n\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n\n\n\n\n\n\n },\n created: function created() {\n // this.mkclick = this.isMaskClick || this.maskClick\n if (this.isMaskClick === null && this.maskClick === null) {\n this.mkclick = true;\n } else {\n this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n }\n if (this.animation) {\n this.duration = 300;\n } else {\n this.duration = 0;\n }\n // TODO 处理 message 组件生命周期异常的问题\n this.messageChild = null;\n // TODO 解决头条冒泡的问题\n this.clearPropagation = false;\n this.maskClass.backgroundColor = this.maskBackgroundColor;\n },\n methods: {\n /**\r\n * 公用方法,不显示遮罩层\r\n */\n closeMask: function closeMask() {\n this.maskShow = false;\n },\n /**\r\n * 公用方法,遮罩层禁止点击\r\n */\n disableMask: function disableMask() {\n this.mkclick = false;\n },\n // TODO nvue 取消冒泡\n clear: function clear(e) {\n\n e.stopPropagation();\n\n this.clearPropagation = true;\n },\n\n open: function open(direction) {\n var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n if (!(direction && innerType.indexOf(direction) !== -1)) {\n direction = this.type;\n }\n if (!this.config[direction]) {\n __f__(\"error\", '缺少类型:', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:246\");\n return;\n }\n this[this.config[direction]]();\n this.$emit('change', {\n show: true,\n type: direction });\n\n },\n close: function close(type) {var _this2 = this;\n this.showTrans = false;\n this.$emit('change', {\n show: false,\n type: this.type });\n\n clearTimeout(this.timer);\n // // 自定义关闭事件\n // this.customOpen && this.customClose()\n this.timer = setTimeout(function () {\n _this2.showPopup = false;\n }, 300);\n },\n // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容\n touchstart: function touchstart() {\n this.clearPropagation = false;\n },\n\n onTap: function onTap() {\n if (this.clearPropagation) {\n // fix by mehaotian 兼容 nvue\n this.clearPropagation = false;\n return;\n }\n this.$emit('maskClick');\n if (!this.mkclick) return;\n this.close();\n },\n /**\r\n * 顶部弹出样式处理\r\n */\n top: function top(type) {var _this3 = this;\n this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n this.ani = ['slide-top'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: this.bg };\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n this.$nextTick(function () {\n if (_this3.messageChild && _this3.type === 'message') {\n _this3.messageChild.timerClose();\n }\n });\n },\n /**\r\n * 底部弹出样式处理\r\n */\n bottom: function bottom(type) {\n this.popupstyle = 'bottom';\n this.ani = ['slide-bottom'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n paddingBottom: this.safeAreaInsets + 'px',\n backgroundColor: this.bg };\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n /**\r\n * 中间弹出样式处理\r\n */\n center: function center(type) {\n this.popupstyle = 'center';\n this.ani = ['zoom-out', 'fade'];\n this.transClass = {\n position: 'fixed',\n\n display: 'flex',\n flexDirection: 'column',\n\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n justifyContent: 'center',\n alignItems: 'center' };\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n left: function left(type) {\n this.popupstyle = 'left';\n this.ani = ['slide-left'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n bottom: 0,\n top: 0,\n backgroundColor: this.bg,\n\n display: 'flex',\n flexDirection: 'column' };\n\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n right: function right(type) {\n this.popupstyle = 'right';\n this.ani = ['slide-right'];\n this.transClass = {\n position: 'fixed',\n bottom: 0,\n right: 0,\n top: 0,\n backgroundColor: this.bg,\n\n display: 'flex',\n flexDirection: 'column' };\n\n\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQSxrQkFEQTtBQUVBLGdCQUZBOzs7OztBQU9BLGdDQVBBO0FBUUE7QUFDQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQUZBOztBQU1BO0FBQ0E7QUFDQTtBQUNBLGtCQURBO0FBRUEsdUJBRkEsRUFSQTs7QUFZQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWJBOztBQWlCQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWxCQTs7QUFzQkE7QUFDQSxrQkFEQTtBQUVBLHFCQUZBLEVBdEJBOztBQTBCQTtBQUNBLG1CQURBO0FBRUEsbUJBRkEsRUExQkE7O0FBOEJBO0FBQ0Esa0JBREE7QUFFQSxtQ0FGQSxFQTlCQSxFQVJBOzs7O0FBNENBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FKQTtBQUtBLHFCQUxBLEVBSkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUpBO0FBS0EscUJBTEEsRUFYQTs7QUFrQkE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUEscUJBSkEsRUF0QkE7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxxQkFKQSxFQTVCQTs7QUFrQ0E7QUFDQSxhQW5DQSxxQkFtQ0EsSUFuQ0EsRUFtQ0E7Ozs7O0FBS0EsS0F4Q0EsRUE1Q0E7O0FBc0ZBLE1BdEZBLGtCQXNGQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxhQUZBO0FBR0Esc0JBSEE7QUFJQSxzQkFKQTtBQUtBLG1CQUxBO0FBTUEsb0JBTkE7QUFPQTtBQUNBLGtCQURBO0FBRUEsd0JBRkE7QUFHQSx3QkFIQTtBQUlBLG9CQUpBO0FBS0Esc0JBTEE7QUFNQSxz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QW5KQTtBQW9KQSxTQXBKQSxpQkFvSkEsSUFwSkEsRUFvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGlCQUZBO0FBR0EsZ0JBSEE7QUFJQSxjQUpBO0FBS0EsZ0NBTEE7O0FBT0EsdUJBUEE7QUFRQSwrQkFSQTs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRLQSxFQWhMQSxFIiwiZmlsZSI6Ijg2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJzaG93UG9wdXBcIiBjbGFzcz1cInVuaS1wb3B1cFwiIDpjbGFzcz1cIltwb3B1cHN0eWxlLCBpc0Rlc2t0b3AgPyAnZml4Zm9ycGMtei1pbmRleCcgOiAnJ11cIiBAdG91Y2htb3ZlLnN0b3AucHJldmVudD1cImNsZWFyXCI+XHJcblx0XHQ8dmlldyBAdG91Y2hzdGFydD1cInRvdWNoc3RhcnRcIiA+XHJcblx0XHRcdDx1bmktdHJhbnNpdGlvbiBrZXk9XCIxXCIgdi1pZj1cIm1hc2tTaG93XCIgbmFtZT1cIm1hc2tcIiBtb2RlLWNsYXNzPVwiZmFkZVwiIDpzdHlsZXM9XCJtYXNrQ2xhc3NcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDpzaG93PVwic2hvd1RyYW5zXCIgQGNsaWNrPVwib25UYXBcIiAvPlxyXG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwX193cmFwcGVyXCIgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGJnIH1cIiA6Y2xhc3M9XCJbcG9wdXBzdHlsZV1cIiBAY2xpY2s9XCJjbGVhclwiPjxzbG90IC8+PC92aWV3PlxyXG5cdFx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XHJcblx0XHQ8a2V5cHJlc3Mgdi1pZj1cIm1hc2tTaG93XCIgQGVzYz1cIm9uVGFwXCIgLz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbi8vICNpZmRlZiBINVxyXG5pbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcclxuLy8gI2VuZGlmXHJcblxyXG4vKipcclxuICogUG9wVXAg5by55Ye65bGCXHJcbiAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYLnu4Tku7bvvIzkuLrkuobop6PlhrPpga7nvanlvLnlsYLnmoTpl67pophcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFt0b3B8Y2VudGVyfGJvdHRvbXxsZWZ0fHJpZ2h0fG1lc3NhZ2V8ZGlhbG9nfHNoYXJlXSDlvLnlh7rmlrnlvI9cclxuICogXHRAdmFsdWUgdG9wIOmhtumDqOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBjZW50ZXIg5Lit6Ze05by55Ye6XHJcbiAqIFx0QHZhbHVlIGJvdHRvbSDlupXpg6jlvLnlh7pcclxuICogXHRAdmFsdWUgbGVmdFx0XHTlt6bkvqflvLnlh7pcclxuICogXHRAdmFsdWUgcmlnaHQgIOWPs+S+p+W8ueWHulxyXG4gKiBcdEB2YWx1ZSBtZXNzYWdlIOa2iOaBr+aPkOekulxyXG4gKiBcdEB2YWx1ZSBkaWFsb2cg5a+56K+d5qGGXHJcbiAqIFx0QHZhbHVlIHNoYXJlIOW6lemDqOWIhuS6q+ekuuS+i1xyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGFuaW1hdGlvbiA9IFt0cnVlfGZhbHNlXSDmmK/lkKblvIDlkK/liqjnlLtcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBtYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXKOW6n+W8gylcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBpc01hc2tDbGljayA9IFt0cnVlfGZhbHNlXSDokpnniYjngrnlh7vmmK/lkKblhbPpl63lvLnnqpdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9ICBiYWNrZ3JvdW5kQ29sb3Ig5Li756qX5Y+j6IOM5pmv6ImyXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgbWFza0JhY2tncm91bmRDb2xvciDokpnniYjpopzoibJcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzYWZlQXJlYVx0XHQgICDmmK/lkKbpgILphY3lupXpg6jlronlhajljLpcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2hhbmdlIOaJk+W8gOWFs+mXreW8ueeql+inpuWPke+8jGU9e3Nob3c6IGZhbHNlfVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBtYXNrQ2xpY2sg54K55Ye76YGu572p6Kem5Y+RXHJcbiAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlQb3B1cCcsXHJcblx0Y29tcG9uZW50czoge1xyXG5cdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHRrZXlwcmVzc1xyXG5cdFx0Ly8gI2VuZGlmXHJcblx0fSxcclxuXHRlbWl0czpbJ2NoYW5nZScsJ21hc2tDbGljayddLFxyXG5cdHByb3BzOiB7XHJcblx0XHQvLyDlvIDlkK/liqjnlLtcclxuXHRcdGFuaW1hdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0Ly8g5by55Ye65bGC57G75Z6L77yM5Y+v6YCJ5YC877yMdG9wOiDpobbpg6jlvLnlh7rlsYLvvJtib3R0b23vvJrlupXpg6jlvLnlh7rlsYLvvJtjZW50ZXLvvJrlhajlsY/lvLnlh7rlsYJcclxuXHRcdC8vIG1lc3NhZ2U6IOa2iOaBr+aPkOekuiA7IGRpYWxvZyA6IOWvueivneahhlxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdjZW50ZXInXHJcblx0XHR9LFxyXG5cdFx0Ly8gbWFza0NsaWNrXHJcblx0XHRpc01hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyAyIOS4queJiOacrOWQjuW6n+W8g+WxnuaApyDvvIzkvb/nlKggaXNNYXNrQ2xpY2tcclxuXHRcdG1hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0YmFja2dyb3VuZENvbG9yOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ25vbmUnXHJcblx0XHR9LFxyXG5cdFx0c2FmZUFyZWE6e1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bWFza0JhY2tncm91bmRDb2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHR9LFxyXG5cdH0sXHJcblxyXG5cdHdhdGNoOiB7XHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrHR5cGXnsbvlnotcclxuXHRcdCAqL1xyXG5cdFx0dHlwZToge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0aXNEZXNrdG9wOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xyXG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxyXG5cdFx0ICovXHJcblx0XHRtYXNrQ2xpY2s6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XHJcblx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGlzTWFza0NsaWNrOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcclxuXHRcdHNob3dQb3B1cChzaG93KSB7XHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcclxuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRkdXJhdGlvbjogMzAwLFxyXG5cdFx0XHRhbmk6IFtdLFxyXG5cdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxyXG5cdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxyXG5cdFx0XHRwb3B1cFdpZHRoOiAwLFxyXG5cdFx0XHRwb3B1cEhlaWdodDogMCxcclxuXHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0dG9wOiAndG9wJyxcclxuXHRcdFx0XHRib3R0b206ICdib3R0b20nLFxyXG5cdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXHJcblx0XHRcdFx0bGVmdDogJ2xlZnQnLFxyXG5cdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxyXG5cdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxyXG5cdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXHJcblx0XHRcdFx0c2hhcmU6ICdib3R0b20nXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tDbGFzczoge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHRcdH0sXHJcblx0XHRcdHRyYW5zQ2xhc3M6IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tTaG93OiB0cnVlLFxyXG5cdFx0XHRta2NsaWNrOiB0cnVlLFxyXG5cdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXHJcblx0XHR9LFxyXG5cdFx0YmcoKSB7XHJcblx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xyXG5cdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcclxuXHRcdFx0Y29uc3QgeyB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0LCB3aW5kb3dUb3AsIHNhZmVBcmVhLHNjcmVlbkhlaWdodCAsc2FmZUFyZWFJbnNldHMgfSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcblx0XHRcdHRoaXMucG9wdXBXaWR0aCA9IHdpbmRvd1dpZHRoXHJcblx0XHRcdHRoaXMucG9wdXBIZWlnaHQgPSB3aW5kb3dIZWlnaHQgKyB3aW5kb3dUb3BcclxuXHRcdFx0Ly8gVE9ETyBmaXggYnkgbWVoYW90aWFuIOaYr+WQpumAgumFjeW6lemDqOWuieWFqOWMuiAs55uu5YmN5b6u5L+haW9zIOOAgeWSjCBhcHAgaW9zIOiuoeeul+acieW3ruW8gu+8jOmcgOimgeahhuaetuS/ruWkjVxyXG5cdFx0XHRpZihzYWZlQXJlYSl7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IDBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Zml4U2l6ZSgpXHJcblx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxyXG5cdFx0Ly8gdGhpcy4kb25jZSgnaG9vazpiZWZvcmVEZXN0cm95JywgKCkgPT4ge1xyXG5cdFx0Ly8gXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml4U2l6ZSlcclxuXHRcdC8vIH0pXHJcblx0XHQvLyAjZW5kaWZcclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyB0aGlzLm1rY2xpY2sgPSAgdGhpcy5pc01hc2tDbGljayB8fCB0aGlzLm1hc2tDbGlja1xyXG5cdFx0aWYodGhpcy5pc01hc2tDbGljayA9PT0gbnVsbCAmJiB0aGlzLm1hc2tDbGljayA9PT0gbnVsbCl7XHJcblx0XHRcdHRoaXMubWtjbGljayAgPSB0cnVlXHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gdGhpcy5pc01hc2tDbGljayAhPT0gbnVsbCA/IHRoaXMuaXNNYXNrQ2xpY2sgOiB0aGlzLm1hc2tDbGlja1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYW5pbWF0aW9uKSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAzMDBcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAwXHJcblx0XHR9XHJcblx0XHQvLyBUT0RPIOWkhOeQhiBtZXNzYWdlIOe7hOS7tueUn+WRveWRqOacn+W8guW4uOeahOmXrumimFxyXG5cdFx0dGhpcy5tZXNzYWdlQ2hpbGQgPSBudWxsXHJcblx0XHQvLyBUT0RPIOino+WGs+WktOadoeWGkuazoeeahOmXrumimFxyXG5cdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdHRoaXMubWFza0NsYXNzLmJhY2tncm91bmRDb2xvciA9IHRoaXMubWFza0JhY2tncm91bmRDb2xvclxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDlhaznlKjmlrnms5XvvIzkuI3mmL7npLrpga7nvanlsYJcclxuXHRcdCAqL1xyXG5cdFx0Y2xvc2VNYXNrKCkge1xyXG5cdFx0XHR0aGlzLm1hc2tTaG93ID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOWFrOeUqOaWueazle+8jOmBrue9qeWxguemgeatoueCueWHu1xyXG5cdFx0ICovXHJcblx0XHRkaXNhYmxlTWFzaygpIHtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIG52dWUg5Y+W5raI5YaS5rOhXHJcblx0XHRjbGVhcihlKSB7XHJcblx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHJcblx0XHRvcGVuKGRpcmVjdGlvbikge1xyXG5cdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cclxuXHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xyXG5cdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcclxuXHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRzaG93OiBmYWxzZSxcclxuXHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcclxuXHRcdFx0fSlcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxyXG5cdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXHJcblx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXHJcblx0XHRcdH0sIDMwMClcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcclxuXHRcdHRvdWNoc3RhcnQoKXtcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdH0sXHJcblxyXG5cdFx0b25UYXAoKSB7XHJcblx0XHRcdGlmICh0aGlzLmNsZWFyUHJvcGFnYXRpb24pIHtcclxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWFvOWuuSBudnVlXHJcblx0XHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdtYXNrQ2xpY2snKVxyXG5cdFx0XHRpZiAoIXRoaXMubWtjbGljaykgcmV0dXJuXHJcblx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog6aG26YOo5by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdHRvcCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9IHRoaXMuaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXRvcCcgOiAndG9wJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtdG9wJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVzc2FnZUNoaWxkICYmIHRoaXMudHlwZSA9PT0gJ21lc3NhZ2UnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDaGlsZC50aW1lckNsb3NlKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDlupXpg6jlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0Ym90dG9tKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2JvdHRvbSdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRwYWRkaW5nQm90dG9tOiB0aGlzLnNhZmVBcmVhSW5zZXRzKydweCcsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5Lit6Ze05by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdGNlbnRlcih0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdjZW50ZXInXHJcblx0XHRcdHRoaXMuYW5pID0gWyd6b29tLW91dCcsICdmYWRlJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuXHRcdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRsZWZ0KHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2xlZnQnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1sZWZ0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRyaWdodCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdyaWdodCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLXJpZ2h0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiA+XHJcbi51bmktcG9wdXAge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ei1pbmRleDogOTk7XHJcblx0LyogI2VuZGlmICovXHJcblx0Ji50b3AsXHJcblx0Ji5sZWZ0LFxyXG5cdCYucmlnaHQge1xyXG5cdFx0LyogI2lmZGVmIEg1ICovXHJcblx0XHR0b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQvKiAjaWZuZGVmIEg1ICovXHJcblx0XHR0b3A6IDA7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHR9XHJcblx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LyogaXBob25leCDnrYnlronlhajljLrorr7nva7vvIzlupXpg6jlronlhajljLrpgILphY0gKi9cclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdCYubGVmdCxcclxuXHRcdCYucmlnaHQge1xyXG5cdFx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdGZsZXg6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZml4Zm9ycGMtei1pbmRleCB7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHotaW5kZXg6IDk5OTtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmZpeGZvcnBjLXRvcCB7XHJcblx0dG9wOiAwO1xyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///86\n"); /***/ }), /* 87 */ /*!******************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 88);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=script&lang=js& */ 90);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNTQ1MjBhJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLWRpYWxvZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC1kaWFsb2cvdW5pLXBvcHVwLWRpYWxvZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///87\n"); /***/ }), /* 88 */ /*!*************************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 89); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 89 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup-dialog"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uni-dialog-title"), attrs: { _i: 1 } }, [ _c( "text", { staticClass: _vm._$s(2, "sc", "uni-dialog-title-text"), class: _vm._$s(2, "c", ["uni-popup__" + _vm.dialogType]), attrs: { _i: 2 } }, [_vm._v(_vm._$s(2, "t0-0", _vm._s(_vm.titleText)))] ) ] ), _vm._$s(3, "i", _vm.mode === "base") ? _c( "view", { staticClass: _vm._$s(3, "sc", "uni-dialog-content"), attrs: { _i: 3 } }, [ _vm._t( "default", [ _c( "text", { staticClass: _vm._$s(5, "sc", "uni-dialog-content-text"), attrs: { _i: 5 } }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.content)))] ) ], { _i: 4 } ) ], 2 ) : _c( "view", { staticClass: _vm._$s(6, "sc", "uni-dialog-content"), attrs: { _i: 6 } }, [ _vm._t( "default", [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.val, expression: "val" } ], staticClass: _vm._$s(8, "sc", "uni-dialog-input"), attrs: { placeholder: _vm._$s( 8, "a-placeholder", _vm.placeholderText ), focus: _vm._$s(8, "a-focus", _vm.focus), _i: 8 }, domProps: { value: _vm._$s(8, "v-model", _vm.val) }, on: { input: function($event) { if ($event.target.composing) { return } _vm.val = $event.target.value } } }) ], { _i: 7 } ) ], 2 ), _c( "view", { staticClass: _vm._$s(9, "sc", "uni-dialog-button-group"), attrs: { _i: 9 } }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "uni-dialog-button"), attrs: { _i: 10 }, on: { click: _vm.closeDialog } }, [ _c( "text", { staticClass: _vm._$s(11, "sc", "uni-dialog-button-text"), attrs: { _i: 11 } }, [_vm._v(_vm._$s(11, "t0-0", _vm._s(_vm.closeText)))] ) ] ), _c( "view", { staticClass: _vm._$s( 12, "sc", "uni-dialog-button uni-border-left" ), attrs: { _i: 12 }, on: { click: _vm.onOk } }, [ _c( "text", { staticClass: _vm._$s( 13, "sc", "uni-dialog-button-text uni-button-color" ), attrs: { _i: 13 } }, [_vm._v(_vm._$s(13, "t0-0", _vm._s(_vm.okText)))] ) ] ) ] ) ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 90 */ /*!*******************************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=script&lang=js& */ 91);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI5MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///90\n"); /***/ }), /* 91 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 92));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 65);\n\n\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 93));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),t = _initVueI18n.t; /**\n * PopUp 弹出层-对话框样式\n * @description 弹出层-对话框样式\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} value input 模式下的默认值\n * @property {String} placeholder input 模式下输入提示\n * @property {String} type = [success|warning|info|error] 主题样式\n * @value success 成功\n * \t@value warning 提示\n * \t@value info 消息\n * \t@value error 错误\n * @property {String} mode = [base|input] 模式、\n * \t@value base 基础对话框\n * \t@value input 可输入对话框\n * @property {String} content 对话框内容\n * @property {Boolean} beforeClose 是否拦截取消事件\n * @event {Function} confirm 点击确认按钮触发\n * @event {Function} close 点击取消按钮触发\n */var _default = { name: \"uniPopupDialog\", mixins: [_popup.default], emits: ['confirm', 'close'], props: { value: { type: [String, Number], default: '' }, placeholder: { type: [String, Number], default: '' }, type: { type: String, default: 'error' }, mode: { type: String, default: 'base' }, title: { type: String, default: '' },\n\n content: {\n type: String,\n default: '' },\n\n beforeClose: {\n type: Boolean,\n default: false },\n\n cancelText: {\n type: String,\n default: '' },\n\n confirmText: {\n type: String,\n default: '' } },\n\n\n data: function data() {\n return {\n dialogType: 'error',\n focus: false,\n val: \"\" };\n\n },\n computed: {\n okText: function okText() {\n return this.confirmText || t(\"uni-popup.ok\");\n },\n closeText: function closeText() {\n return this.cancelText || t(\"uni-popup.cancel\");\n },\n placeholderText: function placeholderText() {\n return this.placeholder || t(\"uni-popup.placeholder\");\n },\n titleText: function titleText() {\n return this.title || t(\"uni-popup.title\");\n } },\n\n watch: {\n type: function type(val) {\n this.dialogType = val;\n },\n mode: function mode(val) {\n if (val === 'input') {\n this.dialogType = 'info';\n }\n },\n value: function value(val) {\n this.val = val;\n } },\n\n created: function created() {\n // 对话框遮罩不可点击\n this.popup.disableMask();\n // this.popup.closeMask()\n if (this.mode === 'input') {\n this.dialogType = 'info';\n this.val = this.value;\n } else {\n this.dialogType = this.type;\n }\n },\n mounted: function mounted() {\n this.focus = true;\n },\n methods: {\n /**\n * 点击确认按钮\n */\n onOk: function onOk() {\n if (this.mode === 'input') {\n this.$emit('confirm', this.val);\n } else {\n this.$emit('confirm');\n }\n if (this.beforeClose) return;\n this.popup.close();\n },\n /**\n * 点击取消按钮\n */\n closeDialog: function closeDialog() {\n this.$emit('close');\n if (this.beforeClose) return;\n this.popup.close();\n },\n close: function close() {\n this.popup.close();\n } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBO0FBQ0E7OztBQUdBLCtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBQ0EseUMsQ0FBQSxDLGdCQUFBLEMsRUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21HQW9CQSxFQUNBLHNCQURBLEVBRUEsd0JBRkEsRUFHQSwyQkFIQSxFQUlBLFNBQ0EsU0FDQSxzQkFEQSxFQUVBLFdBRkEsRUFEQSxFQUtBLGVBQ0Esc0JBREEsRUFFQSxXQUZBLEVBTEEsRUFTQSxRQUNBLFlBREEsRUFFQSxnQkFGQSxFQVRBLEVBYUEsUUFDQSxZQURBLEVBRUEsZUFGQSxFQWJBLEVBaUJBLFNBQ0EsWUFEQSxFQUVBLFdBRkEsRUFqQkE7O0FBcUJBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQXJCQTs7QUF5QkE7QUFDQSxtQkFEQTtBQUVBLG9CQUZBLEVBekJBOztBQTZCQTtBQUNBLGtCQURBO0FBRUEsaUJBRkEsRUE3QkE7O0FBaUNBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQWpDQSxFQUpBOzs7QUEwQ0EsTUExQ0Esa0JBMENBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGtCQUZBO0FBR0EsYUFIQTs7QUFLQSxHQWhEQTtBQWlEQTtBQUNBLFVBREEsb0JBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxhQUpBLHVCQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsbUJBUEEsNkJBT0E7QUFDQTtBQUNBLEtBVEE7QUFVQSxhQVZBLHVCQVVBO0FBQ0E7QUFDQSxLQVpBLEVBakRBOztBQStEQTtBQUNBLFFBREEsZ0JBQ0EsR0FEQSxFQUNBO0FBQ0E7QUFDQSxLQUhBO0FBSUEsUUFKQSxnQkFJQSxHQUpBLEVBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVJBO0FBU0EsU0FUQSxpQkFTQSxHQVRBLEVBU0E7QUFDQTtBQUNBLEtBWEEsRUEvREE7O0FBNEVBLFNBNUVBLHFCQTRFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQSxHQXRGQTtBQXVGQSxTQXZGQSxxQkF1RkE7QUFDQTtBQUNBLEdBekZBO0FBMEZBO0FBQ0E7OztBQUdBLFFBSkEsa0JBSUE7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVpBO0FBYUE7OztBQUdBLGVBaEJBLHlCQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBcEJBO0FBcUJBLFNBckJBLG1CQXFCQTtBQUNBO0FBQ0EsS0F2QkEsRUExRkEsRSIsImZpbGUiOiI5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInVuaS1wb3B1cC1kaWFsb2dcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy10aXRsZVwiPlxyXG5cdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctdGl0bGUtdGV4dFwiIDpjbGFzcz1cIlsndW5pLXBvcHVwX18nK2RpYWxvZ1R5cGVdXCI+e3t0aXRsZVRleHR9fTwvdGV4dD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtaWY9XCJtb2RlID09PSAnYmFzZSdcIiBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudC10ZXh0XCI+e3tjb250ZW50fX08L3RleHQ+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtZWxzZSBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJ1bmktZGlhbG9nLWlucHV0XCIgdi1tb2RlbD1cInZhbFwiIHR5cGU9XCJ0ZXh0XCIgOnBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJUZXh0XCIgOmZvY3VzPVwiZm9jdXNcIiA+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tZ3JvdXBcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvblwiIEBjbGljaz1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi10ZXh0XCI+e3tjbG9zZVRleHR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uIHVuaS1ib3JkZXItbGVmdFwiIEBjbGljaz1cIm9uT2tcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLXRleHQgdW5pLWJ1dHRvbi1jb2xvclwiPnt7b2tUZXh0fX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcG9wdXAgZnJvbSAnLi4vdW5pLXBvcHVwL3BvcHVwLmpzJ1xyXG5cdGltcG9ydCB7XHJcblx0aW5pdFZ1ZUkxOG5cclxuXHR9IGZyb20gJ0BkY2xvdWRpby91bmktaTE4bidcclxuXHRpbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vdW5pLXBvcHVwL2kxOG4vaW5kZXguanMnXHJcblx0Y29uc3Qge1x0dCB9ID0gaW5pdFZ1ZUkxOG4obWVzc2FnZXMpXHJcblx0LyoqXHJcblx0ICogUG9wVXAg5by55Ye65bGCLeWvueivneahhuagt+W8j1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYIt5a+56K+d5qGG5qC35byPXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB2YWx1ZSBpbnB1dCDmqKHlvI/kuIvnmoTpu5jorqTlgLxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gcGxhY2Vob2xkZXIgaW5wdXQg5qih5byP5LiL6L6T5YWl5o+Q56S6XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbc3VjY2Vzc3x3YXJuaW5nfGluZm98ZXJyb3JdIOS4u+mimOagt+W8j1xyXG5cdCAqICBAdmFsdWUgc3VjY2VzcyDmiJDlip9cclxuXHQgKiBcdEB2YWx1ZSB3YXJuaW5nIOaPkOekulxyXG5cdCAqIFx0QHZhbHVlIGluZm8g5raI5oGvXHJcblx0ICogXHRAdmFsdWUgZXJyb3Ig6ZSZ6K+vXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IG1vZGUgPSBbYmFzZXxpbnB1dF0g5qih5byP44CBXHJcblx0ICogXHRAdmFsdWUgYmFzZSDln7rnoYDlr7nor53moYZcclxuXHQgKiBcdEB2YWx1ZSBpbnB1dCDlj6/ovpPlhaXlr7nor53moYZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gY29udGVudCDlr7nor53moYblhoXlrrlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGJlZm9yZUNsb3NlIOaYr+WQpuaLpuaIquWPlua2iOS6i+S7tlxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNvbmZpcm0g54K55Ye756Gu6K6k5oyJ6ZKu6Kem5Y+RXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xvc2Ug54K55Ye75Y+W5raI5oyJ6ZKu6Kem5Y+RXHJcblx0ICovXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6IFwidW5pUG9wdXBEaWFsb2dcIixcclxuXHRcdG1peGluczogW3BvcHVwXSxcclxuXHRcdGVtaXRzOlsnY29uZmlybScsJ2Nsb3NlJ10sXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2Vycm9yJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdiYXNlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aXRsZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb250ZW50OiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGJlZm9yZUNsb3NlOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxUZXh0OntcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29uZmlybVRleHQ6e1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRkaWFsb2dUeXBlOiAnZXJyb3InLFxyXG5cdFx0XHRcdGZvY3VzOiBmYWxzZSxcclxuXHRcdFx0XHR2YWw6IFwiXCJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdG9rVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25maXJtVGV4dCB8fCB0KFwidW5pLXBvcHVwLm9rXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNsb3NlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jYW5jZWxUZXh0IHx8IHQoXCJ1bmktcG9wdXAuY2FuY2VsXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHBsYWNlaG9sZGVyVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCB0KFwidW5pLXBvcHVwLnBsYWNlaG9sZGVyXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRpdGxlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy50aXRsZSB8fCB0KFwidW5pLXBvcHVwLnRpdGxlXCIpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHR0eXBlKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlKHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09ICdpbnB1dCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9ICdpbmZvJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dmFsdWUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy52YWwgPSB2YWxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdC8vIOWvueivneahhumBrue9qeS4jeWPr+eCueWHu1xyXG5cdFx0XHR0aGlzLnBvcHVwLmRpc2FibGVNYXNrKClcclxuXHRcdFx0Ly8gdGhpcy5wb3B1cC5jbG9zZU1hc2soKVxyXG5cdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gJ2luZm8nXHJcblx0XHRcdFx0dGhpcy52YWwgPSB0aGlzLnZhbHVlXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gdGhpcy50eXBlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLmZvY3VzID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+ehruiupOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0b25PaygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLnZhbClcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZih0aGlzLmJlZm9yZUNsb3NlKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+WPlua2iOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Y2xvc2VEaWFsb2coKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHRcdGlmKHRoaXMuYmVmb3JlQ2xvc2UpIHJldHVyblxyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZSgpe1xyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuXHQudW5pLXBvcHVwLWRpYWxvZyB7XHJcblx0XHR3aWR0aDogMzAwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMXB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLXRpdGxlIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctdGl0bGUtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctY29udGVudCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWNvbnRlbnQtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogIzZDNkM2QztcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbi1ncm91cCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogI2Y1ZjVmNTtcclxuXHRcdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogNDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktYm9yZGVyLWxlZnQge1xyXG5cdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICNmMGYwZjA7XHJcblx0XHRib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Y29sb3I6ICMzMzM7XHJcblx0fVxyXG5cclxuXHQudW5pLWJ1dHRvbi1jb2xvciB7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWlucHV0IHtcclxuXHRcdGZsZXg6IDE7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRib3JkZXI6IDFweCAjZWVlIHNvbGlkO1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0Y29sb3I6ICM1NTU7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19zdWNjZXNzIHtcclxuXHRcdGNvbG9yOiAjNGNkOTY0O1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fd2FybiB7XHJcblx0XHRjb2xvcjogI2YwYWQ0ZTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2Vycm9yIHtcclxuXHRcdGNvbG9yOiAjZGQ1MjRkO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mbyB7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\n"); /***/ }), /* 92 */ /*!***********************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/popup.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\n data: function data() {\n return {};\n\n\n },\n created: function created() {\n this.popup = this.getParent();\n },\n methods: {\n /**\r\n * 获取父元素实例\r\n */\n getParent: function getParent() {var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniPopup';\n var parent = this.$parent;\n var parentName = parent.$options.name;\n while (parentName !== name) {\n parent = parent.$parent;\n if (!parent) return false;\n parentName = parent.$options.name;\n }\n return parent;\n } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFDZTtBQUNkQSxNQURjLGtCQUNQO0FBQ04sV0FBTyxFQUFQOzs7QUFHQSxHQUxhO0FBTWRDLFNBTmMscUJBTUw7QUFDUixTQUFLQyxLQUFMLEdBQWEsS0FBS0MsU0FBTCxFQUFiO0FBQ0EsR0FSYTtBQVNkQyxTQUFPLEVBQUM7QUFDUDs7O0FBR0FELGFBSk8sdUJBSXNCLEtBQW5CRSxJQUFtQix1RUFBWixVQUFZO0FBQzVCLFVBQUlDLE1BQU0sR0FBRyxLQUFLQyxPQUFsQjtBQUNBLFVBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFQLENBQWdCSixJQUFqQztBQUNBLGFBQU9HLFVBQVUsS0FBS0gsSUFBdEIsRUFBNEI7QUFDM0JDLGNBQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFoQjtBQUNBLFlBQUksQ0FBQ0QsTUFBTCxFQUFhLE9BQU8sS0FBUDtBQUNiRSxrQkFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVAsQ0FBZ0JKLElBQTdCO0FBQ0E7QUFDRCxhQUFPQyxNQUFQO0FBQ0EsS0FiTSxFQVRNLEUiLCJmaWxlIjoiOTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKXtcclxuXHRcdHRoaXMucG9wdXAgPSB0aGlzLmdldFBhcmVudCgpXHJcblx0fSxcclxuXHRtZXRob2RzOntcclxuXHRcdC8qKlxyXG5cdFx0ICog6I635Y+W54i25YWD57Sg5a6e5L6LXHJcblx0XHQgKi9cclxuXHRcdGdldFBhcmVudChuYW1lID0gJ3VuaVBvcHVwJykge1xyXG5cdFx0XHRsZXQgcGFyZW50ID0gdGhpcy4kcGFyZW50O1xyXG5cdFx0XHRsZXQgcGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHR3aGlsZSAocGFyZW50TmFtZSAhPT0gbmFtZSkge1xyXG5cdFx0XHRcdHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xyXG5cdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHBhcmVudDtcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///92\n"); /***/ }), /* 93 */ /*!****************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/index.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 94));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 95));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 96));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =\n{\n en: _en.default,\n 'zh-Hans': _zhHans.default,\n 'zh-Hant': _zhHant.default };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiJ1RkFBQTtBQUNBO0FBQ0Esb0Y7QUFDZTtBQUNkQSxJQUFFLEVBQUZBLFdBRGM7QUFFZCxhQUFXQyxlQUZHO0FBR2QsYUFBV0MsZUFIRyxFIiwiZmlsZSI6IjkzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVuIGZyb20gJy4vZW4uanNvbidcclxuaW1wb3J0IHpoSGFucyBmcm9tICcuL3poLUhhbnMuanNvbidcclxuaW1wb3J0IHpoSGFudCBmcm9tICcuL3poLUhhbnQuanNvbidcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGVuLFxyXG5cdCd6aC1IYW5zJzogemhIYW5zLFxyXG5cdCd6aC1IYW50JzogemhIYW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///93\n"); /***/ }), /* 94 */ /*!***************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/en.json ***! \***************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"cancel\\\",\\\"uni-popup.ok\\\":\\\"ok\\\",\\\"uni-popup.placeholder\\\":\\\"pleace enter\\\",\\\"uni-popup.title\\\":\\\"Hint\\\",\\\"uni-popup.shareTitle\\\":\\\"Share to\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5NC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ /*!********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json ***! \********************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"确定\\\",\\\"uni-popup.placeholder\\\":\\\"请输入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5NS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /*!********************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json ***! \********************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"確定\\\",\\\"uni-popup.placeholder\\\":\\\"請輸入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5Ni5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/f1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/f1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /*!*********************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/static/e1.png ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/e1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///98\n"); /***/ }), /* 99 */ /*!*****************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 100);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRyQixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI5OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\n"); /***/ }), /* 100 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 101));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 78));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { commonUrl: null, // 通用url\n show: true, modeClass: 'fade', styles: {}, baseIP: '', baseLedId: '', basePort: '', crnId: '', value: '', xDistance: 0, yDistance: 0, xDuration: 0, yDuration: 0, used: 317, usedPr: 90, stockCount: 0, emptyCount: 0, noneCount: 0, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, chartsDataLine1: {}, chartsDataPie2: {}, ringOpts: {}, year: 2022, month: 4, day: 14, hours: 13, minutes: 38, seconds: 13, week: '星期四', ani: '', // move: 'upMove 1.5s 1;',\n move: false, topMove: 'topUp', floorMove: '', version: '', // newspaper:'拣料出库(4426)\\n源库位:1200101\\n目标站:186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '', errorPaper: '', title: '', staNo: '', matnr: '', maknx: '', count: '', orderNo: null, doneOfTray: '', totalOfTray: '', doneOfUnit: '', totalOfUnit: '', errorMsg: null, width: 'full-width', errorShow: '', pakinShow: '', pakinGun: '', orderShow: false, swiper: 'swiper-here', autoplay: true, // 自动循环\n interval: 1000, // 调用时长\n duration: 8000, // 移动速度\n matList: [], // 订单列表\n ejectShow: false };}, mounted: function mounted() {var that = this;var BaseIP = uni.getStorageSync('BaseIp');var BaseLedId = uni.getStorageSync('BaseLedId');var BasePort = uni.getStorageSync('BasePort');var BaseCrnId = uni.getStorageSync('BaseCrnId');that.baseIP = BaseIP;that.baseLedId = BaseLedId;that.basePort = BasePort;that.baseCrnId = BaseCrnId;this.getUrl();}, onReady: function onReady() {var _this = this;setInterval(function () {// 获得初始数据\n _this.initlineChart();_this.initPieChart(); // 主页信息\n _this.getServerData();_this.getOther(); // 其他信息\n _this.getDate();_this.getPakin();_this.getError(); // this.getYYY();\n // this.getEEE();\n _this.animation();}, 1000);}, methods: { // 获取url\n getUrl: function getUrl() {this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;}, // 获取错误信息\n getYYY: function getYYY() {var that = this;var result = _data.default.dataEEE; // 测试用 ↓\n var res = result.data; // 测试用 ↑\n // 返回结果有值 且值不等于空值 就是有错误信息需要展示\n if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 显示\n } else {that.errorPaper = '';that.errorShow = false;if (that.pakinShow) {return;} else {that.move = true; // 隐藏\n }}}, getEEE: function getEEE() {var that = this;var newsData = '';var str = '';var result = _data.default.dataYYY; // 测试用 ↓\n var res = result.data; // 测试用 ↑\n if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '全板出库';} else if (res.data[0].ioType === 103) {that.title = '检料出库';}that.staNo = '目标站:' + res.data[0].staNo;that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;that.count = '出库数量:' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"订单号:\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;if (that.errorShow) {return;} else {that.newspaper = newsData;that.move = false;}} else {that.move = true;}}, // 获取错误信息\n getError: function getError() {var that = this;var res;uni.request({ url: that.commonUrl + \"/monitor/led/error\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 显示\n } else {that.errorShow = false; // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 隐藏\n // }\n }} });}, getPakin: function getPakin() {var that = this;that.matList = []; // 清空条码列表\n var newsData = '';var str = '';var res;uni.request({ url: that.commonUrl + \"/monitor/led\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (that.errorShow) {return; // 有错误信息\n }if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '全板出库';} else if (res.data[0].ioType === 103) {that.title = '检料出库';} else that.title = res.data[0].title;that.staNo = '目标站:' + res.data[0].staNo;that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;that.count = '出库数量:' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"订单号:\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;that.newspaper = newsData;that.move = false;} else {that.move = true;}} });}, animation: function animation() {__f__(\"log\", this.move, \" at pages/index/index.vue:552\");if (this.move) {this.topMove = 'topUp';this.floorMove = 'floorUp';} else {this.topMove = 'topDown';this.floorMove = 'floorDown';}}, getDateFormat: function getDateFormat(value) {var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;var d = date.getDate();var newDate = m + '-' + d;return newDate;}, /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/line/charts\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];that.chartsData.Line.series = res.data.rows;}} });}, /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/loc/rep\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Pie.series[0].data = res.data.pie;that.stockCount = res.data.stockCunt;that.emptyCount = res.data.emptyCount;that.noneCount = res.data.noneCount;that.used = res.data.used;that.usedPr = res.data.usedPr;}} });}, getOther: function getOther() {var that = this;uni.request({ // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\", data: { crnId: that.baseCrnId, ledId: 1 }, success: function success(result) {__f__(\"log\", result, \" at pages/index/index.vue:616\");var res = result.data;if (res.code === 200) {that.xDistance = res.data.xDistance;that.yDistance = res.data.yDistance;that.xDuration = res.data.xDuration;that.yDuration = res.data.yDuration;} else if (res.code === 403) {} else {}} });\n\n },\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 弹出层确认\n ejectConfirm: function ejectConfirm() {\n uni.setStorageSync('BaseIp', this.baseIP);\n uni.setStorageSync('BaseLedId', this.baseLedId);\n uni.setStorageSync('BasePort', this.basePort);\n uni.setStorageSync('BaseCrnId', this.baseCrnId);\n this.getUrl();\n this.ejectShow = false;\n },\n // 弹出层取消\n ejectClose: function ejectClose() {\n this.ejectShow = false;\n },\n getServerData: function getServerData() {\n this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n },\n complete: function complete(e) {\n __f__(\"log\", \"渲染完成事件\", e, \" at pages/index/index.vue:652\");\n },\n getDate: function getDate() {\n var dt = new Date();\n this.year = dt.getFullYear();\n this.month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n this.day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n this.weeks = dt.getDay();\n switch (this.weeks) {\n case 0:this.week = \"星期日\";break;\n case 1:this.week = \"星期一\";break;\n case 2:this.week = \"星期二\";break;\n case 3:this.week = \"星期三\";break;\n case 4:this.week = \"星期四\";break;\n case 5:this.week = \"星期五\";break;\n default:this.week = \"星期六\";}\n\n } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsImNvdW50Iiwib3JkZXJObyIsImRvbmVPZlRyYXkiLCJ0b3RhbE9mVHJheSIsImRvbmVPZlVuaXQiLCJ0b3RhbE9mVW5pdCIsImVycm9yTXNnIiwid2lkdGgiLCJlcnJvclNob3ciLCJwYWtpblNob3ciLCJwYWtpbkd1biIsIm9yZGVyU2hvdyIsInN3aXBlciIsImF1dG9wbGF5IiwiaW50ZXJ2YWwiLCJkdXJhdGlvbiIsIm1hdExpc3QiLCJlamVjdFNob3ciLCJtb3VudGVkIiwidGhhdCIsIkJhc2VJUCIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiQmFzZUxlZElkIiwiQmFzZVBvcnQiLCJCYXNlQ3JuSWQiLCJiYXNlQ3JuSWQiLCJnZXRVcmwiLCJvblJlYWR5Iiwic2V0SW50ZXJ2YWwiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0U2VydmVyRGF0YSIsImdldE90aGVyIiwiZ2V0RGF0ZSIsImdldFBha2luIiwiZ2V0RXJyb3IiLCJhbmltYXRpb24iLCJtZXRob2RzIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiZ2V0WVlZIiwicmVzdWx0IiwieWNxZGF0YSIsImRhdGFFRUUiLCJyZXMiLCJnZXRFRUUiLCJuZXdzRGF0YSIsInN0ciIsImRhdGFZWVkiLCJpb1R5cGUiLCJtYXREdG9zIiwicmVxdWVzdCIsInVybCIsImxlZElkIiwibWV0aG9kIiwic3VjY2VzcyIsImdldERhdGVGb3JtYXQiLCJkYXRlIiwiRGF0ZSIsInNldERhdGUiLCJtIiwiZ2V0TW9udGgiLCJkIiwibmV3RGF0ZSIsImNvZGUiLCJMaW5lIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsInJvd3MiLCJQaWUiLCJwaWUiLCJzdG9ja0N1bnQiLCJlamVjdGVkIiwiZWplY3RDb25maXJtIiwic2V0U3RvcmFnZVN5bmMiLCJlamVjdENsb3NlIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY29tcGxldGUiLCJlIiwiZHQiLCJnZXRGdWxsWWVhciIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJ3ZWVrcyIsImdldERheSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeVNDO0FBQ0EsZ0csOEZBMVNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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aEQsT0FBSCxFQUF4QixHQUF1Q2dELEVBQUUsQ0FBQ2hELE9BQUgsRUFBbEQ7QUFDQSxXQUFLakQsS0FBTCxHQUFhaUcsRUFBRSxDQUFDRSxRQUFILEtBQWdCLEVBQWhCLEdBQXFCLE1BQU1GLEVBQUUsQ0FBQ0UsUUFBSCxFQUEzQixHQUEyQ0YsRUFBRSxDQUFDRSxRQUFILEVBQXhEO0FBQ0EsV0FBS2xHLE9BQUwsR0FBZWdHLEVBQUUsQ0FBQ0csVUFBSCxLQUFrQixFQUFsQixHQUF1QixNQUFNSCxFQUFFLENBQUNHLFVBQUgsRUFBN0IsR0FBK0NILEVBQUUsQ0FBQ0csVUFBSCxFQUE5RDtBQUNBLFdBQUtsRyxPQUFMLEdBQWUrRixFQUFFLENBQUNJLFVBQUgsS0FBa0IsRUFBbEIsR0FBdUIsTUFBTUosRUFBRSxDQUFDSSxVQUFILEVBQTdCLEdBQStDSixFQUFFLENBQUNJLFVBQUgsRUFBOUQ7QUFDQSxXQUFLQyxLQUFMLEdBQWFMLEVBQUUsQ0FBQ00sTUFBSCxFQUFiO0FBQ0EsY0FBUSxLQUFLRCxLQUFiO0FBQ0MsYUFBSyxDQUFMLENBQVEsS0FBS25HLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGFBQUssQ0FBTCxDQUFRLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGFBQUssQ0FBTCxDQUFRLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGFBQUssQ0FBTCxDQUFRLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGFBQUssQ0FBTCxDQUFRLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGFBQUssQ0FBTCxDQUFRLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBQW1CO0FBQzNCLGdCQUFVLEtBQUtBLElBQUwsR0FBWSxLQUFaLENBUFg7O0FBU0EsS0EzUU8sRUF6R0ssRSIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuXHRpbXBvcnQgeWNxZGF0YSBmcm9tICdAL3BhZ2VzL2luZGV4L2RhdGEuanNvbic7XG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbW1vblVybDpudWxsLCAvLyDpgJrnlKh1cmxcblx0XHRcdFx0c2hvdzogdHJ1ZSxcblx0XHRcdFx0bW9kZUNsYXNzOiAnZmFkZScsXG5cdFx0XHRcdHN0eWxlczoge30sXG5cdFx0XHRcdGJhc2VJUDonJyxcblx0XHRcdFx0YmFzZUxlZElkOicnLFxuXHRcdFx0XHRiYXNlUG9ydDonJyxcblx0XHRcdFx0Y3JuSWQ6JycsXG5cdFx0XHRcdHZhbHVlOiAnJyxcblx0XHRcdFx0eERpc3RhbmNlOiAwLFxuXHRcdFx0XHR5RGlzdGFuY2U6MCxcblx0XHRcdFx0eER1cmF0aW9uOjAsXG5cdFx0XHRcdHlEdXJhdGlvbjowLFxuXHRcdFx0XHR1c2VkOjMxNyxcblx0XHRcdFx0dXNlZFByOiA5MCxcblx0XHRcdFx0c3RvY2tDb3VudDowLFxuXHRcdFx0XHRlbXB0eUNvdW50OjAsXG5cdFx0XHRcdG5vbmVDb3VudDowLFxuXHRcdFx0XHRjaGFydHNEYXRhOiB7XG5cdFx0XHRcdFx0XCJMaW5lXCI6IHtcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFtdXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcIlBpZVwiOiB7XG5cdFx0XHRcdFx0XHRcInNlcmllc1wiOiBbe1xuXHRcdFx0XHRcdFx0XHRcImRhdGFcIjogW11cblx0XHRcdFx0XHRcdH1dXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdFx0Y2hhcnRzRGF0YUxpbmUxOiB7fSxcblx0XHRcdFx0Y2hhcnRzRGF0YVBpZTI6IHt9LFxuXHRcdFx0XHRyaW5nT3B0czp7fSxcblx0XHRcdFx0eWVhcjoyMDIyLFxuXHRcdFx0XHRtb250aDo0LFxuXHRcdFx0XHRkYXk6MTQsXG5cdFx0XHRcdGhvdXJzOjEzLFxuXHRcdFx0XHRtaW51dGVzOjM4LFxuXHRcdFx0XHRzZWNvbmRzOjEzLFxuXHRcdFx0XHR3ZWVrOifmmJ/mnJ/lm5snLFxuXHRcdFx0XHRhbmk6JycsXG5cdFx0XHRcdC8vIG1vdmU6ICd1cE1vdmUgMS41cyAxOycsXG5cdFx0XHRcdG1vdmU6ZmFsc2UsXG5cdFx0XHRcdHRvcE1vdmU6J3RvcFVwJyxcblx0XHRcdFx0Zmxvb3JNb3ZlOicnLFxuXHRcdFx0XHR2ZXJzaW9uOicnLFxuXHRcdFx0XHQvLyBuZXdzcGFwZXI6J+aLo+aWmeWHuuW6k++8iDQ0MjYpXFxu5rqQ5bqT5L2N77yaMTIwMDEwMVxcbuebruagh+erme+8mjE4NlxcbjExMDE4NDItMTAwMDAtMjIwNDc1MTg1MTdcXG5cXG4nLFx0XG5cdFx0XHRcdG5ld3NwYXBlcjonJyxcblx0XHRcdFx0ZXJyb3JQYXBlcjonJyxcblx0XHRcdFx0dGl0bGU6JycsXG5cdFx0XHRcdHN0YU5vOicnLFxuXHRcdFx0XHRtYXRucjonJyxcblx0XHRcdFx0bWFrbng6JycsXG5cdFx0XHRcdGNvdW50OicnLFxuXHRcdFx0XHRvcmRlck5vOm51bGwsXG5cdFx0XHRcdGRvbmVPZlRyYXk6JycsXG5cdFx0XHRcdHRvdGFsT2ZUcmF5OicnLFxuXHRcdFx0XHRkb25lT2ZVbml0OicnLFxuXHRcdFx0XHR0b3RhbE9mVW5pdDonJyxcblx0XHRcdFx0ZXJyb3JNc2c6bnVsbCxcblx0XHRcdFx0d2lkdGg6J2Z1bGwtd2lkdGgnLFxuXHRcdFx0XHRlcnJvclNob3c6JycsXG5cdFx0XHRcdHBha2luU2hvdzonJyxcblx0XHRcdFx0cGFraW5HdW46JycsXG5cdFx0XHRcdG9yZGVyU2hvdzpmYWxzZSxcblx0XHRcdFx0c3dpcGVyOidzd2lwZXItaGVyZScsXG5cdFx0XHRcdGF1dG9wbGF5OnRydWUsIC8vIOiHquWKqOW+queOr1xuXHRcdFx0XHRpbnRlcnZhbDoxMDAwLCAvLyDosIPnlKjml7bplb9cblx0XHRcdFx0ZHVyYXRpb246ODAwMCwgLy8g56e75Yqo6YCf5bqmXG5cdFx0XHRcdG1hdExpc3Q6W10sIC8vIOiuouWNleWIl+ihqFxuXHRcdFx0XHRlamVjdFNob3c6IGZhbHNlLFxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1vdW50ZWQoKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XG5cdFx0XHRjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XG5cdFx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xuXHRcdFx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxuXHRcdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxuXHRcdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcblx0XHRcdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcblx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHR9LFxuXHRcdG9uUmVhZHkoKSB7XG5cdFx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRcdC8vIOiOt+W+l+WIneWni+aVsOaNrlxuXHRcdFx0XHR0aGlzLmluaXRsaW5lQ2hhcnQoKTtcblx0XHRcdFx0dGhpcy5pbml0UGllQ2hhcnQoKTtcblx0XHRcdFx0Ly8g5Li76aG15L+h5oGvXG5cdFx0XHRcdHRoaXMuZ2V0U2VydmVyRGF0YSgpO1xuXHRcdFx0XHR0aGlzLmdldE90aGVyKCk7XG5cdFx0XHRcdC8vIOWFtuS7luS/oeaBr1xuXHRcdFx0XHR0aGlzLmdldERhdGUoKTtcblx0XHRcdFx0dGhpcy5nZXRQYWtpbigpO1xuXHRcdFx0XHR0aGlzLmdldEVycm9yKCk7XG5cdFx0XHRcdC8vIHRoaXMuZ2V0WVlZKCk7XG5cdFx0XHRcdC8vIHRoaXMuZ2V0RUVFKCk7XG5cdFx0XHRcdHRoaXMuYW5pbWF0aW9uKCk7XG5cdFx0XHR9LDEwMDApXG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHQvLyDojrflj5Z1cmxcblx0XHRcdGdldFVybCgpIHtcblx0XHRcdFx0dGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyB0aGlzLmJhc2VVcmxcblx0XHRcdH0sXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cblx0XHRcdGdldFlZWSgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHZhciByZXN1bHQgPSB5Y3FkYXRhLmRhdGFFRUVcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGk1xuXHRcdFx0XHR2YXJcdHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcblx0XHRcdFx0Ly8g6L+U5Zue57uT5p6c5pyJ5YC8IOS4lOWAvOS4jeetieS6juepuuWAvCDlsLHmmK/mnInplJnor6/kv6Hmga/pnIDopoHlsZXnpLpcblx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XG5cdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXG5cdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSB0cnVlXG5cdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhhdC5lcnJvclBhcGVyID0gJydcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0aWYgKHRoYXQucGFraW5TaG93KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Z2V0RUVFICgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHZhciBuZXdzRGF0YSA9ICcnXG5cdFx0XHRcdHZhciBzdHIgPSAnJ1xuXHRcdFx0XHRsZXQgcmVzdWx0ID0geWNxZGF0YS5kYXRhWVlZXG5cdFx0XHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXG5cdFx0XHRcdGxldFx0cmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcblx0XHRcdFx0XHRpZihyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5YWo5p2/5Ye65bqTJ1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAzKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhhdC5zdGFObyA9ICfnm67moIfnq5k6JyArIHJlcy5kYXRhWzBdLnN0YU5vXG5cdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXG5cdFx0XHRcdFx0XHR0aGF0Lm1ha254ID0gJ+WVhuWTgeWQjeensO+8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XG5cdFx0XHRcdFx0XHR0aGF0LmNvdW50ID0gJ+WHuuW6k+aVsOmHj++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0ub3JkZXJObykge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBcIuiuouWNleWPt++8mlwiICsgcmVzLmRhdGFbMF0ub3JkZXJOb1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IHRydWVcblx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdoYWxmLXdpZHRoJ1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSBmYWxzZVxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2Z1bGwtd2lkdGgnXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlRyYXkgPSAn5bey5Ye65omY55uY5pWwOicgKyByZXMuZGF0YVswXS5kb25lT2ZUcmF5XG5cdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZUcmF5ID0gJ+aJmOebmOaAu+aVsOmHj++8micgKyByZXMuZGF0YVswXS50b3RhbE9mVHJheVxuXHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZVbml0ID0gJ+W3suWHuueuseaVsO+8micgKyByZXMuZGF0YVswXS5kb25lT2ZVbml0XG5cdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZVbml0ID0gJ+aAu+euseaVsO+8micgKyByZXMuZGF0YVswXS50b3RhbE9mVW5pdFxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuZXJyb3JTaG93KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubmV3c3BhcGVyID0gbmV3c0RhdGFcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1lbHNlIHtcblx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXG5cdFx0XHRnZXRFcnJvcigpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHZhciByZXNcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZC9lcnJvclwiLFxuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhIFxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JNc2cgPSByZXMuZGF0YVxuXHRcdFx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdC8vIGlmICh0aGF0LnBha2luU2hvdykge1xuXHRcdFx0XHRcdFx0XHQvLyBcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0Ly8gfSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8gXHQvLyB0aGF0Lm1vdmUgPSB0cnVlIC8vIOmakOiXj1xuXHRcdFx0XHRcdFx0XHQvLyB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRnZXRQYWtpbiAoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR0aGF0Lm1hdExpc3QgPSBbXSAvLyDmuIXnqbrmnaHnoIHliJfooahcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcblx0XHRcdFx0dmFyIHN0ciA9ICcnXG5cdFx0XHRcdGxldCByZXMgXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWRcIixcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHRsZWRJZDp0aGF0LmJhc2VMZWRJZFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRyZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuZXJyb3JTaG93KSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybjsgIC8vIOaciemUmeivr+S/oeaBr1xuXHRcdFx0XHRcdFx0fSBcblx0XHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5YWo5p2/5Ye65bqTJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+ajgOaWmeWHuuW6kydcblx0XHRcdFx0XHRcdFx0fSBlbHNlXG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSByZXMuZGF0YVswXS50aXRsZVxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cblx0XHRcdFx0XHRcdFx0dGhhdC5tYXRuciA9ICfllYblk4HnvJblj7fvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1ha254ID0gJ+WVhuWTgeWQjeensO+8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XG5cdFx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLm9yZGVyTm8pIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBcIuiuouWNleWPt++8mlwiICsgcmVzLmRhdGFbMF0ub3JkZXJOb1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnaGFsZi13aWR0aCdcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2Z1bGwtd2lkdGgnXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZUcmF5ID0gJ+W3suWHuuaJmOebmOaVsDonICsgcmVzLmRhdGFbMF0uZG9uZU9mVHJheVxuXHRcdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZUcmF5ID0gJ+aJmOebmOaAu+aVsOmHj++8micgKyByZXMuZGF0YVswXS50b3RhbE9mVHJheVxuXHRcdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcblx0XHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVW5pdCA9ICfmgLvnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlVuaXRcblx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZVxuXHRcdFx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSB0cnVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRhbmltYXRpb24oKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMubW92ZSk7XG5cdFx0XHRcdGlmICh0aGlzLm1vdmUpIHsgXG5cdFx0XHRcdFx0dGhpcy50b3BNb3ZlID0gJ3RvcFVwJ1xuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yVXAnXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy50b3BNb3ZlID0gJ3RvcERvd24nXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JEb3duJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Z2V0RGF0ZUZvcm1hdCh2YWx1ZSkge1xuXHRcdFx0XHR2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Ly8g6I635Y+W5b2T5YmN5pe26Ze0XG5cdFx0XHRcdGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIHZhbHVlKTsvLyDorr7nva7lpKnmlbAgLTEg5aSpXG5cdFx0XHRcdHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMVxuXHRcdFx0XHR2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpXG5cdFx0XHRcdHZhciBuZXdEYXRlID0gbSArICctJyArIGRcblx0XHRcdFx0cmV0dXJuIG5ld0RhdGVcblx0XHRcdH0sXG4vKioqKioqKioqKioqKioqIOaKmOe6v+WbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblx0XHRcdGluaXRsaW5lQ2hhcnQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLkxpbmUuY2F0ZWdvcmllcyA9IFtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSx0aGF0LmdldERhdGVGb3JtYXQoLTEwKSx0aGF0LmdldERhdGVGb3JtYXQoLTkpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOCksXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC03KSx0aGF0LmdldERhdGVGb3JtYXQoLTYpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNSksdGhhdC5nZXREYXRlRm9ybWF0KC00KSxcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTMpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMiksdGhhdC5nZXREYXRlRm9ybWF0KC0xKSx0aGF0LmdldERhdGVGb3JtYXQoMCksXVxuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcbi8qKioqKioqKioqKioqKiog6aW85Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXHRcdFx0aW5pdFBpZUNoYXJ0KCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xvYy9yZXBcIixcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLlBpZS5zZXJpZXNbMF0uZGF0YSA9IHJlcy5kYXRhLnBpZVxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0b2NrQ291bnQgPSByZXMuZGF0YS5zdG9ja0N1bnRcblx0XHRcdFx0XHRcdFx0dGhhdC5lbXB0eUNvdW50ID0gcmVzLmRhdGEuZW1wdHlDb3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0Lm5vbmVDb3VudCA9IHJlcy5kYXRhLm5vbmVDb3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZWQgPSByZXMuZGF0YS51c2VkXG5cdFx0XHRcdFx0XHRcdHRoYXQudXNlZFByID0gcmVzLmRhdGEudXNlZFByXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdGdldE90aGVyKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdC8vIGh0dHA6Ly8xMC4xMC4wLjIyMjo5MDkwL2prd2NzL21vbml0b3IvbGVkP2xlZElkPTE4NlxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL290aGVyXCIsXG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0Y3JuSWQ6IHRoYXQuYmFzZUNybklkLCBcblx0XHRcdFx0XHRcdGxlZElkOiAxLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQueERpc3RhbmNlID0gcmVzLmRhdGEueERpc3RhbmNlXG5cdFx0XHRcdFx0XHRcdHRoYXQueURpc3RhbmNlID0gcmVzLmRhdGEueURpc3RhbmNlXG5cdFx0XHRcdFx0XHRcdHRoYXQueER1cmF0aW9uID0gcmVzLmRhdGEueER1cmF0aW9uXG5cdFx0XHRcdFx0XHRcdHRoYXQueUR1cmF0aW9uID0gcmVzLmRhdGEueUR1cmF0aW9uXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09PSA0MDMpIHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0ZWplY3RlZCAoKSB7XG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguehruiupFxuXHRcdFx0ZWplY3RDb25maXJtKCkge1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnLCB0aGlzLmJhc2VMZWRJZCk7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnLHRoaXMuYmFzZVBvcnQpO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xuXHRcdFx0XHR0aGlzLmdldFVybCgpXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHQvLyDlvLnlh7rlsYLlj5bmtohcblx0XHRcdGVqZWN0Q2xvc2UoKSB7XG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHRnZXRTZXJ2ZXJEYXRhKCkge1xuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5MaW5lKSlcblx0XHRcdFx0dGhpcy5jaGFydHNEYXRhUGllMj1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5QaWUpKVxuXHRcdFx0fSxcblx0XHRcdGNvbXBsZXRlKGUpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coXCLmuLLmn5PlrozmiJDkuovku7ZcIixlKTtcblx0XHRcdH0sXG5cdFx0XHRnZXREYXRlKCkge1xuXHRcdFx0XHR2YXIgZHQgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR0aGlzLnllYXIgPSBkdC5nZXRGdWxsWWVhcigpO1xuXHRcdFx0XHR0aGlzLm1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcblx0XHRcdFx0dGhpcy5kYXkgPSBkdC5nZXREYXRlKCkgPCAxMCA/ICcwJytkdC5nZXREYXRlKCkgOiBkdC5nZXREYXRlKCk7XG5cdFx0XHRcdHRoaXMuaG91cnMgPSBkdC5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkdC5nZXRIb3VycygpIDogZHQuZ2V0SG91cnMoKTtcblx0XHRcdFx0dGhpcy5taW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XG5cdFx0XHRcdHRoaXMuc2Vjb25kcyA9IGR0LmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZHQuZ2V0U2Vjb25kcygpIDogZHQuZ2V0U2Vjb25kcygpOyBcblx0XHRcdFx0dGhpcy53ZWVrcyA9IGR0LmdldERheSgpOyBcblx0XHRcdFx0c3dpdGNoICh0aGlzLndlZWtzKSB7XG5cdFx0XHRcdFx0Y2FzZSAwOiB0aGlzLndlZWsgPSBcIuaYn+acn+aXpVwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDE6IHRoaXMud2VlayA9IFwi5pif5pyf5LiAXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgMjogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAzOiB0aGlzLndlZWsgPSBcIuaYn+acn+S4iVwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDQ6IHRoaXMud2VlayA9IFwi5pif5pyf5ZubXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgNTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdCA6IHRoaXMud2VlayA9IFwi5pif5pyf5YWtXCI7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0fVxuXHR9XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ /*!*****************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/data.json ***! \*****************************************************************/ /*! exports provided: dataYYY, dataEEE, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"dataYYY\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"全板出库\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"matDtos\\\":[{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataEEE\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n"); /***/ }), /* 102 */ /*!*******************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/monitor.vue?mpType=page ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 103);\n/* harmony import */ var _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./monitor.vue?vue&type=script&lang=js&mpType=page */ 105);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7d4f7644\",\n null,\n false,\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/monitor.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkk7QUFDM0k7QUFDc0U7QUFDTDs7O0FBR2pFO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHdGQUFNO0FBQ1IsRUFBRSx5R0FBTTtBQUNSLEVBQUUsa0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRmNzY0NCZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjdkNGY3NjQ0XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L21vbml0b3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///102\n"); /***/ }), /* 103 */ /*!*************************************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page ***! \*************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 104); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 104 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", [ _c("view", [ _c( "swiper", { attrs: { autoplay: _vm._$s(2, "a-autoplay", _vm.autoplay), interval: _vm._$s(2, "a-interval", _vm.interval), duration: _vm._$s(2, "a-duration", _vm.duration), _i: 2 } }, _vm._l(_vm._$s(3, "f", { forItems: _vm.list }), function( item, index, $20, $30 ) { return _c( "swiper-item", { key: _vm._$s(3, "f", { forIndex: $20, key: index }) }, [_c("view", [_vm._v(_vm._$s("4-" + $30, "t0-0", _vm._s(item)))])] ) }), 0 ) ]) ]) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 105 */ /*!*******************************************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=script&lang=js&mpType=page */ 106);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThyQixDQUFnQixnc0JBQUcsRUFBQyIsImZpbGUiOiIxMDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///105\n"); /***/ }), /* 106 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: [\n '请点击发行菜单进行发布',\n '1',\n '体积较大;若要正式发布',\n '2',\n '运行模式下不压缩代码且含有sourcemap',\n '3',\n '检查是否启动多个微信开发者工具,如果是则关闭所有打开的微信开发者工具,',\n '4',\n '然后再重新运行',\n '5',\n '如果出现微信开发者工具启动后白屏的问题',\n '6',\n '或者关闭微信开发者工具,然后再从HBuilderX中启动指定页面',\n '7',\n '可以通过微信开发者工具切换pages.json中condition配置的页面',\n '8',\n '中修改文件并保存,会自动刷新微信模拟器',\n '9',\n '微信开发者工具已启动,在HBuilderX',\n '10'] };\n\n\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoid0ZBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtCO0FBQ1ZBLE1BQUksRUFBQyxFQURLO0FBRVZDLE1BRlUsa0JBRUo7QUFDRixXQUFNO0FBQ0ZDLGNBQVEsRUFBQyxJQURQO0FBRUZDLGNBQVEsRUFBQyxJQUZQO0FBR0ZDLGNBQVEsRUFBQyxJQUhQO0FBSUZDLFVBQUksRUFBQztBQUNELG1CQURDO0FBRWhCLFNBRmdCO0FBR0QsbUJBSEM7QUFJaEIsU0FKZ0I7QUFLRCw4QkFMQztBQU1oQixTQU5nQjtBQU9ELDJDQVBDO0FBUWhCLFNBUmdCO0FBU0QsZUFUQztBQVVoQixTQVZnQjtBQVdELDJCQVhDO0FBWWhCLFNBWmdCO0FBYUQsd0NBYkM7QUFjaEIsU0FkZ0I7QUFlRCw4Q0FmQztBQWdCaEIsU0FoQmdCO0FBaUJELDJCQWpCQztBQWtCaEIsU0FsQmdCO0FBbUJELDZCQW5CQztBQW9CaEIsVUFwQmdCLENBSkgsRUFBTjs7O0FBMkJILEdBOUJTLEUiLCJmaWxlIjoiMTA2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuICAgIGV4cG9ydCBkZWZhdWx0e1xuICAgICAgICBuYW1lOicnLFxuICAgICAgICBkYXRhKCl7XG4gICAgICAgICAgICByZXR1cm57XG4gICAgICAgICAgICAgICAgYXV0b3BsYXk6dHJ1ZSxcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDoxMDAwLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOjEwMDAsXG4gICAgICAgICAgICAgICAgbGlzdDpbXG4gICAgICAgICAgICAgICAgICAgICfor7fngrnlh7vlj5HooYzoj5zljZXov5vooYzlj5HluIMnLFxuXHRcdFx0XHRcdCcxJyxcbiAgICAgICAgICAgICAgICAgICAgJ+S9k+enr+i+g+Wkp++8m+iLpeimgeato+W8j+WPkeW4gycsXG5cdFx0XHRcdFx0JzInLFxuICAgICAgICAgICAgICAgICAgICAn6L+Q6KGM5qih5byP5LiL5LiN5Y6L57yp5Luj56CB5LiU5ZCr5pyJc291cmNlbWFwJyxcblx0XHRcdFx0XHQnMycsXG4gICAgICAgICAgICAgICAgICAgICfmo4Dmn6XmmK/lkKblkK/liqjlpJrkuKrlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIzlpoLmnpzmmK/liJnlhbPpl63miYDmnInmiZPlvIDnmoTlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIwnLFxuXHRcdFx0XHRcdCc0JyxcbiAgICAgICAgICAgICAgICAgICAgJ+eEtuWQjuWGjemHjeaWsOi/kOihjCcsXG5cdFx0XHRcdFx0JzUnLFxuICAgICAgICAgICAgICAgICAgICAn5aaC5p6c5Ye6546w5b6u5L+h5byA5Y+R6ICF5bel5YW35ZCv5Yqo5ZCO55m95bGP55qE6Zeu6aKYJyxcblx0XHRcdFx0XHQnNicsXG4gICAgICAgICAgICAgICAgICAgICfmiJbogIXlhbPpl63lvq7kv6HlvIDlj5HogIXlt6XlhbfvvIznhLblkI7lho3ku45IQnVpbGRlcljkuK3lkK/liqjmjIflrprpobXpnaInLFxuXHRcdFx0XHRcdCc3JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WPr+S7pemAmui/h+W+ruS/oeW8gOWPkeiAheW3peWFt+WIh+aNonBhZ2VzLmpzb27kuK1jb25kaXRpb27phY3nva7nmoTpobXpnaInLFxuXHRcdFx0XHRcdCc4JyxcbiAgICAgICAgICAgICAgICAgICAgJ+S4reS/ruaUueaWh+S7tuW5tuS/neWtmO+8jOS8muiHquWKqOWIt+aWsOW+ruS/oeaooeaLn+WZqCcsXG5cdFx0XHRcdFx0JzknLFxuICAgICAgICAgICAgICAgICAgICAn5b6u5L+h5byA5Y+R6ICF5bel5YW35bey5ZCv5Yqo77yM5ZyoSEJ1aWxkZXJYJyxcblx0XHRcdFx0XHQnMTAnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n"); /***/ }), /* 107 */ /*!***************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/App.vue ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 108);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDaU07QUFDak0sZ0JBQWdCLDJNQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjEwNy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwiQXBwLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /*!****************************************************************************!*\ !*** D:/Workspace/zy/private/Monitor-APP/App.vue?vue&type=script&lang=js& ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 109);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXVwQixDQUFnQixpckJBQUcsRUFBQyIsImZpbGUiOiIxMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/App.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6IjtBQUNlO0FBQ2RBLFVBQVEsRUFBRSxvQkFBVztBQUNwQixpQkFBWSxZQUFaO0FBQ0EsR0FIYTtBQUlkQyxRQUFNLEVBQUUsa0JBQVc7QUFDbEIsaUJBQVksVUFBWjtBQUNBLEdBTmE7QUFPZEMsUUFBTSxFQUFFLGtCQUFXO0FBQ2xCLGlCQUFZLFVBQVo7QUFDQSxHQVRhLEUiLCJmaWxlIjoiMTA5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIExhdW5jaCcpXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///109\n"); /***/ }) ],[[0,"app-config"]]]);