From fdf0635d145941288edd4cfaa6da68324fa5129a Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 23 九月 2025 18:31:17 +0800 Subject: [PATCH] ## --- Monitor-APP/unpackage/dist/dev/app-plus/app-service.js | 1680 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 824 insertions(+), 856 deletions(-) diff --git a/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js b/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js index 5c05100..08a45db 100644 --- a/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js +++ b/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js @@ -368,105 +368,84 @@ staticClass: _vm._$s(19, "sc", "img-box"), attrs: { _i: 19 }, }, - [ - _c( - "swiper", - { - staticClass: _vm._$s( - 20, - "sc", - "swiper-body-main" - ), - attrs: { _i: 20 }, - }, - _vm._l( - _vm._$s(21, "f", { - forItems: _vm.locList, - }), - function (item, i, $20, $30) { - return _c( - "swiper-item", - { - key: _vm._$s(21, "f", { - forIndex: $20, - key: i, - }), - staticClass: _vm._$s( + _vm._l( + _vm._$s(20, "f", { forItems: _vm.locList }), + function (item, i, $20, $30) { + return _c( + "view", + { + key: _vm._$s(20, "f", { + forIndex: $20, + key: i, + }), + }, + [ + _c("view", [ + _vm._v( + _vm._$s( "21-" + $30, - "sc", - "swiper-item" - ), - attrs: { _i: "21-" + $30 }, - }, - [ - _c("view", [ - _vm._v( - _vm._$s( - "22-" + $30, - "t0-0", - _vm._s(item.matnr) - ) - ), - ]), - _c("view", [ - _vm._v( - _vm._$s( - "23-" + $30, - "t0-0", - _vm._s(item.matnrCount) - ) - ), - ]), - ] - ) - } - ), - 0 - ), - ] + "t0-0", + _vm._s(item.matnr) + ) + ), + ]), + _c("view", [ + _vm._v( + _vm._$s( + "22-" + $30, + "t0-0", + _vm._s(item.matnrCount) + ) + ), + ]), + ] + ) + } + ), + 0 ), ] ), _c( "view", { - staticClass: _vm._$s(24, "sc", "box-item"), - attrs: { _i: 24 }, + staticClass: _vm._$s(23, "sc", "box-item"), + attrs: { _i: 23 }, }, [ _c( "view", { - staticClass: _vm._$s(25, "sc", "flex-row"), - attrs: { _i: 25 }, + staticClass: _vm._$s(24, "sc", "flex-row"), + attrs: { _i: 24 }, }, [ _c( "view", { staticClass: _vm._$s( - 26, + 25, "sc", "flex-col" ), - attrs: { _i: 26 }, + attrs: { _i: 25 }, }, [ _c("text", { staticClass: _vm._$s( - 27, + 26, "sc", "item-title" ), - attrs: { _i: 27 }, + attrs: { _i: 26 }, }), _c("text", { staticClass: _vm._$s( - 28, + 27, "sc", "item-subTitle" ), - attrs: { _i: 28 }, + attrs: { _i: 27 }, }), ] ), @@ -475,27 +454,27 @@ "view", { staticClass: _vm._$s( - 30, + 29, "sc", "flex-col" ), - attrs: { _i: 30 }, + attrs: { _i: 29 }, }, [ _c( "text", { staticClass: _vm._$s( - 31, + 30, "sc", "item-title" ), - attrs: { _i: 31 }, + attrs: { _i: 30 }, }, [ _vm._v( _vm._$s( - 31, + 30, "t0-0", _vm._s(_vm.baseInfo.usedPr) ) @@ -510,53 +489,53 @@ _c( "view", { - staticClass: _vm._$s(32, "sc", "flex-col"), - attrs: { _i: 32 }, + staticClass: _vm._$s(31, "sc", "flex-col"), + attrs: { _i: 31 }, }, [ _c( "view", { staticClass: _vm._$s( - 33, + 32, "sc", "flex-row" ), - attrs: { _i: 33 }, + attrs: { _i: 32 }, }, [ _c( "view", { staticClass: _vm._$s( - 34, + 33, "sc", "progressBar" ), - attrs: { _i: 34 }, + attrs: { _i: 33 }, }, [ _c("view", { staticClass: _vm._$s( - 35, + 34, "sc", "progress" ), style: _vm._$s( - 35, + 34, "s", "width:" + _vm.baseInfo.usedPr + "%" ), - attrs: { _i: 35 }, + attrs: { _i: 34 }, }), ] ), _c("view", [ _vm._v( _vm._$s( - 36, + 35, "t0-0", _vm._s(_vm.baseInfo.used) ) @@ -577,81 +556,81 @@ _c( "view", { - staticClass: _vm._$s(37, "sc", "mian-item"), - attrs: { _i: 37 }, + staticClass: _vm._$s(36, "sc", "mian-item"), + attrs: { _i: 36 }, }, [ _c( "view", { - staticClass: _vm._$s(38, "sc", "mian-item-box"), - attrs: { _i: 38 }, + staticClass: _vm._$s(37, "sc", "mian-item-box"), + attrs: { _i: 37 }, }, [ _c("view", [ _c( "view", [ - _c("y-box", { attrs: { _i: 41 } }, [ + _c("y-box", { attrs: { _i: 40 } }, [ _c( "view", { staticClass: _vm._$s( - 42, + 41, "sc", "box-item" ), - attrs: { _i: 42 }, + attrs: { _i: 41 }, }, [ _c( "view", { staticClass: _vm._$s( - 43, + 42, "sc", "flex-row" ), - attrs: { _i: 43 }, + attrs: { _i: 42 }, }, [ _c( "view", { staticClass: _vm._$s( - 44, + 43, "sc", "flex-col" ), - attrs: { _i: 44 }, + attrs: { _i: 43 }, }, [ _c("text", { staticClass: _vm._$s( - 45, + 44, "sc", "item-title" ), - attrs: { _i: 45 }, + attrs: { _i: 44 }, }), _c("text", { staticClass: _vm._$s( - 46, + 45, "sc", "item-subTitle" ), - attrs: { _i: 46 }, + attrs: { _i: 45 }, }), ] ), _c("view", [ _c("view", { staticClass: _vm._$s( - 48, + 47, "sc", "flex-col" ), - attrs: { _i: 48 }, + attrs: { _i: 47 }, }), ]), ] @@ -660,11 +639,11 @@ "view", { staticClass: _vm._$s( - 49, + 48, "sc", "charts-box" ), - attrs: { _i: 49 }, + attrs: { _i: 48 }, }, [ _c("qiun-data-charts", { @@ -673,7 +652,7 @@ chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, - _i: 50, + _i: 49, }, }), ], @@ -689,55 +668,55 @@ _c( "view", [ - _c("y-box", { attrs: { _i: 53 } }, [ + _c("y-box", { attrs: { _i: 52 } }, [ _c( "view", { staticClass: _vm._$s( - 54, + 53, "sc", "box-item" ), - attrs: { _i: 54 }, + attrs: { _i: 53 }, }, [ _c( "view", { staticClass: _vm._$s( - 55, + 54, "sc", "flex-row" ), - attrs: { _i: 55 }, + attrs: { _i: 54 }, }, [ _c( "view", { staticClass: _vm._$s( - 56, + 55, "sc", "flex-col" ), - attrs: { _i: 56 }, + attrs: { _i: 55 }, }, [ _c("text", { staticClass: _vm._$s( - 57, + 56, "sc", "item-title" ), - attrs: { _i: 57 }, + attrs: { _i: 56 }, }), _c("text", { staticClass: _vm._$s( - 58, + 57, "sc", "item-subTitle" ), - attrs: { _i: 58 }, + attrs: { _i: 57 }, }), ] ), @@ -746,28 +725,28 @@ "view", { staticClass: _vm._$s( - 60, + 59, "sc", "flex-col" ), - attrs: { _i: 60 }, + attrs: { _i: 59 }, }, [ _c("text", { staticClass: _vm._$s( - 61, + 60, "sc", "item-title" ), - attrs: { _i: 61 }, + attrs: { _i: 60 }, }), _c("text", { staticClass: _vm._$s( - 62, + 61, "sc", "item-subTitle" ), - attrs: { _i: 62 }, + attrs: { _i: 61 }, }), ] ), @@ -778,22 +757,22 @@ "view", { staticClass: _vm._$s( - 63, + 62, "sc", "flex-row" ), - attrs: { _i: 63 }, + attrs: { _i: 62 }, }, [ _c( "view", { staticClass: _vm._$s( - 64, + 63, "sc", "charts-box-ring" ), - attrs: { _i: 64 }, + attrs: { _i: 63 }, }, [ _c("qiun-data-charts", { @@ -808,7 +787,7 @@ chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, - _i: 65, + _i: 64, }, }), ], @@ -819,28 +798,28 @@ "view", { staticClass: _vm._$s( - 67, + 66, "sc", "flex-row sub-info" ), - attrs: { _i: 67 }, + attrs: { _i: 66 }, }, [ _c("image", { attrs: { src: _vm._$s( - 68, + 67, "a-src", __webpack_require__(/*! ../../static/g1.png */ 112) ), - _i: 68, + _i: 67, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( - 70, + 69, "t0-0", _vm._s( _vm.baseInfo.stockCount @@ -854,28 +833,28 @@ "view", { staticClass: _vm._$s( - 71, + 70, "sc", "flex-row sub-info" ), - attrs: { _i: 71 }, + attrs: { _i: 70 }, }, [ _c("image", { attrs: { src: _vm._$s( - 72, + 71, "a-src", __webpack_require__(/*! ../../static/f1.png */ 113) ), - _i: 72, + _i: 71, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( - 74, + 73, "t0-0", _vm._s( _vm.baseInfo.emptyCount @@ -889,28 +868,28 @@ "view", { staticClass: _vm._$s( - 75, + 74, "sc", "flex-row sub-info" ), - attrs: { _i: 75 }, + attrs: { _i: 74 }, }, [ _c("image", { attrs: { src: _vm._$s( - 76, + 75, "a-src", __webpack_require__(/*! ../../static/e1.png */ 114) ), - _i: 76, + _i: 75, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( - 78, + 77, "t0-0", _vm._s( _vm.baseInfo.noneCount @@ -935,11 +914,11 @@ _c("image", { attrs: { src: _vm._$s( - 82, + 81, "a-src", __webpack_require__(/*! ../../static/img/logo-bai.png */ 115) ), - _i: 82, + _i: 81, }, }), ]), @@ -962,33 +941,42 @@ duration: _vm.duration, "mode-class": _vm.infoMode, show: _vm.infoViewShow, - _i: 83, + _i: 82, }, }, [ _c( "view", - { staticClass: _vm._$s(84, "sc", "home-view"), attrs: { _i: 84 } }, + { staticClass: _vm._$s(83, "sc", "home-view"), attrs: { _i: 83 } }, [ _c( "view", - { staticClass: _vm._$s(85, "sc", "head"), attrs: { _i: 85 } }, + { staticClass: _vm._$s(84, "sc", "head"), attrs: { _i: 84 } }, [ _c("text", [ - _vm._v(_vm._$s(86, "t0-0", _vm._s(_vm.infoText.title))), + _vm._v(_vm._$s(85, "t0-0", _vm._s(_vm.infoText.title))), ]), ] ), _c( "view", { - staticClass: _vm._$s(87, "sc", "time-tools"), - attrs: { _i: 87 }, + staticClass: _vm._$s(86, "sc", "time-tools"), + attrs: { _i: 86 }, }, - [_vm._v(_vm._$s(87, "t0-0", _vm._s(_vm.calendar)))] + [_vm._v(_vm._$s(86, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { - staticClass: _vm._$s(88, "sc", "button-left"), + staticClass: _vm._$s(87, "sc", "button-left"), + attrs: { _i: 87 }, + on: { + click: function ($event) { + return _vm.ejected() + }, + }, + }), + _c("view", { + staticClass: _vm._$s(88, "sc", "button-right"), attrs: { _i: 88 }, on: { click: function ($event) { @@ -996,48 +984,39 @@ }, }, }), - _c("view", { - staticClass: _vm._$s(89, "sc", "button-right"), - attrs: { _i: 89 }, - on: { - click: function ($event) { - return _vm.ejected() - }, - }, - }), _c( "view", { - staticClass: _vm._$s(90, "sc", "info-main"), - attrs: { _i: 90 }, + staticClass: _vm._$s(89, "sc", "info-main"), + attrs: { _i: 89 }, }, [ _c( "view", { - staticClass: _vm._$s(91, "sc", "info-box"), - attrs: { _i: 91 }, + staticClass: _vm._$s(90, "sc", "info-box"), + attrs: { _i: 90 }, }, [ - _c("y-box", { attrs: { _i: 92 } }, [ + _c("y-box", { attrs: { _i: 91 } }, [ _c( "view", { - staticClass: _vm._$s(93, "sc", "text-content"), - attrs: { _i: 93 }, + staticClass: _vm._$s(92, "sc", "text-content"), + attrs: { _i: 92 }, }, [ _c( "view", { - staticClass: _vm._$s(94, "sc", "swiper-head"), - attrs: { _i: 94 }, + staticClass: _vm._$s(93, "sc", "swiper-head"), + attrs: { _i: 93 }, }, [ _c("view", [ _vm._v( _vm._$s( - 95, + 94, "t0-0", _vm._s(_vm.infoText.barcode) ) @@ -1046,7 +1025,7 @@ _c("view", [ _vm._v( _vm._$s( - 96, + 95, "t0-0", _vm._s(_vm.infoText.workNo) ) @@ -1055,7 +1034,7 @@ _c("view", [ _vm._v( _vm._$s( - 97, + 96, "t0-0", _vm._s(_vm.infoText.sourceLocNo) ) @@ -1064,7 +1043,7 @@ _c("view", [ _vm._v( _vm._$s( - 98, + 97, "t0-0", _vm._s(_vm.infoText.staNo) ) @@ -1075,49 +1054,49 @@ _c( "view", { - staticClass: _vm._$s(99, "sc", "swiper-body"), - attrs: { _i: 99 }, + staticClass: _vm._$s(98, "sc", "swiper-body"), + attrs: { _i: 98 }, }, [ _c( "swiper", { staticClass: _vm._$s( - 100, + 99, "sc", "swiper-body-main" ), - attrs: { _i: 100 }, + attrs: { _i: 99 }, }, _vm._l( - _vm._$s(101, "f", { + _vm._$s(100, "f", { forItems: _vm.swiperList, }), function (item, i, $21, $31) { return _c( "swiper-item", { - key: _vm._$s(101, "f", { + key: _vm._$s(100, "f", { forIndex: $21, key: i, }), staticClass: _vm._$s( - "101-" + $31, + "100-" + $31, "sc", "swiper-item" ), - attrs: { _i: "101-" + $31 }, + attrs: { _i: "100-" + $31 }, }, [ _c("view", [ _vm._v( _vm._$s( - "102-" + $31, + "101-" + $31, "t0-0", _vm._s(i + 1) ) + _vm._$s( - "102-" + $31, + "101-" + $31, "t0-1", _vm._s(_vm.swiperList.length) ) @@ -1126,7 +1105,7 @@ _c("view", [ _vm._v( _vm._$s( - "103-" + $31, + "102-" + $31, "t0-0", _vm._s(item.matnr) ) @@ -1135,7 +1114,7 @@ _c("view", [ _vm._v( _vm._$s( - "104-" + $31, + "103-" + $31, "t0-0", _vm._s(item.maknx) ) @@ -1144,7 +1123,7 @@ _c("view", [ _vm._v( _vm._$s( - "105-" + $31, + "104-" + $31, "t0-0", _vm._s(item.specs) ) @@ -1153,7 +1132,7 @@ _c("view", [ _vm._v( _vm._$s( - "106-" + $31, + "105-" + $31, "t0-0", _vm._s(item.batch) ) @@ -1162,7 +1141,7 @@ _c("view", [ _vm._v( _vm._$s( - "107-" + $31, + "106-" + $31, "t0-0", _vm._s(item.orderNo) ) @@ -1171,7 +1150,7 @@ _c("view", [ _vm._v( _vm._$s( - "108-" + $31, + "107-" + $31, "t0-0", _vm._s(item.customer) ) @@ -1180,7 +1159,7 @@ _c("view", [ _vm._v( _vm._$s( - "109-" + $31, + "108-" + $31, "t0-0", _vm._s(item.count) ) @@ -1213,78 +1192,78 @@ duration: _vm.duration, "mode-class": _vm.errorInfoMode, show: _vm.errorInfoViewShow, - _i: 110, + _i: 109, }, }, [ _c( "view", { - staticClass: _vm._$s(111, "sc", "error-info-view"), - attrs: { _i: 111 }, + staticClass: _vm._$s(110, "sc", "error-info-view"), + attrs: { _i: 110 }, }, [ _c( "view", - { staticClass: _vm._$s(112, "sc", "head"), attrs: { _i: 112 } }, + { staticClass: _vm._$s(111, "sc", "head"), attrs: { _i: 111 } }, [ _c("text", [ - _vm._v(_vm._$s(113, "t0-0", _vm._s(_vm.infoText.title))), + _vm._v(_vm._$s(112, "t0-0", _vm._s(_vm.infoText.title))), ]), ] ), _c( "view", { - staticClass: _vm._$s(114, "sc", "time-tools"), - attrs: { _i: 114 }, + staticClass: _vm._$s(113, "sc", "time-tools"), + attrs: { _i: 113 }, }, - [_vm._v(_vm._$s(114, "t0-0", _vm._s(_vm.calendar)))] + [_vm._v(_vm._$s(113, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { - staticClass: _vm._$s(115, "sc", "button-left"), - attrs: { _i: 115 }, + staticClass: _vm._$s(114, "sc", "button-left"), + attrs: { _i: 114 }, }), _c("view", { - staticClass: _vm._$s(116, "sc", "button-right"), - attrs: { _i: 116 }, + staticClass: _vm._$s(115, "sc", "button-right"), + attrs: { _i: 115 }, }), _c( "view", { - staticClass: _vm._$s(117, "sc", "info-main"), - attrs: { _i: 117 }, + staticClass: _vm._$s(116, "sc", "info-main"), + attrs: { _i: 116 }, }, [ _c( "view", { - staticClass: _vm._$s(118, "sc", "info-box"), - attrs: { _i: 118 }, + staticClass: _vm._$s(117, "sc", "info-box"), + attrs: { _i: 117 }, }, [ - _c("y-box", { attrs: { _i: 119 } }, [ + _c("y-box", { attrs: { _i: 118 } }, [ _c( "view", { - staticClass: _vm._$s(120, "sc", "info-box-text"), - attrs: { _i: 120 }, + staticClass: _vm._$s(119, "sc", "info-box-text"), + attrs: { _i: 119 }, }, [ _c( "view", { staticClass: _vm._$s( - 121, + 120, "sc", "flex-col info-box-text-item" ), - attrs: { _i: 121 }, + attrs: { _i: 120 }, }, [ _vm._v( _vm._$s( - 121, + 120, "t0-0", _vm._s(_vm.infoText.error) ) @@ -1310,45 +1289,45 @@ { name: "show", rawName: "v-show", - value: _vm._$s(122, "v-show", _vm.ejectShow), - expression: "_$s(122,'v-show',ejectShow)", + value: _vm._$s(121, "v-show", _vm.ejectShow), + expression: "_$s(121,'v-show',ejectShow)", }, ], - staticClass: _vm._$s(122, "sc", "eject-mask"), - attrs: { _i: 122 }, + staticClass: _vm._$s(121, "sc", "eject-mask"), + attrs: { _i: 121 }, }, [ _c( "view", - { staticClass: _vm._$s(123, "sc", "eject"), attrs: { _i: 123 } }, + { staticClass: _vm._$s(122, "sc", "eject"), attrs: { _i: 122 } }, [ _c("view", { - staticClass: _vm._$s(124, "sc", "eject-title"), - attrs: { _i: 124 }, + staticClass: _vm._$s(123, "sc", "eject-title"), + attrs: { _i: 123 }, }), _c( "scroll-view", { - staticClass: _vm._$s(125, "sc", "eject-input"), - attrs: { _i: 125 }, + staticClass: _vm._$s(124, "sc", "eject-input"), + attrs: { _i: 124 }, }, [ _c( "view", { - staticClass: _vm._$s(126, "sc", "item"), - attrs: { _i: 126 }, + staticClass: _vm._$s(125, "sc", "item"), + attrs: { _i: 125 }, }, [ _c("view", { - staticClass: _vm._$s(127, "sc", "desc"), - attrs: { _i: 127 }, + staticClass: _vm._$s(126, "sc", "desc"), + attrs: { _i: 126 }, }), _c( "view", { - staticClass: _vm._$s(128, "sc", "input"), - attrs: { _i: 128 }, + staticClass: _vm._$s(127, "sc", "input"), + attrs: { _i: 127 }, }, [ _c("input", { @@ -1360,9 +1339,9 @@ expression: "baseIP", }, ], - attrs: { _i: 129 }, + attrs: { _i: 128 }, domProps: { - value: _vm._$s(129, "v-model", _vm.baseIP), + value: _vm._$s(128, "v-model", _vm.baseIP), }, on: { input: function ($event) { @@ -1380,19 +1359,19 @@ _c( "view", { - staticClass: _vm._$s(130, "sc", "item"), - attrs: { _i: 130 }, + staticClass: _vm._$s(129, "sc", "item"), + attrs: { _i: 129 }, }, [ _c("view", { - staticClass: _vm._$s(131, "sc", "desc"), - attrs: { _i: 131 }, + staticClass: _vm._$s(130, "sc", "desc"), + attrs: { _i: 130 }, }), _c( "view", { - staticClass: _vm._$s(132, "sc", "input"), - attrs: { _i: 132 }, + staticClass: _vm._$s(131, "sc", "input"), + attrs: { _i: 131 }, }, [ _c("input", { @@ -1404,9 +1383,9 @@ expression: "basePort", }, ], - attrs: { _i: 133 }, + attrs: { _i: 132 }, domProps: { - value: _vm._$s(133, "v-model", _vm.basePort), + value: _vm._$s(132, "v-model", _vm.basePort), }, on: { input: function ($event) { @@ -1424,19 +1403,19 @@ _c( "view", { - staticClass: _vm._$s(134, "sc", "item"), - attrs: { _i: 134 }, + staticClass: _vm._$s(133, "sc", "item"), + attrs: { _i: 133 }, }, [ _c("view", { - staticClass: _vm._$s(135, "sc", "desc"), - attrs: { _i: 135 }, + staticClass: _vm._$s(134, "sc", "desc"), + attrs: { _i: 134 }, }), _c( "view", { - staticClass: _vm._$s(136, "sc", "input"), - attrs: { _i: 136 }, + staticClass: _vm._$s(135, "sc", "input"), + attrs: { _i: 135 }, }, [ _c("input", { @@ -1448,9 +1427,9 @@ expression: "baseUrl", }, ], - attrs: { _i: 137 }, + attrs: { _i: 136 }, domProps: { - value: _vm._$s(137, "v-model", _vm.baseUrl), + value: _vm._$s(136, "v-model", _vm.baseUrl), }, on: { input: function ($event) { @@ -1468,19 +1447,19 @@ _c( "view", { - staticClass: _vm._$s(138, "sc", "item"), - attrs: { _i: 138 }, + staticClass: _vm._$s(137, "sc", "item"), + attrs: { _i: 137 }, }, [ _c("view", { - staticClass: _vm._$s(139, "sc", "desc"), - attrs: { _i: 139 }, + staticClass: _vm._$s(138, "sc", "desc"), + attrs: { _i: 138 }, }), _c( "view", { - staticClass: _vm._$s(140, "sc", "input"), - attrs: { _i: 140 }, + staticClass: _vm._$s(139, "sc", "input"), + attrs: { _i: 139 }, }, [ _c("input", { @@ -1492,9 +1471,9 @@ expression: "wmsPort", }, ], - attrs: { _i: 141 }, + attrs: { _i: 140 }, domProps: { - value: _vm._$s(141, "v-model", _vm.wmsPort), + value: _vm._$s(140, "v-model", _vm.wmsPort), }, on: { input: function ($event) { @@ -1512,19 +1491,19 @@ _c( "view", { - staticClass: _vm._$s(142, "sc", "item"), - attrs: { _i: 142 }, + staticClass: _vm._$s(141, "sc", "item"), + attrs: { _i: 141 }, }, [ _c("view", { - staticClass: _vm._$s(143, "sc", "desc"), - attrs: { _i: 143 }, + staticClass: _vm._$s(142, "sc", "desc"), + attrs: { _i: 142 }, }), _c( "view", { - staticClass: _vm._$s(144, "sc", "input"), - attrs: { _i: 144 }, + staticClass: _vm._$s(143, "sc", "input"), + attrs: { _i: 143 }, }, [ _c("input", { @@ -1536,9 +1515,9 @@ expression: "wmsUrl", }, ], - attrs: { _i: 145 }, + attrs: { _i: 144 }, domProps: { - value: _vm._$s(145, "v-model", _vm.wmsUrl), + value: _vm._$s(144, "v-model", _vm.wmsUrl), }, on: { input: function ($event) { @@ -1556,19 +1535,19 @@ _c( "view", { - staticClass: _vm._$s(146, "sc", "item"), - attrs: { _i: 146 }, + staticClass: _vm._$s(145, "sc", "item"), + attrs: { _i: 145 }, }, [ _c("view", { - staticClass: _vm._$s(147, "sc", "desc"), - attrs: { _i: 147 }, + staticClass: _vm._$s(146, "sc", "desc"), + attrs: { _i: 146 }, }), _c( "view", { - staticClass: _vm._$s(148, "sc", "input"), - attrs: { _i: 148 }, + staticClass: _vm._$s(147, "sc", "input"), + attrs: { _i: 147 }, }, [ _c("input", { @@ -1580,9 +1559,9 @@ expression: "baseLedId", }, ], - attrs: { _i: 149 }, + attrs: { _i: 148 }, domProps: { - value: _vm._$s(149, "v-model", _vm.baseLedId), + value: _vm._$s(148, "v-model", _vm.baseLedId), }, on: { input: function ($event) { @@ -1602,18 +1581,18 @@ _c( "view", { - staticClass: _vm._$s(150, "sc", "eject-button"), - attrs: { _i: 150 }, + staticClass: _vm._$s(149, "sc", "eject-button"), + attrs: { _i: 149 }, }, [ _c("view", { - staticClass: _vm._$s(151, "sc", "button-item"), - attrs: { _i: 151 }, + staticClass: _vm._$s(150, "sc", "button-item"), + attrs: { _i: 150 }, on: { click: _vm.ejectClose }, }), _c("view", { - staticClass: _vm._$s(152, "sc", "button-item"), - attrs: { _i: 152 }, + staticClass: _vm._$s(151, "sc", "button-item"), + attrs: { _i: 151 }, on: { click: _vm.ejectConfirm }, }), ] @@ -1627,14 +1606,14 @@ [ _c( "uni-popup", - { ref: "upVersion", attrs: { type: "dialog", _i: 154 } }, + { ref: "upVersion", attrs: { type: "dialog", _i: 153 } }, [ _c("uni-popup-dialog", { attrs: { type: _vm.msgType, title: "閫氱煡", content: _vm.dialogContent, - _i: 155, + _i: 154, }, on: { confirm: _vm.dialogConfirm, close: _vm.dialogClose }, }), @@ -1651,13 +1630,13 @@ { name: "show", rawName: "v-show", - value: _vm._$s(156, "v-show", _vm.timeOut), - expression: "_$s(156,'v-show',timeOut)", + value: _vm._$s(155, "v-show", _vm.timeOut), + expression: "_$s(155,'v-show',timeOut)", }, ], - attrs: { _i: 156 }, + attrs: { _i: 155 }, }, - [_vm._v(_vm._$s(156, "t0-0", _vm._s(_vm.times)))] + [_vm._v(_vm._$s(155, "t0-0", _vm._s(_vm.times)))] ), ], 1 @@ -3435,18 +3414,18 @@ y = e[t + 6], _ = e[t + 7], w = e[t + 8], - v = e[t + 9], - I = e[t + 10], + I = e[t + 9], + v = e[t + 10], S = e[t + 11], T = e[t + 12], b = e[t + 13], E = e[t + 14], k = e[t + 15], - P = i[0], - C = i[1], - A = i[2], + A = i[0], + P = i[1], + C = i[2], O = i[3]; - P = u(P, C, A, O, o, 7, a[0]), O = u(O, P, C, A, c, 12, a[1]), A = u(A, O, P, C, p, 17, a[2]), C = u(C, A, O, P, f, 22, a[3]), P = u(P, C, A, O, g, 7, a[4]), O = u(O, P, C, A, m, 12, a[5]), A = u(A, O, P, C, y, 17, a[6]), C = u(C, A, O, P, _, 22, a[7]), P = u(P, C, A, O, w, 7, a[8]), O = u(O, P, C, A, v, 12, a[9]), A = u(A, O, P, C, I, 17, a[10]), C = u(C, A, O, P, S, 22, a[11]), P = u(P, C, A, O, T, 7, a[12]), O = u(O, P, C, A, b, 12, a[13]), A = u(A, O, P, C, E, 17, a[14]), P = h(P, C = u(C, A, O, P, k, 22, a[15]), A, O, c, 5, a[16]), O = h(O, P, C, A, y, 9, a[17]), A = h(A, O, P, C, S, 14, a[18]), C = h(C, A, O, P, o, 20, a[19]), P = h(P, C, A, O, m, 5, a[20]), O = h(O, P, C, A, I, 9, a[21]), A = h(A, O, P, C, k, 14, a[22]), C = h(C, A, O, P, g, 20, a[23]), P = h(P, C, A, O, v, 5, a[24]), O = h(O, P, C, A, E, 9, a[25]), A = h(A, O, P, C, f, 14, a[26]), C = h(C, A, O, P, w, 20, a[27]), P = h(P, C, A, O, b, 5, a[28]), O = h(O, P, C, A, p, 9, a[29]), A = h(A, O, P, C, _, 14, a[30]), P = l(P, C = h(C, A, O, P, T, 20, a[31]), A, O, m, 4, a[32]), O = l(O, P, C, A, w, 11, a[33]), A = l(A, O, P, C, S, 16, a[34]), C = l(C, A, O, P, E, 23, a[35]), P = l(P, C, A, O, c, 4, a[36]), O = l(O, P, C, A, g, 11, a[37]), A = l(A, O, P, C, _, 16, a[38]), C = l(C, A, O, P, I, 23, a[39]), P = l(P, C, A, O, b, 4, a[40]), O = l(O, P, C, A, o, 11, a[41]), A = l(A, O, P, C, f, 16, a[42]), C = l(C, A, O, P, y, 23, a[43]), P = l(P, C, A, O, v, 4, a[44]), O = l(O, P, C, A, T, 11, a[45]), A = l(A, O, P, C, k, 16, a[46]), P = d(P, C = l(C, A, O, P, p, 23, a[47]), A, O, o, 6, a[48]), O = d(O, P, C, A, _, 10, a[49]), A = d(A, O, P, C, E, 15, a[50]), C = d(C, A, O, P, m, 21, a[51]), P = d(P, C, A, O, T, 6, a[52]), O = d(O, P, C, A, f, 10, a[53]), A = d(A, O, P, C, I, 15, a[54]), C = d(C, A, O, P, c, 21, a[55]), P = d(P, C, A, O, w, 6, a[56]), O = d(O, P, C, A, k, 10, a[57]), A = d(A, O, P, C, y, 15, a[58]), C = d(C, A, O, P, b, 21, a[59]), P = d(P, C, A, O, g, 6, a[60]), O = d(O, P, C, A, S, 10, a[61]), A = d(A, O, P, C, p, 15, a[62]), C = d(C, A, O, P, v, 21, a[63]), i[0] = i[0] + P | 0, i[1] = i[1] + C | 0, i[2] = i[2] + A | 0, i[3] = i[3] + O | 0; + A = u(A, P, C, O, o, 7, a[0]), O = u(O, A, P, C, c, 12, a[1]), C = u(C, O, A, P, p, 17, a[2]), P = u(P, C, O, A, f, 22, a[3]), A = u(A, P, C, O, g, 7, a[4]), O = u(O, A, P, C, m, 12, a[5]), C = u(C, O, A, P, y, 17, a[6]), P = u(P, C, O, A, _, 22, a[7]), A = u(A, P, C, O, w, 7, a[8]), O = u(O, A, P, C, I, 12, a[9]), C = u(C, O, A, P, v, 17, a[10]), P = u(P, C, O, A, S, 22, a[11]), A = u(A, P, C, O, T, 7, a[12]), O = u(O, A, P, C, b, 12, a[13]), C = u(C, O, A, P, E, 17, a[14]), A = h(A, P = u(P, C, O, A, k, 22, a[15]), C, O, c, 5, a[16]), O = h(O, A, P, C, y, 9, a[17]), C = h(C, O, A, P, S, 14, a[18]), P = h(P, C, O, A, o, 20, a[19]), A = h(A, P, C, O, m, 5, a[20]), O = h(O, A, P, C, v, 9, a[21]), C = h(C, O, A, P, k, 14, a[22]), P = h(P, C, O, A, g, 20, a[23]), A = h(A, P, C, O, I, 5, a[24]), O = h(O, A, P, C, E, 9, a[25]), C = h(C, O, A, P, f, 14, a[26]), P = h(P, C, O, A, w, 20, a[27]), A = h(A, P, C, O, b, 5, a[28]), O = h(O, A, P, C, p, 9, a[29]), C = h(C, O, A, P, _, 14, a[30]), A = l(A, P = h(P, C, O, A, T, 20, a[31]), C, O, m, 4, a[32]), O = l(O, A, P, C, w, 11, a[33]), C = l(C, O, A, P, S, 16, a[34]), P = l(P, C, O, A, E, 23, a[35]), A = l(A, P, C, O, c, 4, a[36]), O = l(O, A, P, C, g, 11, a[37]), C = l(C, O, A, P, _, 16, a[38]), P = l(P, C, O, A, v, 23, a[39]), A = l(A, P, C, O, b, 4, a[40]), O = l(O, A, P, C, o, 11, a[41]), C = l(C, O, A, P, f, 16, a[42]), P = l(P, C, O, A, y, 23, a[43]), A = l(A, P, C, O, I, 4, a[44]), O = l(O, A, P, C, T, 11, a[45]), C = l(C, O, A, P, k, 16, a[46]), A = d(A, P = l(P, C, O, A, p, 23, a[47]), C, O, o, 6, a[48]), O = d(O, A, P, C, _, 10, a[49]), C = d(C, O, A, P, E, 15, a[50]), P = d(P, C, O, A, m, 21, a[51]), A = d(A, P, C, O, T, 6, a[52]), O = d(O, A, P, C, f, 10, a[53]), C = d(C, O, A, P, v, 15, a[54]), P = d(P, C, O, A, c, 21, a[55]), A = d(A, P, C, O, w, 6, a[56]), O = d(O, A, P, C, k, 10, a[57]), C = d(C, O, A, P, y, 15, a[58]), P = d(P, C, O, A, b, 21, a[59]), A = d(A, P, C, O, g, 6, a[60]), O = d(O, A, P, C, S, 10, a[61]), C = d(C, O, A, P, p, 15, a[62]), P = d(P, C, O, A, I, 21, a[63]), i[0] = i[0] + A | 0, i[1] = i[1] + P | 0, i[2] = i[2] + C | 0, i[3] = i[3] + O | 0; }, _doFinalize: function _doFinalize() { var t = this._data, @@ -3607,24 +3586,24 @@ }; } var w = "REJECTED", - v = "NOT_PENDING"; -var I = /*#__PURE__*/function () { - function I() { + I = "NOT_PENDING"; +var v = /*#__PURE__*/function () { + function v() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref.createPromise, _ref$retryRule = _ref.retryRule, t = _ref$retryRule === void 0 ? w : _ref$retryRule; - (0, _classCallCheck2.default)(this, I); + (0, _classCallCheck2.default)(this, v); this.createPromise = e, this.status = null, this.promise = null, this.retryRule = t; } - (0, _createClass2.default)(I, [{ + (0, _createClass2.default)(v, [{ key: "needRetry", get: function get() { if (!this.status) return !0; switch (this.retryRule) { case w: return this.status === f; - case v: + case I: return this.status !== d; } } @@ -3639,7 +3618,7 @@ }), this.promise) : this.promise; } }]); - return I; + return v; }(); var S = /*#__PURE__*/function () { function S() { @@ -3700,9 +3679,9 @@ var b = "development" === "development", E = "app-plus", k = "true" === false || !0 === false, - P = T([]), - C = "h5" === E ? "web" : "app-plus" === E || "app-harmony" === E ? "app" : E, - A = T(undefined), + A = T([]), + P = "h5" === E ? "web" : "app-plus" === E || "app-harmony" === E ? "app" : E, + C = T(undefined), O = T([]) || [], x = true; var N = ""; @@ -3727,7 +3706,7 @@ return void 0 !== e() ? e() : new Function("return this")(); }(), R); } -"app" === C && (L = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); +"app" === P && (L = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); var M = ["invoke", "success", "fail", "complete"], q = U("_globalUniCloudInterceptor"); function F(e, t) { @@ -3819,7 +3798,8 @@ function te(e) { var _this2; (0, _classCallCheck2.default)(this, te); - _this2 = _super.call(this, e.message), _this2.errMsg = e.message || e.errMsg || "unknown system error", _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; + var t = e.message || e.errMsg || "unknown system error"; + _this2 = _super.call(this, t), _this2.errMsg = t, _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; return _this2; } (0, _createClass2.default)(te, [{ @@ -3874,7 +3854,7 @@ } var ie, oe; function ae() { - return ie || (ie = uni.getSystemInfoSync()), ie; + return ie || (ie = "mp-weixin" === P && wx.canIUse("getAppBaseInfo") && wx.canIUse("getDeviceInfo") ? _objectSpread(_objectSpread({}, uni.getAppBaseInfo()), uni.getDeviceInfo()) : uni.getSystemInfoSync()), ie; } function ce() { var e, t; @@ -3929,7 +3909,7 @@ return new Promise(function (n, s) { t(Object.assign(e, { complete: function complete(e) { - e || (e = {}), b && "web" === C && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("鍙戝竷H5锛岄渶瑕佸湪uniCloud鍚庡彴鎿嶄綔锛岀粦瀹氬畨鍏ㄥ煙鍚嶏紝鍚﹀垯浼氬洜涓鸿法鍩熼棶棰樿�屾棤娉曡闂�傛暀绋嬪弬鑰冿細https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); + e || (e = {}), b && "web" === P && 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) { var _n5 = e.data && e.data.error && e.data.error.code || "SYS_ERR", @@ -3963,7 +3943,7 @@ if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error("".concat(t, " required")); }), this.config = Object.assign({}, { endpoint: 0 === e.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "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 = ne, this._getAccessTokenPromiseHub = new I({ + }, 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 = ne, this._getAccessTokenPromiseHub = new v({ createPromise: function createPromise() { return _this3.requestAuth(_this3.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", @@ -3976,7 +3956,7 @@ _this3.setAccessToken(e.result.accessToken); }); }, - retryRule: v + retryRule: I }); } (0, _createClass2.default)(de, [{ @@ -4286,19 +4266,25 @@ }, { key: "getTempFileURL", value: function getTempFileURL() { + var _this6 = this; var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref5.fileList; return new Promise(function (t, n) { Array.isArray(e) && 0 !== e.length || n(new te({ code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" - })), t({ - fileList: e.map(function (e) { - return { - fileID: e, - tempFileURL: e - }; - }) + })), _this6.getFileInfo({ + fileList: e + }).then(function (n) { + t({ + fileList: e.map(function (e, t) { + var s = n.fileList[t]; + return { + fileID: e, + tempFileURL: s && s.url || e + }; + }) + }); }); }); } @@ -4416,8 +4402,8 @@ } var _ = s & r ^ s & i ^ r & i, w = (s << 30 | s >>> 2) ^ (s << 19 | s >>> 13) ^ (s << 10 | s >>> 22), - v = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & h ^ ~a & l) + c[p] + u[p]; - d = l, l = h, h = a, a = o + v | 0, o = i, i = r, r = s, s = v + (w + _) | 0; + I = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & h ^ ~a & l) + c[p] + u[p]; + d = l, l = h, h = a, a = o + I | 0, o = i, i = r, r = s, s = I + (w + _) | 0; } n[0] = n[0] + s | 0, n[1] = n[1] + r | 0, n[2] = n[2] + i | 0, n[3] = n[3] + o | 0, n[4] = n[4] + a | 0, n[5] = n[5] + h | 0, n[6] = n[6] + l | 0, n[7] = n[7] + d | 0; }, @@ -4440,7 +4426,7 @@ we = n(function (e, t) { e.exports = r.HmacSHA256; }); -var ve = function ve() { +var Ie = function Ie() { var e; if (!Promise) { e = function e() {}, e.promise = {}; @@ -4462,7 +4448,7 @@ }); return e.promise = t, e; }; -function Ie(e) { +function ve(e) { return void 0 === e; } function Se(e) { @@ -4507,58 +4493,58 @@ !function (e) { e.WEB = "web", e.WX_MP = "wx_mp"; }(Ee || (Ee = {})); -var Pe = { +var Ae = { adapter: null, runtime: void 0 }, - Ce = ["anonymousUuidKey"]; -var Ae = /*#__PURE__*/function (_me) { - (0, _inherits2.default)(Ae, _me); - var _super2 = _createSuper(Ae); - function Ae() { - var _this6; - (0, _classCallCheck2.default)(this, Ae); - _this6 = _super2.call(this), Pe.adapter.root.tcbObject || (Pe.adapter.root.tcbObject = {}); - return _this6; + Pe = ["anonymousUuidKey"]; +var Ce = /*#__PURE__*/function (_me) { + (0, _inherits2.default)(Ce, _me); + var _super2 = _createSuper(Ce); + function Ce() { + var _this7; + (0, _classCallCheck2.default)(this, Ce); + _this7 = _super2.call(this), Ae.adapter.root.tcbObject || (Ae.adapter.root.tcbObject = {}); + return _this7; } - (0, _createClass2.default)(Ae, [{ + (0, _createClass2.default)(Ce, [{ key: "setItem", value: function setItem(e, t) { - Pe.adapter.root.tcbObject[e] = t; + Ae.adapter.root.tcbObject[e] = t; } }, { key: "getItem", value: function getItem(e) { - return Pe.adapter.root.tcbObject[e]; + return Ae.adapter.root.tcbObject[e]; } }, { key: "removeItem", value: function removeItem(e) { - delete Pe.adapter.root.tcbObject[e]; + delete Ae.adapter.root.tcbObject[e]; } }, { key: "clear", value: function clear() { - delete Pe.adapter.root.tcbObject; + delete Ae.adapter.root.tcbObject; } }]); - return Ae; + return Ce; }(me); function Oe(e, t) { switch (e) { case "local": - return t.localStorage || new Ae(); + return t.localStorage || new Ce(); case "none": - return new Ae(); + return new Ce(); default: - return t.sessionStorage || new Ae(); + return t.sessionStorage || new Ce(); } } var xe = /*#__PURE__*/function () { function xe(e) { (0, _classCallCheck2.default)(this, xe); if (!this._storage) { - this._persistence = Pe.adapter.primaryStorage || e.persistence, this._storage = Oe(this._persistence, Pe.adapter); + this._persistence = Ae.adapter.primaryStorage || e.persistence, this._storage = Oe(this._persistence, Ae.adapter); var _t5 = "access_token_".concat(e.env), _n7 = "access_token_expire_".concat(e.env), _s6 = "refresh_token_".concat(e.env), @@ -4585,12 +4571,12 @@ if (e === this._persistence) return; var t = "local" === this._persistence; this._persistence = e; - var n = Oe(e, Pe.adapter); + var n = Oe(e, Ae.adapter); for (var _e8 in this.keys) { var _s7 = this.keys[_e8]; - if (t && Ce.includes(_e8)) continue; + if (t && Pe.includes(_e8)) continue; var _r3 = this._storage.getItem(_s7); - Ie(_r3) || Se(_r3) || (n.setItem(_s7, _r3), this._storage.removeItem(_s7)); + ve(_r3) || Se(_r3) || (n.setItem(_s7, _r3), this._storage.removeItem(_s7)); } this._storage = n; } @@ -4646,13 +4632,13 @@ (0, _inherits2.default)(De, _Ue); var _super3 = _createSuper(De); function De(e, t) { - var _this7; + var _this8; (0, _classCallCheck2.default)(this, De); - _this7 = _super3.call(this, "error", { + _this8 = _super3.call(this, "error", { error: e, data: t - }), _this7.error = e; - return _this7; + }), _this8.error = e; + return _this8; } return (0, _createClass2.default)(De); }(Ue); @@ -4738,7 +4724,7 @@ key: "run", value: function () { var _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e, t) { - var _this8 = this; + var _this9 = this; var n; return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { @@ -4754,7 +4740,7 @@ case 0: _context4.prev = 0; _context4.next = 3; - return _this8._runIdlePromise(); + return _this9._runIdlePromise(); case 3: _e10 = t(); _context4.t0 = n; @@ -4771,7 +4757,7 @@ s(_context4.t2); case 14: _context4.prev = 14; - _this8._fnPromiseMap.delete(e); + _this9._fnPromiseMap.delete(e); return _context4.finish(14); case 17: case "end": @@ -4807,7 +4793,7 @@ var Ve = /*#__PURE__*/function () { function Ve(e) { (0, _classCallCheck2.default)(this, Ve); - this._singlePromise = new ze(), this._cache = Le(e.env), this._baseURL = "https://".concat(e.env, ".ap-shanghai.tcb-api.tencentcloudapi.com"), this._reqClass = new Pe.adapter.reqClass({ + this._singlePromise = new ze(), this._cache = Le(e.env), this._baseURL = "https://".concat(e.env, ".ap-shanghai.tcb-api.tencentcloudapi.com"), this._reqClass = new Ae.adapter.reqClass({ timeout: e.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(e.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] @@ -4873,7 +4859,7 @@ key: "_fetchAccessToken", value: function () { var _fetchAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { - var _this9 = this; + var _this10 = this; var _this$_cache$keys, e, t, n, s, r, i, o, a, c; return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { @@ -4896,7 +4882,7 @@ switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; - return _this9._request("/auth/v1/signin/anonymously", {}, { + return _this10._request("/auth/v1/signin/anonymously", {}, { method: "post" }); case 2: @@ -4982,7 +4968,7 @@ key: "getUserInfo", value: function () { var _getUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { - var _this10 = this; + var _this11 = this; return _regenerator.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { @@ -4993,7 +4979,7 @@ switch (_context11.prev = _context11.next) { case 0: _context11.next = 2; - return _this10._request("/auth/v1/user/me", {}, { + return _this11._request("/auth/v1/user/me", {}, { withAccessToken: !0, method: "get" }); @@ -5061,7 +5047,7 @@ var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, Ze); var t; - this.config = e, this._reqClass = new Pe.adapter.reqClass({ + 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"] @@ -5718,11 +5704,11 @@ }, { key: "setUserInfo", value: function setUserInfo() { - var _this11 = this; + var _this12 = 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) { - _this11[e] = t[e]; + _this12[e] = t[e]; }), this.location = { country: t.country, province: t.province, @@ -6395,10 +6381,10 @@ }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) { - var _this12 = this; + var _this13 = this; qe(je, function () { - var t = _this12.hasLoginState(); - e.call(_this12, t); + var t = _this13.hasLoginState(); + e.call(_this13, t); }); var t = this.hasLoginState(); e.call(this, t); @@ -6421,10 +6407,10 @@ }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) { - var _this13 = this; + var _this14 = this; qe(Be, function () { - var t = _this13.hasLoginState(); - e.call(_this13, t); + var t = _this14.hasLoginState(); + e.call(_this14, t); }); } }, { @@ -6574,7 +6560,7 @@ return ut; }(); var ht = function ht(e, t) { - t = t || ve(); + t = t || Ie(); var n = tt(this.config.env), s = e.cloudPath, r = e.filePath, @@ -6621,7 +6607,7 @@ }), t.promise; }, lt = function lt(e, t) { - t = t || ve(); + t = t || Ie(); var n = tt(this.config.env), s = e.cloudPath; return n.send("storage.getUploadMetadata", { @@ -6634,7 +6620,7 @@ }, dt = function dt(_ref10, t) { var e = _ref10.fileList; - if (t = t || ve(), !e || !Array.isArray(e)) return { + if (t = t || Ie(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" }; @@ -6667,7 +6653,7 @@ }, pt = function pt(_ref11, t) { var e = _ref11.fileList; - t = t || ve(), e && Array.isArray(e) || t(null, { + t = t || Ie(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" }); @@ -6768,7 +6754,7 @@ s = _ref14.parse, r = _ref14.search, i = _ref14.timeout; - var a = o || ve(); + var a = o || Ie(); var c; try { c = t ? JSON.stringify(t) : ""; @@ -6824,7 +6810,7 @@ (0, _createClass2.default)(wt, [{ key: "init", value: function init(e) { - switch (Pe.adapter || (this.requestClient = new Pe.adapter.reqClass({ + 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({}, mt), e), !0) { @@ -6842,7 +6828,7 @@ var _ref15 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref15.persistence; if (this.authObj) return this.authObj; - var t = e || Pe.adapter.primaryStorage || mt.persistence; + var t = e || Ae.adapter.primaryStorage || mt.persistence; var n; return t !== this.config.persistence && (this.config.persistence = t), function (e) { var t = e.env; @@ -6936,13 +6922,13 @@ var _ref16 = ke(e) || {}, t = _ref16.adapter, n = _ref16.runtime; - t && (Pe.adapter = t), n && (Pe.runtime = n); + t && (Ae.adapter = t), n && (Ae.runtime = n); } }]); return wt; }(); -var vt = new wt(); -function It(e, t, n) { +var It = new wt(); +function vt(e, t, n) { void 0 === n && (n = {}); var s = /\?/.test(t), r = ""; @@ -6964,7 +6950,7 @@ r = e.timeout; return new Promise(function (e, i) { ne.request({ - url: It("https:", t), + url: vt("https:", t), data: n, method: "GET", header: s, @@ -6987,7 +6973,7 @@ r = e.timeout; return new Promise(function (e, i) { ne.request({ - url: It("https:", t), + url: vt("https:", t), data: n, method: "POST", header: s, @@ -7011,7 +6997,7 @@ o = e.headers, a = e.fileType, c = ne.uploadFile({ - url: It("https:", s), + url: vt("https:", s), name: "file", formData: Object.assign({}, i), filePath: r, @@ -7067,8 +7053,8 @@ }, runtime: "uni_app" }; -vt.useAdapters(bt); -var Et = vt, +It.useAdapters(bt); +var Et = It, kt = Et.init; Et.init = function (e) { e.env = e.spaceId; @@ -7095,12 +7081,12 @@ }), t; }, t.customAuth = t.auth, t; }; -var Pt = Et; -function Ct(_x37, _x38) { - return _Ct.apply(this, arguments); +var At = Et; +function Pt(_x37, _x38) { + return _Pt.apply(this, arguments); } -function _Ct() { - _Ct = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee68(e, t) { +function _Pt() { + _Pt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee68(e, t) { var n, _e31, s; return _regenerator.default.wrap(function _callee68$(_context68) { while (1) { @@ -7136,13 +7122,13 @@ } }, _callee68, null, [[1, 8]]); })); + return _Pt.apply(this, arguments); +} +function Ct(_x39, _x40) { return _Ct.apply(this, arguments); } -function At(_x39, _x40) { - return _At.apply(this, arguments); -} -function _At() { - _At = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee69(e, t) { +function _Ct() { + _Ct = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee69(e, t) { var n, s, _r10; return _regenerator.default.wrap(function _callee69$(_context69) { while (1) { @@ -7156,7 +7142,7 @@ } _r10 = e[s]; _context69.next = 5; - return Ct(_r10, t); + return Pt(_r10, t); case 5: if (!_context69.sent) { _context69.next = 8; @@ -7180,7 +7166,7 @@ } }, _callee69); })); - return _At.apply(this, arguments); + return _Ct.apply(this, arguments); } var Ot = { "serverless.file.resource.generateProximalSign": "storage/generate-proximal-sign", @@ -7200,7 +7186,7 @@ key: "request", value: function () { var _request4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43(e) { - var _this14 = this; + var _this15 = this; var t, n, _args43 = arguments; @@ -7225,7 +7211,7 @@ case 9: e = _context43.t0; return _context43.abrupt("return", Promise.resolve().then(function () { - return n ? _this14.requestLocal(e) : le.wrappedRequest(e, _this14.adapter.request); + return n ? _this15.requestLocal(e) : le.wrappedRequest(e, _this15.adapter.request); })); case 11: case "end": @@ -7242,9 +7228,9 @@ }, { key: "requestLocal", value: function requestLocal(e) { - var _this15 = this; + var _this16 = this; return new Promise(function (t, n) { - _this15.adapter.request(Object.assign(e, { + _this16.adapter.request(Object.assign(e, { complete: function complete(e) { if (e || (e = {}), !e.statusCode || e.statusCode >= 400) { var _t11 = e.data && e.data.code || "SYS_ERR", @@ -7289,7 +7275,7 @@ key: "setupLocalRequest", value: function () { var _setupLocalRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44(e) { - var t, _se2, n, s, _ref17, r, i, _yield$At, o; + var t, _se2, n, s, _ref17, r, i, _yield$Ct, o; return _regenerator.default.wrap(function _callee44$(_context44) { while (1) { switch (_context44.prev = _context44.next) { @@ -7307,10 +7293,10 @@ r = _ref17.address; i = _ref17.servePort; _context44.next = 9; - return At(r, i); + return Ct(r, i); case 9: - _yield$At = _context44.sent; - o = _yield$At.address; + _yield$Ct = _context44.sent; + o = _yield$Ct.address; return _context44.abrupt("return", { url: "http://".concat(o, ":").concat(i, "/").concat(Ot[e.method]), method: "POST", @@ -7365,7 +7351,7 @@ }, { key: "uploadFile", value: function uploadFile(_ref18) { - var _this16 = this; + var _this17 = this; var e = _ref18.filePath, t = _ref18.cloudPath, _ref18$fileType = _ref18.fileType, @@ -7384,7 +7370,7 @@ o = _t$result.formData, a = _t$result.name; return r = t.result.fileUrl, new Promise(function (t, r) { - var c = _this16.adapter.uploadFile({ + var c = _this17.adapter.uploadFile({ url: i, formData: o, name: a, @@ -7411,7 +7397,7 @@ }); }); }).then(function () { - return _this16.reportUploadFile({ + return _this17.reportUploadFile({ cloudPath: t }); }).then(function (t) { @@ -7874,7 +7860,7 @@ key: "getTempFileURL", value: function () { var _getTempFileURL = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46(_ref27) { - var _this17 = this; + var _this18 = this; var e; return _regenerator.default.wrap(function _callee46$(_context46) { while (1) { @@ -7901,7 +7887,7 @@ message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" }); try { - _e18 = qt.call(_this17, _n11); + _e18 = qt.call(_this18, _n11); } catch (t) { console.warn(t.errCode, t.errMsg), _e18 = _n11; } @@ -7921,13 +7907,13 @@ file_list: s }, method: "POST" - }, _this17.config).then(function (e) { + }, _this18.config).then(function (e) { var _e$file_list = e.file_list, n = _e$file_list === void 0 ? [] : _e$file_list; t({ fileList: n.map(function (e) { return { - fileID: Ft.call(_this17, e.file_id), + fileID: Ft.call(_this18, e.file_id), tempFileURL: e.download_url }; }) @@ -8012,7 +7998,7 @@ } function _Wt() { _Wt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee70() { - var _this30 = this; + var _this31 = this; var e, _this$__dev__, t, @@ -8042,7 +8028,7 @@ url: i, data: { name: e.name, - platform: C, + platform: P, provider: s, spaceId: r }, @@ -8094,10 +8080,10 @@ throw console.error(_e32), new Error(_e32); } } - return _this30._callCloudFunction(e); + return _this31._callCloudFunction(e); } return new Promise(function (t, n) { - var r = Bt.call(_this30, { + var r = Bt.call(_this31, { data: e.data }); ne.request({ @@ -8105,7 +8091,7 @@ url: o, data: { provider: s, - platform: C, + platform: P, param: r }, timeout: e.timeout, @@ -8156,13 +8142,50 @@ BOTH: "both" }, Yt = "_globalUniCloudStatus", - Qt = "_globalUniCloudSecureNetworkCache__{spaceId}"; -var Xt = /*#__PURE__*/function () { - function Xt() { - var _ref29 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref29.secretType, - t = _ref29.uniCloudIns; - (0, _classCallCheck2.default)(this, Xt); + Qt = "_globalUniCloudSecureNetworkCache__{spaceId}", + Xt = "uni-secure-network", + Zt = { + SYSTEM_ERROR: { + code: 2e4, + message: "System error" + }, + APP_INFO_INVALID: { + code: 20101, + message: "Invalid client" + }, + GET_ENCRYPT_KEY_FAILED: { + code: 20102, + message: "Get encrypt key failed" + } + }, + en = { + 10001: "Secure network is not supported on current playground or unimpsdk", + 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", + 10009: "Encrypt payload failed", + 10010: "Decrypt response failed" + }; +function tn(e) { + var _ref29 = e || {}, + t = _ref29.errSubject, + n = _ref29.subject, + s = _ref29.errCode, + r = _ref29.errMsg, + i = _ref29.code, + o = _ref29.message, + a = _ref29.cause; + return new te({ + subject: t || n || Xt, + code: s || i || Zt.SYSTEM_ERROR.code, + message: r || o, + cause: a + }); +} +var nn = /*#__PURE__*/function () { + function nn() { + var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref30.secretType, + t = _ref30.uniCloudIns; + (0, _classCallCheck2.default)(this, nn); this.clientType = "", this.secretType = e || Gt.NONE, this.uniCloudIns = t; var _this$uniCloudIns$con = this.uniCloudIns.config, n = _this$uniCloudIns$con.provider, @@ -8170,7 +8193,7 @@ var r; this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, U(Qt.replace("{spaceId}", r.config.spaceId))); } - (0, _createClass2.default)(Xt, [{ + (0, _createClass2.default)(nn, [{ key: "getSystemInfo", value: function getSystemInfo() { return this._systemInfo || (this._systemInfo = ae()), this._systemInfo; @@ -8210,7 +8233,7 @@ key: "decryptResult", value: function () { var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49(e) { - var _ref30, t, n; + var _ref31, t, n, s; return _regenerator.default.wrap(function _callee49$(_context49) { while (1) { switch (_context49.prev = _context49.next) { @@ -8221,8 +8244,8 @@ } return _context49.abrupt("return", e); case 2: - _ref30 = e || {}, t = _ref30.errCode, n = _ref30.content; - return _context49.abrupt("return", t || !n ? e : this.secretType === Gt.REQUEST ? n : this.platformDecryptResult(e)); + _ref31 = e || {}, t = _ref31.errCode, n = _ref31.errMsg, s = _ref31.content; + return _context49.abrupt("return", t || !s ? e : this.secretType === Gt.REQUEST ? s : this.platformDecryptResult(e)); case 4: case "end": return _context49.stop(); @@ -8240,9 +8263,9 @@ value: function wrapVerifyClientCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { - var _ref32, + var _ref33, n, - _ref32$data, + _ref33$data, s, r, _args50 = arguments; @@ -8250,7 +8273,7 @@ while (1) { switch (_context50.prev = _context50.next) { case 0: - _ref32 = _args50.length > 0 && _args50[0] !== undefined ? _args50[0] : {}, n = _ref32.name, _ref32$data = _ref32.data, s = _ref32$data === void 0 ? {} : _ref32$data; + _ref33 = _args50.length > 0 && _args50[0] !== undefined ? _args50[0] : {}, n = _ref33.name, _ref33$data = _ref33.data, s = _ref33$data === void 0 ? {} : _ref33$data; _context50.next = 3; return t.prepare(); case 3: @@ -8301,9 +8324,9 @@ value: function wrapEncryptDataCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51() { - var _ref34, + var _ref35, n, - _ref34$data, + _ref35$data, s, r, i, @@ -8313,7 +8336,7 @@ while (1) { switch (_context51.prev = _context51.next) { case 0: - _ref34 = _args51.length > 0 && _args51[0] !== undefined ? _args51[0] : {}, n = _ref34.name, _ref34$data = _ref34.data, s = _ref34$data === void 0 ? {} : _ref34$data; + _ref35 = _args51.length > 0 && _args51[0] !== undefined ? _args51[0] : {}, n = _ref35.name, _ref35$data = _ref35.data, s = _ref35$data === void 0 ? {} : _ref35$data; _context51.next = 3; return t.prepare(); case 3: @@ -8329,7 +8352,7 @@ case 8: i = _context51.sent; if (!t.isClientKeyNotFound(i)) { - _context51.next = 21; + _context51.next = 18; break; } _context51.next = 12; @@ -8342,23 +8365,19 @@ case 14: _r5 = _context51.sent; _context51.next = 17; - return t.platformGetSignOption(); - case 17: - s._uniCloudOptions = _context51.sent; - _context51.next = 20; return e({ name: n, data: _r5 }); - case 20: + case 17: i = _context51.sent; - case 21: - _context51.next = 23; + case 18: + _context51.next = 20; return t.decryptResult(i.result); - case 23: + case 20: i.result = _context51.sent; return _context51.abrupt("return", i); - case 25: + case 22: case "end": return _context51.stop(); } @@ -8367,36 +8386,36 @@ })); } }]); - return Xt; + return nn; }(); /*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */ -function Zt(e) { +function sn(e) { return parseInt(e) === e; } -function en(e) { - if (!Zt(e.length)) return !1; +function rn(e) { + if (!sn(e.length)) return !1; for (var t = 0; t < e.length; t++) { - if (!Zt(e[t]) || e[t] < 0 || e[t] > 255) return !1; + if (!sn(e[t]) || e[t] < 0 || e[t] > 255) return !1; } return !0; } -function tn(e, t) { +function on(e, t) { if (e.buffer && "Uint8Array" === e.name) return t && (e = e.slice ? e.slice() : Array.prototype.slice.call(e)), e; if (Array.isArray(e)) { - if (!en(e)) throw new Error("Array contains invalid value: " + e); + if (!rn(e)) throw new Error("Array contains invalid value: " + e); return new Uint8Array(e); } - if (Zt(e.length) && en(e)) return new Uint8Array(e); + if (sn(e.length) && rn(e)) return new Uint8Array(e); throw new Error("unsupported array-like object"); } -function nn(e) { +function an(e) { return new Uint8Array(e); } -function sn(e, t, n, s, r) { +function cn(e, t, n, s, r) { null == s && null == r || (e = e.slice ? e.slice(s, r) : Array.prototype.slice.call(e, s, r)), t.set(e, n); } -var rn, - on = { +var un, + hn = { toBytes: function toBytes(e) { var t = [], n = 0; @@ -8404,7 +8423,7 @@ var s = e.charCodeAt(n++); 37 === s ? (t.push(parseInt(e.substr(n, 2), 16)), n += 2) : t.push(s); } - return tn(t); + return on(t); }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length;) { @@ -8414,7 +8433,7 @@ return t.join(""); } }, - an = (rn = "0123456789abcdef", { + ln = (un = "0123456789abcdef", { toBytes: function toBytes(e) { for (var t = [], n = 0; n < e.length; n += 2) { t.push(parseInt(e.substr(n, 2), 16)); @@ -8424,49 +8443,49 @@ fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length; n++) { var s = e[n]; - t.push(rn[(240 & s) >> 4] + rn[15 & s]); + t.push(un[(240 & s) >> 4] + un[15 & s]); } return t.join(""); } }), - cn = { + dn = { 16: 10, 24: 12, 32: 14 }, - un = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], - hn = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], - ln = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], - dn = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], - pn = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], - fn = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], - gn = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], - mn = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], - yn = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], - _n = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], - wn = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], - vn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], - In = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], - Sn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], - Tn = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; -function bn(e) { + pn = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], + fn = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], + gn = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], + mn = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], + yn = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], + _n = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], + wn = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], + In = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], + vn = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], + Sn = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], + Tn = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], + bn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], + En = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], + kn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], + An = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; +function Pn(e) { for (var t = [], n = 0; n < e.length; n += 4) { t.push(e[n] << 24 | e[n + 1] << 16 | e[n + 2] << 8 | e[n + 3]); } return t; } -var En = /*#__PURE__*/function () { - function En(e) { - (0, _classCallCheck2.default)(this, En); - if (!(this instanceof En)) throw Error("AES must be instanitated with `new`"); +var Cn = /*#__PURE__*/function () { + function Cn(e) { + (0, _classCallCheck2.default)(this, Cn); + if (!(this instanceof Cn)) throw Error("AES must be instanitated with `new`"); Object.defineProperty(this, "key", { - value: tn(e, !0) + value: on(e, !0) }), this._prepare(); } - (0, _createClass2.default)(En, [{ + (0, _createClass2.default)(Cn, [{ key: "_prepare", value: function _prepare() { - var e = cn[this.key.length]; + var e = dn[this.key.length]; if (null == e) throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); this._Ke = [], this._Kd = []; for (var t = 0; t <= e; t++) { @@ -8475,18 +8494,18 @@ var n, s = 4 * (e + 1), r = this.key.length / 4, - i = bn(this.key); + i = Pn(this.key); for (t = 0; t < r; t++) { n = t >> 2, this._Ke[n][t % 4] = i[t], this._Kd[e - n][t % 4] = i[t]; } for (var o, a = 0, c = r; c < s;) { - if (o = i[r - 1], i[0] ^= hn[o >> 16 & 255] << 24 ^ hn[o >> 8 & 255] << 16 ^ hn[255 & o] << 8 ^ hn[o >> 24 & 255] ^ un[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { + if (o = i[r - 1], i[0] ^= fn[o >> 16 & 255] << 24 ^ fn[o >> 8 & 255] << 16 ^ fn[255 & o] << 8 ^ fn[o >> 24 & 255] ^ pn[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { i[t] ^= i[t - 1]; } else { for (t = 1; t < r / 2; t++) { i[t] ^= i[t - 1]; } - o = i[r / 2 - 1], i[r / 2] ^= hn[255 & o] ^ hn[o >> 8 & 255] << 8 ^ hn[o >> 16 & 255] << 16 ^ hn[o >> 24 & 255] << 24; + o = i[r / 2 - 1], i[r / 2] ^= fn[255 & o] ^ fn[o >> 8 & 255] << 8 ^ fn[o >> 16 & 255] << 16 ^ fn[o >> 24 & 255] << 24; for (t = r / 2 + 1; t < r; t++) { i[t] ^= i[t - 1]; } @@ -8497,7 +8516,7 @@ } for (var u = 1; u < e; u++) { for (var h = 0; h < 4; h++) { - o = this._Kd[u][h], this._Kd[u][h] = vn[o >> 24 & 255] ^ In[o >> 16 & 255] ^ Sn[o >> 8 & 255] ^ Tn[255 & o]; + o = this._Kd[u][h], this._Kd[u][h] = bn[o >> 24 & 255] ^ En[o >> 16 & 255] ^ kn[o >> 8 & 255] ^ An[255 & o]; } } } @@ -8505,19 +8524,19 @@ key: "encrypt", value: function encrypt(e) { if (16 != e.length) throw new Error("invalid plaintext size (must be 16 bytes)"); - for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = bn(e), r = 0; r < 4; r++) { + for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = Pn(e), r = 0; r < 4; r++) { s[r] ^= this._Ke[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { - n[r] = dn[s[r] >> 24 & 255] ^ pn[s[(r + 1) % 4] >> 16 & 255] ^ fn[s[(r + 2) % 4] >> 8 & 255] ^ gn[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; + n[r] = mn[s[r] >> 24 & 255] ^ yn[s[(r + 1) % 4] >> 16 & 255] ^ _n[s[(r + 2) % 4] >> 8 & 255] ^ wn[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; } s = n.slice(); } var o, - a = nn(16); + a = an(16); for (r = 0; r < 4; r++) { - o = this._Ke[t][r], a[4 * r] = 255 & (hn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (hn[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (hn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (hn[255 & s[(r + 3) % 4]] ^ o); + o = this._Ke[t][r], a[4 * r] = 255 & (fn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (fn[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (fn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (fn[255 & s[(r + 3) % 4]] ^ o); } return a; } @@ -8525,109 +8544,109 @@ key: "decrypt", value: function decrypt(e) { if (16 != e.length) throw new Error("invalid ciphertext size (must be 16 bytes)"); - for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = bn(e), r = 0; r < 4; r++) { + for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = Pn(e), r = 0; r < 4; r++) { s[r] ^= this._Kd[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { - n[r] = mn[s[r] >> 24 & 255] ^ yn[s[(r + 3) % 4] >> 16 & 255] ^ _n[s[(r + 2) % 4] >> 8 & 255] ^ wn[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; + n[r] = In[s[r] >> 24 & 255] ^ vn[s[(r + 3) % 4] >> 16 & 255] ^ Sn[s[(r + 2) % 4] >> 8 & 255] ^ Tn[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; } s = n.slice(); } var o, - a = nn(16); + a = an(16); for (r = 0; r < 4; r++) { - o = this._Kd[t][r], a[4 * r] = 255 & (ln[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (ln[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (ln[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (ln[255 & s[(r + 1) % 4]] ^ o); + o = this._Kd[t][r], a[4 * r] = 255 & (gn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (gn[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (gn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (gn[255 & s[(r + 1) % 4]] ^ o); } return a; } }]); - return En; + return Cn; }(); -var kn = /*#__PURE__*/function () { - function kn(e) { - (0, _classCallCheck2.default)(this, kn); - if (!(this instanceof kn)) throw Error("AES must be instanitated with `new`"); - this.description = "Electronic Code Block", this.name = "ecb", this._aes = new En(e); +var On = /*#__PURE__*/function () { + function On(e) { + (0, _classCallCheck2.default)(this, On); + if (!(this instanceof On)) throw Error("AES must be instanitated with `new`"); + this.description = "Electronic Code Block", this.name = "ecb", this._aes = new Cn(e); } - (0, _createClass2.default)(kn, [{ + (0, _createClass2.default)(On, [{ key: "encrypt", value: function encrypt(e) { - if ((e = tn(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - for (var t = nn(e.length), n = nn(16), s = 0; s < e.length; s += 16) { - sn(e, n, 0, s, s + 16), sn(n = this._aes.encrypt(n), t, s); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), cn(n = this._aes.encrypt(n), t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { - if ((e = tn(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - for (var t = nn(e.length), n = nn(16), s = 0; s < e.length; s += 16) { - sn(e, n, 0, s, s + 16), sn(n = this._aes.decrypt(n), t, s); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), cn(n = this._aes.decrypt(n), t, s); } return t; } }]); - return kn; + return On; }(); -var Pn = /*#__PURE__*/function () { - function Pn(e, t) { - (0, _classCallCheck2.default)(this, Pn); - if (!(this instanceof Pn)) throw Error("AES must be instanitated with `new`"); +var xn = /*#__PURE__*/function () { + function xn(e, t) { + (0, _classCallCheck2.default)(this, xn); + if (!(this instanceof xn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Block Chaining", this.name = "cbc", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); - } else t = nn(16); - this._lastCipherblock = tn(t, !0), this._aes = new En(e); + } else t = an(16); + this._lastCipherblock = on(t, !0), this._aes = new Cn(e); } - (0, _createClass2.default)(Pn, [{ + (0, _createClass2.default)(xn, [{ key: "encrypt", value: function encrypt(e) { - if ((e = tn(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - for (var t = nn(e.length), n = nn(16), s = 0; s < e.length; s += 16) { - sn(e, n, 0, s, s + 16); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16); for (var r = 0; r < 16; r++) { n[r] ^= this._lastCipherblock[r]; } - this._lastCipherblock = this._aes.encrypt(n), sn(this._lastCipherblock, t, s); + this._lastCipherblock = this._aes.encrypt(n), cn(this._lastCipherblock, t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { - if ((e = tn(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - for (var t = nn(e.length), n = nn(16), s = 0; s < e.length; s += 16) { - sn(e, n, 0, s, s + 16), n = this._aes.decrypt(n); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), n = this._aes.decrypt(n); for (var r = 0; r < 16; r++) { t[s + r] = n[r] ^ this._lastCipherblock[r]; } - sn(e, this._lastCipherblock, 0, s, s + 16); + cn(e, this._lastCipherblock, 0, s, s + 16); } return t; } }]); - return Pn; + return xn; }(); -var Cn = /*#__PURE__*/function () { - function Cn(e, t, n) { - (0, _classCallCheck2.default)(this, Cn); - if (!(this instanceof Cn)) throw Error("AES must be instanitated with `new`"); +var Nn = /*#__PURE__*/function () { + function Nn(e, t, n) { + (0, _classCallCheck2.default)(this, Nn); + if (!(this instanceof Nn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Feedback", this.name = "cfb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 size)"); - } else t = nn(16); - n || (n = 1), this.segmentSize = n, this._shiftRegister = tn(t, !0), this._aes = new En(e); + } else t = an(16); + n || (n = 1), this.segmentSize = n, this._shiftRegister = on(t, !0), this._aes = new Cn(e); } - (0, _createClass2.default)(Cn, [{ + (0, _createClass2.default)(Nn, [{ key: "encrypt", value: function encrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid plaintext size (must be segmentSize bytes)"); - for (var t, n = tn(e, !0), s = 0; s < n.length; s += this.segmentSize) { + for (var t, n = on(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } - sn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), sn(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); + cn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), cn(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } @@ -8635,31 +8654,31 @@ key: "decrypt", value: function decrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid ciphertext size (must be segmentSize bytes)"); - for (var t, n = tn(e, !0), s = 0; s < n.length; s += this.segmentSize) { + for (var t, n = on(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } - sn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), sn(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); + cn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), cn(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }]); - return Cn; + return Nn; }(); -var An = /*#__PURE__*/function () { - function An(e, t) { - (0, _classCallCheck2.default)(this, An); - if (!(this instanceof An)) throw Error("AES must be instanitated with `new`"); +var Rn = /*#__PURE__*/function () { + function Rn(e, t) { + (0, _classCallCheck2.default)(this, Rn); + if (!(this instanceof Rn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Output Feedback", this.name = "ofb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); - } else t = nn(16); - this._lastPrecipher = tn(t, !0), this._lastPrecipherIndex = 16, this._aes = new En(e); + } else t = an(16); + this._lastPrecipher = on(t, !0), this._lastPrecipherIndex = 16, this._aes = new Cn(e); } - (0, _createClass2.default)(An, [{ + (0, _createClass2.default)(Rn, [{ key: "encrypt", value: function encrypt(e) { - for (var t = tn(e, !0), n = 0; n < t.length; n++) { + for (var t = on(e, !0), n = 0; n < t.length; n++) { 16 === this._lastPrecipherIndex && (this._lastPrecipher = this._aes.encrypt(this._lastPrecipher), this._lastPrecipherIndex = 0), t[n] ^= this._lastPrecipher[this._lastPrecipherIndex++]; } return t; @@ -8670,15 +8689,15 @@ return this.encrypt(e); } }]); - return An; + return Rn; }(); -var On = /*#__PURE__*/function () { - function On(e) { - (0, _classCallCheck2.default)(this, On); - if (!(this instanceof On)) throw Error("Counter must be instanitated with `new`"); - 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = nn(16), this.setValue(e)) : this.setBytes(e); +var Ln = /*#__PURE__*/function () { + function Ln(e) { + (0, _classCallCheck2.default)(this, Ln); + if (!(this instanceof Ln)) throw Error("Counter must be instanitated with `new`"); + 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = an(16), this.setValue(e)) : this.setBytes(e); } - (0, _createClass2.default)(On, [{ + (0, _createClass2.default)(Ln, [{ key: "setValue", value: function setValue(e) { if ("number" != typeof e || parseInt(e) != e) throw new Error("invalid counter value (must be an integer)"); @@ -8690,7 +8709,7 @@ }, { key: "setBytes", value: function setBytes(e) { - if (16 != (e = tn(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); + if (16 != (e = on(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); this._counter = e; } }, { @@ -8705,18 +8724,18 @@ } } }]); - return On; + return Ln; }(); -var xn = /*#__PURE__*/function () { - function xn(e, t) { - (0, _classCallCheck2.default)(this, xn); - if (!(this instanceof xn)) throw Error("AES must be instanitated with `new`"); - this.description = "Counter", this.name = "ctr", t instanceof On || (t = new On(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new En(e); +var Un = /*#__PURE__*/function () { + function Un(e, t) { + (0, _classCallCheck2.default)(this, Un); + if (!(this instanceof Un)) throw Error("AES must be instanitated with `new`"); + this.description = "Counter", this.name = "ctr", t instanceof Ln || (t = new Ln(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new Cn(e); } - (0, _createClass2.default)(xn, [{ + (0, _createClass2.default)(Un, [{ key: "encrypt", value: function encrypt(e) { - for (var t = tn(e, !0), n = 0; n < t.length; n++) { + for (var t = on(e, !0), n = 0; n < t.length; n++) { 16 === this._remainingCounterIndex && (this._remainingCounter = this._aes.encrypt(this._counter._counter), this._remainingCounterIndex = 0, this._counter.increment()), t[n] ^= this._remainingCounter[this._remainingCounterIndex++]; } return t; @@ -8727,108 +8746,71 @@ return this.encrypt(e); } }]); - return xn; + return Un; }(); -var Nn = { - AES: En, - Counter: On, +var Dn = { + AES: Cn, + Counter: Ln, ModeOfOperation: { - ecb: kn, - cbc: Pn, - cfb: Cn, - ofb: An, - ctr: xn + ecb: On, + cbc: xn, + cfb: Nn, + ofb: Rn, + ctr: Un }, utils: { - hex: an, - utf8: on + hex: ln, + utf8: hn }, padding: { pkcs7: { pad: function pad(e) { - var t = 16 - (e = tn(e, !0)).length % 16, - n = nn(e.length + t); - sn(e, n); + var t = 16 - (e = on(e, !0)).length % 16, + n = an(e.length + t); + cn(e, n); for (var s = e.length; s < n.length; s++) { n[s] = t; } return n; }, strip: function strip(e) { - if ((e = tn(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); + if ((e = on(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); var t = e[e.length - 1]; if (t > 16) throw new Error("PKCS#7 padding byte out of range"); for (var n = e.length - t, s = 0; s < t; s++) { if (e[n + s] !== t) throw new Error("PKCS#7 invalid padding byte"); } - var r = nn(n); - return sn(e, r, 0, 0, n), r; + var r = an(n); + return cn(e, r, 0, 0, n), r; } } }, _arrayTest: { - coerceArray: tn, - createArray: nn, - copyArray: sn + coerceArray: on, + createArray: an, + copyArray: cn } }; -function Rn(e, t, n) { +function Mn(e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(t)), - r = Nn.utils.utf8.toBytes(n), - i = Nn.utils.utf8.toBytes(e), - o = new Nn.ModeOfOperation.cbc(s, r), - a = Nn.padding.pkcs7.pad(i), + r = Dn.utils.utf8.toBytes(n), + i = Dn.utils.utf8.toBytes(e), + o = new Dn.ModeOfOperation.cbc(s, r), + a = Dn.padding.pkcs7.pad(i), c = o.encrypt(a); return uni.arrayBufferToBase64(c); -} -var Ln = "uni-secure-network", - Un = { - SYSTEM_ERROR: { - code: 2e4, - message: "System error" - }, - APP_INFO_INVALID: { - code: 20101, - message: "Invalid client" - }, - GET_ENCRYPT_KEY_FAILED: { - code: 20102, - message: "Get encrypt key failed" - } - }, - Dn = { - 10001: "Secure network is not supported on current playground or unimpsdk", - 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", - 10009: "Encrypt payload failed", - 10010: "Decrypt response failed" - }; -function Mn(e) { - var _ref35 = e || {}, - t = _ref35.errSubject, - n = _ref35.subject, - s = _ref35.errCode, - r = _ref35.errMsg, - i = _ref35.code, - o = _ref35.message, - a = _ref35.cause; - return new te({ - subject: t || n || Ln, - code: s || i || Un.SYSTEM_ERROR.code, - message: r || o, - cause: a - }); } var qn, Fn, Kn = null; -var jn = /*#__PURE__*/function (_Xt) { - (0, _inherits2.default)(jn, _Xt); +var jn = /*#__PURE__*/function (_nn) { + (0, _inherits2.default)(jn, _nn); var _super8 = _createSuper(jn); function jn(e) { - var _this18; + var _this19; (0, _classCallCheck2.default)(this, jn); - _this18 = _super8.call(this, e), _this18.clientType = "mp-weixin", _this18.userEncryptKey = null; - return _this18; + _this19 = _super8.call(this, e), _this19.clientType = "mp-weixin", _this19.userEncryptKey = null; + return _this19; } (0, _createClass2.default)(jn, [{ key: "isLogin", @@ -8877,7 +8859,7 @@ key: "getUserEncryptKey", value: function () { var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { - var _this19 = this; + var _this20 = this; var e; return _regenerator.default.wrap(function _callee53$(_context53) { while (1) { @@ -8903,10 +8885,10 @@ return _context53.abrupt("return", new Promise(function (e, t) { uni.getUserCryptoManager().getLatestUserKey({ success: function success(t) { - Kn = t, _this19.userEncryptKey = t, e(_this19.userEncryptKey); + Kn = t, _this20.userEncryptKey = t, e(_this20.userEncryptKey); }, fail: function fail(e) { - t(Mn(_objectSpread(_objectSpread({}, Un.GET_ENCRYPT_KEY_FAILED), {}, { + t(tn(_objectSpread(_objectSpread({}, Zt.GET_ENCRYPT_KEY_FAILED), {}, { cause: e }))); } @@ -8946,7 +8928,7 @@ t = _yield$this$getUserEn.iv; n = _yield$this$getUserEn.version; return _context54.abrupt("return", { - verifyClientSign: Rn(JSON.stringify({ + verifyClientSign: Mn(JSON.stringify({ data: JSON.stringify({}), appId: this.appId, deviceId: this.deviceId, @@ -8996,7 +8978,7 @@ content: e, _uniCloudOptions: r } : { - content: Rn(JSON.stringify({ + content: Mn(JSON.stringify({ data: JSON.stringify(e), appId: this.appId, deviceId: this.deviceId, @@ -9037,10 +9019,10 @@ return _context56.abrupt("return", JSON.parse(function (e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(e)), r = new Uint8Array(uni.base64ToArrayBuffer(t)), - i = Nn.utils.utf8.toBytes(n), - o = new Nn.ModeOfOperation.cbc(r, i), - a = Nn.padding.pkcs7.strip(o.decrypt(s)); - return Nn.utils.utf8.fromBytes(a); + i = Dn.utils.utf8.toBytes(n), + o = new Dn.ModeOfOperation.cbc(r, i), + a = Dn.padding.pkcs7.strip(o.decrypt(s)); + return Dn.utils.utf8.fromBytes(a); }(t, n, s))); case 7: case "end": @@ -9061,7 +9043,7 @@ } }]); return jn; -}(Xt); +}(nn); function $n(e) { var t = ["hasClientKey", "encryptGetClientKeyPayload", "setClientKey", "encrypt", "decrypt"], n = {}; @@ -9080,12 +9062,12 @@ i = _ref36.errMsg, o = _ref36.errSubject, a = _ref36.message; - "success" === e ? n(t) : s(Mn({ + "success" === e ? n(t) : s(tn({ errCode: r, - errMsg: Dn[r] || i || a, + errMsg: en[r] || i || a, errSubject: o })); - }])) : s(Mn({ + }])) : s(tn({ message: "璇锋鏌anifest.json鍐呮槸鍚﹀紑鍚畨鍏ㄧ綉缁滄ā鍧楋紝鍙﹀娉ㄦ剰鏍囧噯鍩哄骇涓嶆敮鎸佸畨鍏ㄧ綉缁滄ā鍧�" })); }); @@ -9096,14 +9078,14 @@ } return n; } -var Bn = /*#__PURE__*/function (_Xt2) { - (0, _inherits2.default)(Bn, _Xt2); +var Bn = /*#__PURE__*/function (_nn2) { + (0, _inherits2.default)(Bn, _nn2); var _super9 = _createSuper(Bn); function Bn(e) { - var _this20; + var _this21; (0, _classCallCheck2.default)(this, Bn); - _this20 = _super9.call(this, e), _this20.clientType = "app", _this20.appUtils = _objectSpread({}, $n(uni.requireNativePlugin("plus"))), _this20.systemInfo = qn || (qn = ae()); - return _this20; + _this21 = _super9.call(this, e), _this21.clientType = "app", _this21.appUtils = _objectSpread({}, $n(uni.requireNativePlugin("plus"))), _this21.systemInfo = qn || (qn = ae()); + return _this21; } (0, _createClass2.default)(Bn, [{ key: "hasClientKey", @@ -9175,9 +9157,9 @@ } throw function (e) { return new te({ - subject: e.errSubject || Ln, - code: e.errCode || e.code || Un.SYSTEM_ERROR.code, - message: e.errMsg || e.message + subject: e.errSubject || Xt, + code: e.errCode || e.code || Zt.SYSTEM_ERROR.code, + message: e.errMsg || e.message || Zt.SYSTEM_ERROR.message }); }(n); case 13: @@ -9205,7 +9187,7 @@ key: "ensureClientKey", value: function () { var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59() { - var _this21 = this; + var _this22 = this; var _ref37, _ref37$forceUpdate, e, @@ -9232,9 +9214,9 @@ break; } return _context59.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === d || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== f || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { - _this21.scopedGlobalCache.initStatus = p; + _this22.scopedGlobalCache.initStatus = p; }).catch(function (e) { - throw _this21.scopedGlobalCache.initStatus = f, e; + throw _this22.scopedGlobalCache.initStatus = f, e; }), this.scopedGlobalCache.initStatus = d), this.scopedGlobalCache.initPromise)); case 10: case "end": @@ -9394,11 +9376,11 @@ value: function isClientKeyNotFound() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = e.result || {}; - return 70009 === t.errCode && t.errSubject === Ln; + return 70009 === t.errCode && t.errSubject === Xt; } }]); return Bn; -}(Xt); +}(nn); function Wn() { var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref39.secretType; @@ -9409,7 +9391,7 @@ e = _ref40.name, _ref40$data = _ref40.data, t = _ref40$data === void 0 ? {} : _ref40$data; - return "app" === C && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; + return "app" === P && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; } function Jn() { var _ref41 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, @@ -9426,7 +9408,7 @@ var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref42.provider, t = _ref42.spaceId; - var n = P; + var n = A; if (!n) return {}; e = function (e) { return "tencent" === e ? "tcb" : e; @@ -9458,7 +9440,7 @@ var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return e.appId === s && (e.platform || "").toLowerCase() === o.toLowerCase(); })) return !0; - throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), Mn(Un.APP_INFO_INVALID); + throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), tn(Zt.APP_INFO_INVALID); } function zn(_ref43) { var e = _ref43.functionName, @@ -9476,7 +9458,7 @@ function Vn(e) { var t = e.callFunction, n = function n(_n12) { - var _this22 = this; + var _this23 = this; var s = _n12.name; _n12.data = Bt.call(e, { data: _n12.data @@ -9492,13 +9474,13 @@ o = Hn(_n12), a = i || o; return t.call(this, _n12).then(function (e) { - return e.errCode = 0, !a && zn.call(_this22, { + return e.errCode = 0, !a && zn.call(_this23, { functionName: s, result: e, logPvd: r }), Promise.resolve(e); }, function (e) { - return !a && zn.call(_this22, { + return !a && zn.call(_this23, { functionName: s, result: e, logPvd: r @@ -9546,7 +9528,7 @@ var e = _ref45.name, _ref45$data = _ref45.data, t = _ref45$data === void 0 ? {} : _ref45$data; - return "mp-weixin" === C && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; + return "mp-weixin" === P && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; }(t)) a = o.call(e, t);else if (Wn(t)) { a = new Fn({ secretType: t.secretType, @@ -9567,23 +9549,23 @@ return console.warn("褰撳墠杩斿洖缁撴灉涓篜romise绫诲瀷锛屼笉鍙洿鎺ヨ闂叾result灞炴�э紝璇︽儏璇峰弬鑰冿細https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}; } }), a.then(function (e) { - return "undefined" != typeof UTSJSONObject && (e.result = new UTSJSONObject(e.result)), e; + return e; }); }; } -Fn = "mp-weixin" !== C && "app" !== C ? /*#__PURE__*/function () { +Fn = "mp-weixin" !== P && "app" !== P ? /*#__PURE__*/function () { function _class2() { (0, _classCallCheck2.default)(this, _class2); - throw Mn({ - message: "Platform ".concat(C, " is not supported by secure network") + throw tn({ + message: "Platform ".concat(P, " is not supported by secure network") }); } return (0, _createClass2.default)(_class2); -}() : k ? "mp-weixin" === C ? jn : Bn : /*#__PURE__*/function () { +}() : k ? "mp-weixin" === P ? jn : Bn : /*#__PURE__*/function () { function _class3() { (0, _classCallCheck2.default)(this, _class3); - throw Mn({ - message: "Platform ".concat(C, " is not enabled, please check whether secure network module is enabled in your manifest.json") + throw tn({ + message: "Platform ".concat(P, " is not enabled, please check whether secure network module is enabled in your manifest.json") }); } return (0, _createClass2.default)(_class3); @@ -9951,7 +9933,7 @@ }, { key: "_callCloudFunction", value: function _callCloudFunction(_ref48) { - var _this23 = this; + var _this24 = this; var e = _ref48.action, t = _ref48.command, n = _ref48.multiCommand, @@ -10000,7 +9982,7 @@ _n16 = _u$_e.message, _s17 = _u$_e.detail; var _r8 = "[System Info]" + _n16; - _s17 && (_r8 = "".concat(_r8, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s17)), (console["app" === C && "warn" === _t14 ? "error" : _t14] || console.log)(_r8); + _s17 && (_r8 = "".concat(_r8, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s17)), (console["app" === P && "warn" === _t14 ? "error" : _t14] || console.log)(_r8); } if (t) { return a(new te({ @@ -10012,10 +9994,10 @@ e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (re({ token: s, tokenExpired: c - }), _this23._callbackAuth("refreshToken", [{ + }), _this24._callbackAuth("refreshToken", [{ token: s, tokenExpired: c - }]), _this23._callback("refreshToken", [{ + }]), _this24._callback("refreshToken", [{ token: s, tokenExpired: c }]), Y(H.REFRESH_TOKEN, { @@ -10086,50 +10068,53 @@ "uni-id-check-token-failed": cs, "uni-id-token-not-exist": cs, "uni-id-check-device-feature-failed": cs - }; -function ds(e, t) { + }, + ds = _objectSpread(_objectSpread(_objectSpread({}, hs), ls), {}, { + default: "鐢ㄦ埛鏈櫥褰曟垨鐧诲綍鐘舵�佽繃鏈燂紝鑷姩璺宠浆鐧诲綍椤甸潰" + }); +function ps(e, t) { var n = ""; return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, ""); } -function ps() { +function fs() { 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(ds(t, e.path)) : !1 === e.needLogin && s.push(ds(t, e.path)); + !0 === e.needLogin ? n.push(ps(t, e.path)) : !1 === e.needLogin && s.push(ps(t, e.path)); }), { needLoginPage: n, notNeedLoginPage: s }; } -function fs(e) { +function gs(e) { return e.split("?")[0].replace(/^\//, ""); } -function gs() { +function ms() { return function (e) { - var t = e && e.$page && e.$page.fullPath || ""; - return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t; + var t = e && e.$page && e.$page.fullPath; + return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : ""; }(function () { var e = getCurrentPages(); return e[e.length - 1]; }()); } -function ms() { - return fs(gs()); -} function ys() { + return gs(ms()); +} +function _s() { 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 = fs(e); + s = gs(e); return n.some(function (e) { return e.pagePath === s; }); } -var _s = !!_pages.default.uniIdRouter; +var ws = !!_pages.default.uniIdRouter; var _ref49 = function () { var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, _ref8$pages = _ref8.pages, @@ -10145,9 +10130,9 @@ o = _s$needLogin === void 0 ? [] : _s$needLogin, _s$resToLogin = s.resToLogin, a = _s$resToLogin === void 0 ? !0 : _s$resToLogin, - _ps = ps(t), - c = _ps.needLoginPage, - u = _ps.notNeedLoginPage, + _fs = fs(t), + c = _fs.needLoginPage, + u = _fs.notNeedLoginPage, _ref9 = function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = [], @@ -10156,9 +10141,9 @@ var s = e.root, _e$pages = e.pages, r = _e$pages === void 0 ? [] : _e$pages, - _ps2 = ps(r, s), - i = _ps2.needLoginPage, - o = _ps2.notNeedLoginPage; + _fs2 = fs(r, s), + i = _fs2.needLoginPage, + o = _fs2.notNeedLoginPage; t.push.apply(t, (0, _toConsumableArray2.default)(i)), n.push.apply(n, (0, _toConsumableArray2.default)(o)); }), { needLoginPage: t, @@ -10173,18 +10158,18 @@ resToLogin: a, needLoginPage: [].concat((0, _toConsumableArray2.default)(c), (0, _toConsumableArray2.default)(h)), notNeedLoginPage: [].concat((0, _toConsumableArray2.default)(u), (0, _toConsumableArray2.default)(l)), - loginPageInTabBar: ys(i, r) + loginPageInTabBar: _s(i, r) }; }(), - ws = _ref49.loginPage, + Is = _ref49.loginPage, vs = _ref49.routerNeedLogin, - Is = _ref49.resToLogin, - Ss = _ref49.needLoginPage, - Ts = _ref49.notNeedLoginPage, - bs = _ref49.loginPageInTabBar; -if (Ss.indexOf(ws) > -1) throw new Error("Login page [".concat(ws, "] should not be \"needLogin\", please check your pages.json")); -function Es(e) { - var t = ms(); + Ss = _ref49.resToLogin, + Ts = _ref49.needLoginPage, + bs = _ref49.notNeedLoginPage, + Es = _ref49.loginPageInTabBar; +if (Ts.indexOf(Is) > -1) throw new Error("Login page [".concat(Is, "] should not be \"needLogin\", please check your pages.json")); +function ks(e) { + var t = ys(); if ("/" === e.charAt(0)) return e; var _e$split = e.split("?"), _e$split2 = (0, _slicedToArray2.default)(_e$split, 2), @@ -10199,31 +10184,31 @@ } return "" === i[0] && i.shift(), "/" + i.join("/") + (s ? "?" + s : ""); } -function ks(e) { - var t = fs(Es(e)); - return !(Ts.indexOf(t) > -1) && (Ss.indexOf(t) > -1 || vs.some(function (t) { +function As(e) { + var t = gs(ks(e)); + return !(bs.indexOf(t) > -1) && (Ts.indexOf(t) > -1 || vs.some(function (t) { return function (e, t) { return new RegExp(t).test(e); }(e, t); })); } -function Ps(_ref31) { - var e = _ref31.redirect; - var t = fs(e), - n = fs(ws); - return ms() !== n && t !== n; +function Ps(_ref32) { + var e = _ref32.redirect; + var t = gs(e), + n = gs(Is); + return ys() !== n && t !== n; } function Cs() { - var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref33.api, - t = _ref33.redirect; + var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref34.api, + t = _ref34.redirect; if (!t || !Ps({ 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; - }(ws, t); - bs ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); + }(Is, t); + Es ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); var s = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, @@ -10236,7 +10221,7 @@ }); }, 0); } -function As() { +function Os() { var _ref50 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref50.url; var t = { @@ -10253,19 +10238,19 @@ var _e25 = "uni-id-token-expired"; n = { errCode: _e25, - errMsg: ls[_e25] + errMsg: ds[_e25] }; } } else { var _e26 = "uni-id-check-token-failed"; n = { errCode: _e26, - errMsg: ls[_e26] + errMsg: ds[_e26] }; } return n; }(); - if (ks(e) && n) { + if (As(e) && n) { n.uniIdRedirectUrl = e; if (z(H.NEED_LOGIN).length > 0) return setTimeout(function () { Y(H.NEED_LOGIN, n); @@ -10274,14 +10259,14 @@ } return t; } -function Os() { +function xs() { !function () { - var e = gs(), - _As = As({ + var e = ms(), + _Os = Os({ url: e }), - t = _As.abortLoginPageJump, - n = _As.autoToLoginPage; + t = _Os.abortLoginPageJump, + n = _Os.autoToLoginPage; t || n && Cs({ api: "redirectTo", redirect: e @@ -10292,14 +10277,14 @@ var n = e[_t18]; uni.addInterceptor(n, { invoke: function invoke(e) { - var _As2 = As({ + var _Os2 = Os({ url: e.url }), - t = _As2.abortLoginPageJump, - s = _As2.autoToLoginPage; + t = _Os2.abortLoginPageJump, + s = _Os2.autoToLoginPage; return t ? e : s ? (Cs({ api: n, - redirect: Es(e.url) + redirect: ks(e.url) }), !1) : e; } }); @@ -10308,7 +10293,7 @@ _loop3(_t18); } } -function xs() { +function Ns() { this.onResponse(function (e) { var t = e.type, n = e.content; @@ -10319,7 +10304,7 @@ if ("object" != (0, _typeof2.default)(e)) return !1; var _ref51 = e || {}, t = _ref51.errCode; - return t in ls; + return t in ds; }(n); break; case "clientdb": @@ -10334,12 +10319,12 @@ var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = z(H.NEED_LOGIN); Z().then(function () { - var n = gs(); + var n = ms(); if (n && Ps({ redirect: n })) return t.length > 0 ? Y(H.NEED_LOGIN, Object.assign({ uniIdRedirectUrl: n - }, e)) : void (ws && Cs({ + }, e)) : void (Is && Cs({ api: "navigateTo", redirect: n })); @@ -10347,7 +10332,7 @@ }(n); }); } -function Ns(e) { +function Rs(e) { !function (e) { e.onResponse = function (e) { V(H.RESPONSE, e); @@ -10359,9 +10344,9 @@ V(H.NEED_LOGIN, e); }, e.offNeedLogin = function (e) { G(H.NEED_LOGIN, e); - }, _s && (U(Yt).needLoginInit || (U(Yt).needLoginInit = !0, Z().then(function () { - Os.call(e); - }), Is && xs.call(e))); + }, ws && (U(Yt).needLoginInit || (U(Yt).needLoginInit = !0, Z().then(function () { + xs.call(e); + }), Ss && Ns.call(e))); }(e), function (e) { e.onRefreshToken = function (e) { V(H.REFRESH_TOKEN, e); @@ -10370,10 +10355,10 @@ }; }(e); } -var Rs; -var Ls = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - Us = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; -function Ds() { +var Ls; +var Us = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + Ds = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; +function Ms() { var e = se().token || "", t = e.split("."); if (!e || 3 !== t.length) return { @@ -10384,7 +10369,7 @@ }; var n; try { - n = JSON.parse((s = t[1], decodeURIComponent(Rs(s).split("").map(function (e) { + n = JSON.parse((s = t[1], decodeURIComponent(Ls(s).split("").map(function (e) { return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e) { @@ -10393,16 +10378,16 @@ var s; return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n; } -Rs = "function" != typeof atob ? function (e) { - if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !Us.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); +Ls = "function" != typeof atob ? function (e) { + if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !Ds.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, r = "", i = 0; i < e.length;) { - t = Ls.indexOf(e.charAt(i++)) << 18 | Ls.indexOf(e.charAt(i++)) << 12 | (n = Ls.indexOf(e.charAt(i++))) << 6 | (s = Ls.indexOf(e.charAt(i++))), r += 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); + t = Us.indexOf(e.charAt(i++)) << 18 | Us.indexOf(e.charAt(i++)) << 12 | (n = Us.indexOf(e.charAt(i++))) << 6 | (s = Us.indexOf(e.charAt(i++))), r += 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 r; } : atob; -var Ms = n(function (e, t) { +var qs = n(function (e, t) { Object.defineProperty(t, "__esModule", { value: !0 }); @@ -10563,13 +10548,13 @@ }; }; }), - qs = t(Ms); -var Fs = { + Fs = t(qs); +var Ks = { auto: "auto", onready: "onready", manual: "manual" }; -function Ks(e) { +function js(e) { return { props: { localdata: { @@ -10678,7 +10663,7 @@ }; }, created: function created() { - var _this24 = this; + var _this25 = this; this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, @@ -10686,37 +10671,37 @@ }, 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(_this24[t]); + e.push(_this25[t]); }), e; }, function (e, t) { - if (_this24.loadtime === Fs.manual) return; + if (_this25.loadtime === Ks.manual) return; var n = !1; var s = []; for (var _r9 = 2; _r9 < e.length; _r9++) { e[_r9] !== t[_r9] && (s.push(e[_r9]), n = !0); } - e[0] !== t[0] && (_this24.mixinDatacomPage.current = _this24.pageCurrent), _this24.mixinDatacomPage.size = _this24.pageSize, _this24.onMixinDatacomPropsChange(n, s); + e[0] !== t[0] && (_this25.mixinDatacomPage.current = _this25.pageCurrent), _this25.mixinDatacomPage.size = _this25.pageSize, _this25.onMixinDatacomPropsChange(n, s); }); }, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() { - var _this25 = this; + var _this26 = this; var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref54$getone = _ref54.getone, e = _ref54$getone === void 0 ? !1 : _ref54$getone, t = _ref54.success, n = _ref54.fail; this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then(function (n) { - _this25.mixinDatacomLoading = !1; + _this26.mixinDatacomLoading = !1; var _n$result = n.result, s = _n$result.data, r = _n$result.count; - _this25.getcount && (_this25.mixinDatacomPage.count = r), _this25.mixinDatacomHasMore = s.length < _this25.pageSize; + _this26.getcount && (_this26.mixinDatacomPage.count = r), _this26.mixinDatacomHasMore = s.length < _this26.pageSize; var i = e ? s.length ? s[0] : void 0 : s; - _this25.mixinDatacomResData = i, t && t(i); + _this26.mixinDatacomResData = i, t && t(i); }).catch(function (e) { - _this25.mixinDatacomLoading = !1, _this25.mixinDatacomErrorMessage = e, _this25.mixinDatacomError = e, n && n(e); + _this26.mixinDatacomLoading = !1, _this26.mixinDatacomErrorMessage = e, _this26.mixinDatacomError = e, n && n(e); })); }, mixinDatacomGet: function mixinDatacomGet() { @@ -10758,7 +10743,7 @@ } }; } -function js(e) { +function $s(e) { return function (t) { var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; n = function (e) { @@ -11058,14 +11043,14 @@ }); }; } -function $s(e) { +function Bs(e) { return U(Qt.replace("{spaceId}", e.config.spaceId)); } -function Bs() { - return _Bs.apply(this, arguments); +function Ws() { + return _Ws.apply(this, arguments); } -function _Bs() { - _Bs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee71() { +function _Ws() { + _Ws = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee71() { var _ref70, e, _ref70$callLoginByWei, @@ -11079,12 +11064,12 @@ switch (_context71.prev = _context71.next) { case 0: _ref70 = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {}, e = _ref70.openid, _ref70$callLoginByWei = _ref70.callLoginByWeixin, t = _ref70$callLoginByWei === void 0 ? !1 : _ref70$callLoginByWei; - n = $s(this); - if (!("mp-weixin" !== C)) { + n = Bs(this); + if (!("mp-weixin" !== P)) { _context71.next = 4; break; } - throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(C, "`")); + throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(P, "`")); case 4: if (!(e && t)) { _context71.next = 6; @@ -11131,20 +11116,20 @@ } }, _callee71, this); })); - return _Bs.apply(this, arguments); -} -function Ws(_x52) { return _Ws.apply(this, arguments); } -function _Ws() { - _Ws = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee72(e) { +function Hs(_x52) { + return _Hs.apply(this, arguments); +} +function _Hs() { + _Hs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee72(e) { var t; return _regenerator.default.wrap(function _callee72$(_context72) { while (1) { switch (_context72.prev = _context72.next) { case 0: - t = $s(this); - return _context72.abrupt("return", (t.initPromise || (t.initPromise = Bs.call(this, e).then(function (e) { + t = Bs(this); + return _context72.abrupt("return", (t.initPromise || (t.initPromise = Ws.call(this, e).then(function (e) { return e; }).catch(function (e) { throw delete t.initPromise, e; @@ -11156,57 +11141,58 @@ } }, _callee72, this); })); - return _Ws.apply(this, arguments); + return _Hs.apply(this, arguments); } -function Hs(e) { +function Js(e) { return function () { var _ref61 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref61.openid, _ref61$callLoginByWei = _ref61.callLoginByWeixin, n = _ref61$callLoginByWei === void 0 ? !1 : _ref61$callLoginByWei; - return Ws.call(e, { + return Hs.call(e, { openid: t, callLoginByWeixin: n }); }; } -function Js(e) { +function zs(e) { !function (e) { ue = e; }(e); } -function zs(e) { - var t = { - getSystemInfo: uni.getSystemInfo, - getPushClientId: uni.getPushClientId - }; - return function (n) { - return new Promise(function (s, r) { - t[e](_objectSpread(_objectSpread({}, n), {}, { +function Vs(e) { + var t = "mp-weixin" === P && wx.canIUse("getAppBaseInfo"), + n = { + getAppBaseInfo: t ? uni.getAppBaseInfo : uni.getSystemInfo, + getPushClientId: uni.getPushClientId + }; + return function (s) { + return new Promise(function (r, i) { + t && "getAppBaseInfo" === e ? r(n[e]()) : n[e](_objectSpread(_objectSpread({}, s), {}, { success: function success(e) { - s(e); + r(e); }, fail: function fail(e) { - r(e); + i(e); } })); }); }; } -var Vs = /*#__PURE__*/function (_S) { - (0, _inherits2.default)(Vs, _S); - var _super11 = _createSuper(Vs); - function Vs() { - var _this26; - (0, _classCallCheck2.default)(this, Vs); - _this26 = _super11.call(this), _this26._uniPushMessageCallback = _this26._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this26)), _this26._currentMessageId = -1, _this26._payloadQueue = []; - return _this26; +var Gs = /*#__PURE__*/function (_S) { + (0, _inherits2.default)(Gs, _S); + var _super11 = _createSuper(Gs); + function Gs() { + var _this27; + (0, _classCallCheck2.default)(this, Gs); + _this27 = _super11.call(this), _this27._uniPushMessageCallback = _this27._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this27)), _this27._currentMessageId = -1, _this27._payloadQueue = []; + return _this27; } - (0, _createClass2.default)(Vs, [{ + (0, _createClass2.default)(Gs, [{ key: "init", value: function init() { - var _this27 = this; - return Promise.all([zs("getSystemInfo")(), zs("getPushClientId")()]).then(function () { + var _this28 = this; + return Promise.all([Vs("getAppBaseInfo")(), Vs("getPushClientId")()]).then(function () { var _ref62 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], _ref63 = (0, _slicedToArray2.default)(_ref62, 2), _ref63$ = _ref63[0]; @@ -11217,9 +11203,9 @@ var t = _ref63$2.cid; if (!e) throw new Error("Invalid appId, please check the manifest.json file"); if (!t) throw new Error("Invalid push client id"); - _this27._appId = e, _this27._pushClientId = t, _this27._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this27.emit("open"), _this27._initMessageListener(); + _this28._appId = e, _this28._pushClientId = t, _this28._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this28.emit("open"), _this28._initMessageListener(); }, function (e) { - throw _this27.emit("error", e), _this27.close(), e; + throw _this28.emit("error", e), _this28.close(), e; }); } }, { @@ -11267,10 +11253,10 @@ }, { key: "_consumMessage", value: function _consumMessage() { - var _this28 = this; + var _this29 = this; for (;;) { var _e28 = this._payloadQueue.find(function (e) { - return e.messageId === _this28._currentMessageId + 1; + return e.messageId === _this29._currentMessageId + 1; }); if (!_e28) break; this._currentMessageId++, this._parseMessagePayload(_e28); @@ -11331,14 +11317,14 @@ this._destroy(), this.emit("close"); } }]); - return Vs; + return Gs; }(S); -function Gs(_x53) { - return _Gs.apply(this, arguments); +function Ys(_x53) { + return _Ys.apply(this, arguments); } -function _Gs() { - _Gs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee73(e) { - var _ae2, _e33, _t22, t, _t$debugInfo, n, s, _yield$At2, r, i, o; +function _Ys() { + _Ys = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee73(e) { + var _ae2, _e33, _t22, t, _t$debugInfo, n, s, _yield$Ct2, r, i, o; return _regenerator.default.wrap(function _callee73$(_context73) { while (1) { switch (_context73.prev = _context73.next) { @@ -11349,7 +11335,7 @@ } return _context73.abrupt("return", Promise.resolve()); case 2: - if ("app" === C) { + if ("app" === P) { _ae2 = ae(), _e33 = _ae2.osName, _t22 = _ae2.osVersion; "ios" === _e33 && function (e) { if (!e || "string" != typeof e) return 0; @@ -11368,19 +11354,19 @@ n = _t$debugInfo.address; s = _t$debugInfo.servePort; _context73.next = 11; - return At(n, s); + return Ct(n, s); case 11: - _yield$At2 = _context73.sent; - r = _yield$At2.address; + _yield$Ct2 = _context73.sent; + r = _yield$Ct2.address; if (!r) { _context73.next = 15; break; } return _context73.abrupt("return", (t.localAddress = r, void (t.localPort = s))); case 15: - i = console["app" === C ? "error" : "warn"]; + i = console["app" === P ? "error" : "warn"]; o = ""; - if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "褰撳墠瀹㈡埛绔拰HBuilderX涓嶅湪鍚屼竴灞�鍩熺綉涓嬶紙鎴栧叾浠栫綉缁滃師鍥犳棤娉曡繛鎺BuilderX锛夛紝uniCloud鏈湴璋冭瘯鏈嶅姟涓嶅褰撳墠瀹㈡埛绔敓鏁堛�俓n- 濡傛灉涓嶄娇鐢╱niCloud鏈湴璋冭瘯鏈嶅姟锛岃鐩存帴蹇界暐姝や俊鎭�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆�") : o = "鏃犳硶杩炴帴uniCloud鏈湴璋冭瘯鏈嶅姟锛岃妫�鏌ュ綋鍓嶅鎴风鏄惁涓庝富鏈哄湪鍚屼竴灞�鍩熺綉涓嬨�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆�", o += "\n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs\n- 妫�鏌ユ槸鍚﹂敊璇殑浣跨敤鎷︽埅鍣ㄤ慨鏀箄ni.request鏂规硶鐨勫弬鏁�", "web" === C && (o += "\n- 閮ㄥ垎娴忚鍣ㄥ紑鍚妭娴佹ā寮忎箣鍚庤闂湰鍦板湴鍧�鍙楅檺锛岃妫�鏌ユ槸鍚﹀惎鐢ㄤ簡鑺傛祦妯″紡"), 0 === C.indexOf("mp-") && (o += "\n- 灏忕▼搴忎腑濡備綍浣跨敤uniCloud锛岃鍙傝�冿細https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { + if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "褰撳墠瀹㈡埛绔拰HBuilderX涓嶅湪鍚屼竴灞�鍩熺綉涓嬶紙鎴栧叾浠栫綉缁滃師鍥犳棤娉曡繛鎺BuilderX锛夛紝uniCloud鏈湴璋冭瘯鏈嶅姟涓嶅褰撳墠瀹㈡埛绔敓鏁堛�俓n- 濡傛灉涓嶄娇鐢╱niCloud鏈湴璋冭瘯鏈嶅姟锛岃鐩存帴蹇界暐姝や俊鎭�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆�") : o = "鏃犳硶杩炴帴uniCloud鏈湴璋冭瘯鏈嶅姟锛岃妫�鏌ュ綋鍓嶅鎴风鏄惁涓庝富鏈哄湪鍚屼竴灞�鍩熺綉涓嬨�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆�", o += "\n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs\n- 妫�鏌ユ槸鍚﹂敊璇殑浣跨敤鎷︽埅鍣ㄤ慨鏀箄ni.request鏂规硶鐨勫弬鏁�", "web" === P && (o += "\n- 閮ㄥ垎娴忚鍣ㄥ紑鍚妭娴佹ā寮忎箣鍚庤闂湰鍦板湴鍧�鍙楅檺锛岃妫�鏌ユ槸鍚﹀惎鐢ㄤ簡鑺傛祦妯″紡"), 0 === P.indexOf("mp-") && (o += "\n- 灏忕▼搴忎腑濡備綍浣跨敤uniCloud锛岃鍙傝�冿細https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { _context73.next = 19; break; } @@ -11394,10 +11380,10 @@ } }, _callee73); })); - return _Gs.apply(this, arguments); + return _Ys.apply(this, arguments); } -function Ys(e) { - e._initPromiseHub || (e._initPromiseHub = new I({ +function Qs(e) { + e._initPromiseHub || (e._initPromiseHub = new v({ createPromise: function createPromise() { var t = Promise.resolve(); var n; @@ -11415,15 +11401,15 @@ } })); } -var Qs = { - tcb: Pt, - tencent: Pt, +var Xs = { + tcb: At, + tencent: At, aliyun: pe, private: Nt, dcloud: Nt, alipay: $t }; -var Xs = new ( /*#__PURE__*/function () { +var Zs = new ( /*#__PURE__*/function () { function _class5() { (0, _classCallCheck2.default)(this, _class5); } @@ -11431,23 +11417,23 @@ key: "init", value: function init(e) { var t = {}; - var n = Qs[e.provider]; + var n = Xs[e.provider]; if (!n) throw new Error("鏈彁渚涙纭殑provider鍙傛暟"); t = n.init(e), b && function (e) { if (!b) return; var t = {}; - e.__dev__ = t, t.debugLog = b && ("web" === C && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === C || "mp-harmony" === C); - var n = A; + e.__dev__ = t, t.debugLog = b && ("web" === P && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === P || "mp-harmony" === P); + var n = C; n && !n.code && (t.debugInfo = n); - var s = new I({ + var s = new v({ createPromise: function createPromise() { - return Gs(e); + return Ys(e); } }); t.initLocalNetwork = function () { return s.exec(); }; - }(t), Ys(t), Vn(t), function (e) { + }(t), Qs(t), Vn(t), function (e) { var t = e.uploadFile; e.uploadFile = function (e) { return t.call(this, e); @@ -11470,11 +11456,11 @@ return this._databaseForJQL = n, n; }; }(t), function (e) { - e.getCurrentUserInfo = Ds, e.chooseAndUploadFile = qs.initChooseAndUploadFile(e), Object.assign(e, { + e.getCurrentUserInfo = Ms, e.chooseAndUploadFile = Fs.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() { - return Ks(e); + return js(e); } - }), e.SSEChannel = Vs, e.initSecureNetworkByWeixin = Hs(e), e.setCustomClientInfo = Js, e.importObject = js(e); + }), e.SSEChannel = Gs, e.initSecureNetworkByWeixin = Js(e), e.setCustomClientInfo = zs, e.importObject = $s(e); }(t); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) { if (!t[e]) return; @@ -11483,7 +11469,7 @@ return n.apply(t, Array.from(arguments)); }, t[e] = function (e, t) { return function (n) { - var _this29 = this; + var _this30 = this; var s = !1; if ("callFunction" === t) { var _e29 = n && n.type || l.DEFAULT; @@ -11499,7 +11485,7 @@ u = i.then(function () { return s ? Promise.resolve() : j($(t, "invoke"), n); }).then(function () { - return e.call(_this29, n); + return e.call(_this30, n); }).then(function (e) { return s ? Promise.resolve(e) : j($(t, "success"), e).then(function () { return j($(t, "complete"), e); @@ -11538,33 +11524,35 @@ }]); return _class5; }())(); -exports.uniCloud = Xs; +exports.uniCloud = Zs; (function () { var e = O; var t = {}; - if (e && 1 === e.length) t = e[0], exports.uniCloud = Xs = Xs.init(t), Xs._isDefault = !0;else { - var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; - var _n20; - _n20 = e && e.length > 0 ? "搴旂敤鏈夊涓湇鍔$┖闂达紝璇烽�氳繃uniCloud.init鏂规硶鎸囧畾瑕佷娇鐢ㄧ殑鏈嶅姟绌洪棿" : x ? "搴旂敤鏈叧鑱旀湇鍔$┖闂达紝璇峰湪uniCloud鐩綍鍙抽敭鍏宠仈鏈嶅姟绌洪棿" : "uni-app cli椤圭洰鍐呬娇鐢╱niCloud闇�瑕佷娇鐢℉BuilderX鐨勮繍琛岃彍鍗曡繍琛岄」鐩紝涓旈渶瑕佸湪uniCloud鐩綍鍏宠仈鏈嶅姟绌洪棿", _t21.forEach(function (e) { - Xs[e] = function () { - return console.error(_n20), Promise.reject(new te({ + if (e && 1 === e.length) t = e[0], exports.uniCloud = Zs = Zs.init(t), Zs._isDefault = !0;else { + var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile"], + _n20 = ["database", "getCurrentUserInfo", "importObject"]; + var _s19; + _s19 = e && e.length > 0 ? "搴旂敤鏈夊涓湇鍔$┖闂达紝璇烽�氳繃uniCloud.init鏂规硶鎸囧畾瑕佷娇鐢ㄧ殑鏈嶅姟绌洪棿" : x ? "搴旂敤鏈叧鑱旀湇鍔$┖闂达紝璇峰湪uniCloud鐩綍鍙抽敭鍏宠仈鏈嶅姟绌洪棿" : "uni-app cli椤圭洰鍐呬娇鐢╱niCloud闇�瑕佷娇鐢℉BuilderX鐨勮繍琛岃彍鍗曡繍琛岄」鐩紝涓旈渶瑕佸湪uniCloud鐩綍鍏宠仈鏈嶅姟绌洪棿", [].concat(_t21, _n20).forEach(function (e) { + Zs[e] = function () { + if (console.error(_s19), -1 === _n20.indexOf(e)) return Promise.reject(new te({ code: "SYS_ERR", - message: _n20 + message: _s19 })); + console.error(_s19); }; }); } - if (Object.assign(Xs, { + if (Object.assign(Zs, { get mixinDatacom() { - return Ks(Xs); + return js(Zs); } - }), Ns(Xs), Xs.addInterceptor = F, Xs.removeInterceptor = K, Xs.interceptObject = B, b && "web" === C && (window.uniCloud = Xs), "app" === C && (uni.__uniCloud = Xs), "app" === C || "web" === C) { + }), Rs(Zs), Zs.addInterceptor = F, Zs.removeInterceptor = K, Zs.interceptObject = B, b && "web" === P && (window.uniCloud = Zs), "app" === P && (uni.__uniCloud = Zs), "app" === P || "web" === P) { var _e30 = D(); - _e30.uniCloud = Xs, _e30.UniCloudError = te; + _e30.uniCloud = Zs, _e30.UniCloudError = te; } })(); -var Zs = Xs; -exports.default = Zs; +var er = Zs; +exports.default = er; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 72), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 73)["default"])) /***/ }), @@ -14162,7 +14150,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 118));\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 119));\nvar _WebSocketClient = __webpack_require__(/*! @/static/js/WebSocketClient */ 120);\nvar _uniWebSocket = _interopRequireDefault(__webpack_require__(/*! ./uniWebSocket */ 122));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 socket;\nvar _default = {\n data: function data() {\n return {\n series: [],\n homeViewShow: true,\n infoViewShow: false,\n errorInfoViewShow: false,\n homeMode: [],\n infoMode: [],\n errorInfoMode: [],\n baseInfo: {\n xDistance: 1,\n yDistance: 2,\n xDuration: 3,\n yDuration: 4,\n usedPr: 50,\n used: 3537,\n stockCount: '',\n emptyCount: '',\n noneCount: ''\n },\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n duration: 1000,\n calendar: '',\n ringOpts: {},\n chartsDataLine1: {},\n chartsDataPie2: {},\n fontSize: '',\n height: '',\n showCharts: false,\n ejectShow: false,\n baseIP: '',\n basePort: '',\n baseLedId: '',\n baseCrnId: '',\n baseUrl: '',\n info: null,\n error: null,\n infoType: 0,\n text: '',\n infoText: {\n title: '',\n staNo: \"\",\n matnr: \"\",\n maknx: \"\",\n specs: \"\",\n count: \"\",\n error: \"\",\n barcode: \"\"\n },\n swiperList: [],\n timeOut: false,\n times: 0,\n currDate: '',\n locList: [],\n oldHours: '',\n oldMin: '',\n socketClient: null,\n messages: [],\n version: '',\n socketUrl: '',\n msgType: 'success',\n filename: '',\n dialogContent: '',\n wmsUrl: '',\n wmsPort: ''\n };\n },\n onShow: function onShow() {\n // 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n\n plus.navigator.setFullscreen(true);\n this.getVersion();\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n var WMSURL = uni.getStorageSync('wmsUrl');\n var WMSPORT = uni.getStorageSync('wmsPort');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n that.wmsUrl = WMSURL;\n that.wmsPort = WMSPORT;\n // this.getUrl()\n },\n created: function created() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n var WMSURL = uni.getStorageSync('wmsUrl');\n var WMSPORT = uni.getStorageSync('wmsPort');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n that.wmsUrl = WMSURL;\n that.wmsPort = WMSPORT;\n that.uniWebSocket();\n // that.webSockerInit()\n },\n onLoad: function onLoad() {\n var _this = this;\n setInterval(function () {\n _this.getServerData();\n // this.initlineChart()\n // this.initPieChart()\n // this.getOther()\n // // this.getDate()\n // this.getDate2()\n // this.getInfo()\n // this.getError()\n // this.getInfo2()\n // this.getError2()\n // this.getUrl()\n _this.controller();\n // this.statisticalModel()\n // 娴嬭瘯鐢╘n }, 1000);\n setInterval(function () {\n setTimeout(function () {\n plus.runtime.restart();\n }, 100);\n }, 1000 * 60 * 60 * 4);\n\n // setInterval(()=> {\n // \tsetTimeout(()=>{\n // \t\tvar time = new Date();\n // \t\tvar hh = time.getHours();\n // \t\tvar mm = time.getMinutes();\n // \t\tif(hh > this.oldHours && mm >this.oldMin && this.oldMin - mm < 55){\n // \t\t\tplus.runtime.restart();\n // \t\t}\n // \t\tif(mm >this.oldMin && mm - this.oldMin >2){\n // \t\t\tplus.runtime.restart();\n // \t\t}\n // \t},100)\n\n // },1000*30)\n },\n\n methods: {\n uniWebSocket: function uniWebSocket() {\n var that = this;\n that.commonUrl = that.baseIP + ':' + that.basePort + \"/\" + that.baseUrl;\n that.socketUrl = \"ws://\" + that.commonUrl + \"/led/\" + that.baseLedId;\n // 鍒涘缓WebSocket瀹炰緥\n that.socketClient = new _uniWebSocket.default(that.socketUrl, {\n // 蹇冭烦闂撮殧锛岄粯璁�30绉抃n heartbeatInterval: 30000,\n // 閲嶈繛闂撮殧锛岄粯璁�3绉抃n reconnectInterval: 3000,\n // 鏈�澶ч噸杩炴鏁帮紝-1琛ㄧず鏃犻檺閲嶈繛\n maxReconnectAttempts: -1,\n // 娑堟伅鍥炶皟\n onMessage: function onMessage(res) {\n try {\n var data = JSON.parse(res.data);\n that.showDate(data);\n // 澶勭悊娑堟伅...\n } catch (e) {\n __f__(\"error\", '瑙f瀽娑堟伅澶辫触', e, \" at pages/home/home.vue:509\");\n }\n },\n // 杩炴帴鎵撳紑鍥炶皟\n onOpen: function onOpen(res) {\n that.timeOut = false;\n that.times = 0;\n __f__(\"log\", 'WebSocket宸茶繛鎺�', res, \" at pages/home/home.vue:516\");\n },\n // 杩炴帴閿欒鍥炶皟\n onError: function onError(error) {\n __f__(\"error\", 'WebSocket閿欒', error, \" at pages/home/home.vue:520\");\n },\n // 杩炴帴鍏抽棴鍥炶皟\n onClose: function onClose(res) {\n that.timeOut = true;\n that.times = that.times + 1;\n that.infoType = 0;\n __f__(\"log\", 'WebSocket宸插叧闂�', res, \" at pages/home/home.vue:527\");\n },\n // 閲嶈繛鍥炶皟\n onReconnect: function onReconnect(info) {\n __f__(\"log\", \"WebSocket\\u91CD\\u8FDE(\".concat(info.attempts, \"/\").concat(info.maxAttempts, \")\"), \" at pages/home/home.vue:531\");\n }\n });\n\n // 寤虹珛杩炴帴\n that.socketClient.connect();\n },\n // 鍙戦�佹秷鎭痋n sendMessage: function sendMessage(content) {\n var message = {\n type: 'chat',\n content: content,\n timestamp: Date.now()\n };\n this.socketClient.send(message).then(function () {\n __f__(\"log\", '娑堟伅鍙戦�佹垚鍔�', \" at pages/home/home.vue:548\");\n }).catch(function (error) {\n __f__(\"error\", '娑堟伅鍙戦�佸け璐�', error, \" at pages/home/home.vue:551\");\n });\n },\n webSockerInit: function webSockerInit() {\n var that = this;\n if (that.baseIP === '' && that.basePort === '' && that.baseUrl === '') {\n that.timeOut = true;\n that.times = that.times + 1;\n that.infoType = 0;\n return;\n }\n that.commonUrl = that.baseIP + ':' + that.basePort + \"/\" + that.baseUrl;\n var socketUrl = \"ws://\" + that.commonUrl + \"/led/\" + that.baseLedId;\n // socketUrl = \"ws://10.0.100.150:8080/gtctu/led/113\"\n var ws = new _WebSocketClient.WebSocketClient(socketUrl);\n ws.connect();\n __f__(\"log\", ws, \" at pages/home/home.vue:570\");\n ws.onclose(function () {});\n ws.onmessage(function (msg) {\n that.timeOut = false;\n var data = JSON.parse(msg.data);\n that.showDate(data);\n });\n },\n showDate: function showDate(data) {\n var that = this;\n if (data.type === \"default\") {\n that.chartsData.Pie.series[0].data = data.pie;\n that.baseInfo.stockCount = data.stockCunt;\n that.baseInfo.emptyCount = data.emptyCount;\n that.baseInfo.noneCount = data.noneCount;\n that.baseInfo.used = data.used;\n that.baseInfo.usedPr = data.usedPr;\n 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)];\n that.chartsData.Line.series = data.rows;\n that.calendar = data.year + \"骞碶" + data.month + \"鏈圽" + data.day + \"鏃� \" + data.hour + \":\" + data.minute + \":\" + data.second + \" \" + data.week;\n that.currDate = data.year + \"/\" + data.month + \"/\" + data.day;\n that.locList = data.inventoryData;\n that.oldHours = data.hour;\n that.oldMin = data.minute;\n } else if (data.type === \"error\") {\n if (data.errMsg && data.errMsg !== \"\") {\n var errorInfo = data.errMsg;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n } else if (data.type === \"task\") {\n if (data.taskList && data.taskList !== \"\" && data.taskList.length != 0) {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:鍙湁鎷f枡绛変俊鎭痋n that.infoType = 1;\n if (data.taskList[0].ioType === 101) {\n that.infoText.title = '鍏ㄦ澘鍑哄簱';\n } else if (data.taskList[0].ioType === 103) {\n that.infoText.title = '鎷f枡鍑哄簱';\n } else if (data.taskList[0].ioType === 107) {\n that.infoText.title = '鐩樼偣鍑哄簱';\n } else if (data.taskList[0].ioType === 1) {\n that.infoText.title = '鍏ュ簱';\n } else if (data.taskList[0].ioType === 10) {\n that.infoText.title = '绌烘墭鍏ュ簱';\n } else if (data.taskList[0].ioType === 110) {\n that.infoText.title = '绌烘墭鍑哄簱';\n } else if (data.taskList[0].ioType === 104) {\n that.infoText.title = '骞舵澘鍑哄簱';\n } else if (data.taskList[0].ioType === 54) {\n that.infoText.title = '骞舵澘鍏ュ簱';\n }\n that.infoText.barcode = data.taskList[0].barcode;\n that.infoText.workNo = data.taskList[0].workNo;\n that.infoText.sourceLocNo = data.taskList[0].sourceLocNo;\n that.infoText.staNo = data.taskList[0].staNo;\n that.swiperList = data.taskList[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n }\n },\n statisticalModel: function statisticalModel() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/locDetl/pda/statisticalModel\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n __f__(\"log\", res.data, \" at pages/home/home.vue:673\");\n that.locList = res.data;\n }\n }\n });\n },\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + \"/\" + this.baseUrl;\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 // 鑾峰彇閿欒淇℃伅\n getInfo2: function getInfo2() {\n var that = this;\n var result = _data.default.dataInfo2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:鍙湁鎷f枡绛変俊鎭痋n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '妫�鏂欏嚭搴�';\n } else if (res.data[0].ioType === 107) {\n that.infoText.title = '鐩樼偣鍑哄簱';\n } else if (res.data[0].ioType === 1) {\n that.infoText.title = '鍏ュ簱';\n } else if (res.data[0].ioType === 10) {\n that.infoText.title = '绌烘墭鍏ュ簱';\n } else if (res.data[0].ioType === 110) {\n that.infoText.title = '绌烘墭鍑哄簱';\n }\n that.infoText.barcode = res.data[0].barcode;\n that.infoText.workNo = res.data[0].workNo;\n that.infoText.sourceLocNo = res.data[0].sourceLocNo;\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n },\n getError2: function getError2() {\n var that = this;\n var result = _data.default.dataError2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n },\n getInfo: function getInfo() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n method: \"GET\",\n data: {\n ledId: that.baseLedId\n },\n success: function success(result) {\n that.timeOut = false;\n that.times = 0;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:鍙湁鎷f枡绛変俊鎭痋n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '妫�鏂欏嚭搴�';\n } else if (res.data[0].ioType === 107) {\n that.infoText.title = '鐩樼偣鍑哄簱';\n } else if (res.data[0].ioType === 1) {\n that.infoText.title = '鍏ュ簱';\n } else if (res.data[0].ioType === 10) {\n that.infoText.title = '绌烘墭鍏ュ簱';\n } else if (res.data[0].ioType === 110) {\n that.infoText.title = '绌烘墭鍑哄簱';\n }\n that.infoText.barcode = res.data[0].barcode;\n that.infoText.workNo = res.data[0].workNo;\n that.infoText.sourceLocNo = res.data[0].sourceLocNo;\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n },\n fail: function fail(err) {\n that.timeOut = true;\n that.times = that.times + 1;\n that.infoType = 0;\n }\n });\n },\n getError: function getError() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: \"GET\",\n success: function success(result) {\n that.timeOut = false;\n that.times = 0;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n },\n fail: function fail(err) {\n that.timeOut = true;\n that.infoType = 0;\n }\n });\n },\n // 鎺у埗鍣╘n controller: function controller() {\n var _this2 = this;\n switch (this.infoType) {\n // 鏈変俊鎭� 浣� 娌℃湁閿欒淇℃伅\n case 0:\n if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.errorInfoViewShow && this.infoViewShow) {\n this.errorInfoViewShow = false;\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n case 1:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭痋n case 2:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭痋n case 3:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n }\n },\n // 涓诲睆骞昞n handle: function handle(type) {\n this.homeViewShow = !this.homeViewShow;\n this.modeClass = type;\n },\n // 鎷f枡\n handle1: function handle1(type) {\n this.infoViewShow = !this.infoViewShow;\n this.modeClass = type;\n },\n // 寮傚父\n handle2: function handle2(type) {\n this.errorInfoViewShow = !this.errorInfoViewShow;\n this.modeClass = type;\n },\n // 閰嶇疆\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 鍙栨秷閰嶇疆\n ejectClose: function ejectClose() {\n this.ejectShow = false;\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 uni.setStorageSync('UPROJ', this.baseUrl);\n uni.setStorageSync('wmsUrl', this.wmsUrl);\n uni.setStorageSync('wmsPort', this.wmsPort);\n this.getUrl();\n this.ejectShow = false;\n },\n // 鏃ュ巻 鏈嶅姟鍣╘n getDate2: function getDate2() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/date\",\n method: \"GET\",\n success: function success(result) {\n var res = result.data.data;\n }\n });\n },\n // 鏃ュ巻\n getDate: function getDate() {\n var dt = new Date();\n var year, month, day, hours, minutes, seconds, weeks;\n year = dt.getFullYear();\n month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n weeks = dt.getDay();\n switch (weeks) {\n case 0:\n weeks = \"鏄熸湡鏃";\n break;\n case 1:\n weeks = \"鏄熸湡涓�\";\n break;\n case 2:\n weeks = \"鏄熸湡浜孿";\n break;\n case 3:\n weeks = \"鏄熸湡涓塡";\n break;\n case 4:\n weeks = \"鏄熸湡鍥沑";\n break;\n case 5:\n weeks = \"鏄熸湡浜擻";\n break;\n default:\n weeks = \"鏄熸湡鍏璡";\n }\n this.calendar = year + \"骞碶" + month + \"鏈圽" + day + \"鏃� \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(this.currDate); // 鑾峰彇褰撳墠鏃堕棿\n date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 鎶樼嚎鍥� *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {}\n }\n });\n },\n /*************** 楗煎浘 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.baseInfo.stockCount = res.data.stockCunt;\n that.baseInfo.emptyCount = res.data.emptyCount;\n that.baseInfo.noneCount = res.data.noneCount;\n that.baseInfo.used = res.data.used;\n that.baseInfo.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: that.baseLedId\n },\n success: function success(result) {\n // console.log(result);\n var res = result.data;\n if (res.code === 200) {\n that.baseInfo.xDistance = res.data.xDistance;\n that.baseInfo.yDistance = res.data.yDistance;\n that.baseInfo.xDuration = res.data.xDuration;\n that.baseInfo.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\n });\n },\n //妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊\n getVersion: function getVersion() {\n var that = this;\n uni.getSystemInfo({\n success: function success(res) {\n if (res.platform == \"android\") {\n that.AndroidCheckUpdate();\n }\n // that.AndroidCheckUpdate();\n }\n });\n },\n // 鑾峰彇褰撳墠鐗堟湰鍙穃n AndroidCheckUpdate: function AndroidCheckUpdate() {\n var that = this;\n plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {\n that.version = wgtinfo.version; //瀹㈡埛绔増鏈彿\n });\n\n setTimeout(function () {\n that.getUpdateVersion();\n }, 100);\n },\n // 鏍¢獙鐗堟湰\n getUpdateVersion: function getUpdateVersion() {\n var that = this;\n var type = 1;\n if (that.baseUrl == 'http://undefined:undefined/undefined') {\n return;\n }\n var wms = 'http://' + that.baseIP + ':' + that.wmsPort + \"/\" + that.wmsUrl;\n __f__(\"log\", wms, \" at pages/home/home.vue:1093\");\n var url = wms + '/appVersion/checkUpdate/' + that.version + '/' + type;\n uni.request({\n url: url,\n method: 'GET',\n success: function success(res) {\n __f__(\"log\", res, \" at pages/home/home.vue:1099\");\n var res = res.data;\n if (res.data) {\n that.filename = res.data.path;\n that.dialogContent = '鍙戠幇鏂扮増鏈�:' + res.data.version + ', 鏄惁绔嬪嵆鏇存柊';\n that.$refs.upVersion.open();\n } else {\n uni.showToast({\n title: res.msg,\n icon: \"none\",\n position: 'top'\n });\n }\n }\n });\n },\n dialogConfirm: function dialogConfirm() {\n this.$refs.upVersion.close();\n this.downWgt();\n },\n dialogClose: function dialogClose() {\n this.$refs.upVersion.close();\n },\n downWgt: function downWgt() {\n var that = this;\n var wms = 'http://' + that.baseIP + ':' + that.wmsPort + \"/\" + that.wmsUrl;\n var downloadUrl = wms + \"/appVersion/downloadApp/\" + that.filename;\n uni.showLoading({\n title: '鏇存柊涓�︹��'\n });\n var downloadTask = uni.downloadFile({\n //鎵ц涓嬭浇\n url: downloadUrl,\n //涓嬭浇鍦板潃\n timeout: 1000 * 30,\n //30绉掕秴鏃舵椂闂碶n success: function success(downloadResult) {\n //涓嬭浇鎴愬姛\n __f__(\"log\", downloadResult, \" at pages/home/home.vue:1134\");\n that.showdownLine = false;\n uni.hideLoading();\n if (downloadResult.statusCode == 200) {\n uni.showModal({\n title: '',\n content: '鏇存柊鎴愬姛锛岀‘瀹氱幇鍦ㄩ噸鍚悧锛�',\n confirmText: '閲嶅惎',\n confirmColor: '#EE8F57',\n success: function success(res) {\n if (res.confirm == true) {\n plus.runtime.install(\n //瀹夎\n downloadResult.tempFilePath, {\n force: true\n }, function (res) {\n utils.showToast('鏇存柊鎴愬姛锛岄噸鍚腑');\n plus.runtime.restart();\n });\n }\n }\n });\n } else {\n uni.hideLoading();\n that.showdownLine = false;\n uni.showToast({\n title: '璇峰厛涓婁紶瀹夎鍖�',\n icon: 'error'\n });\n }\n },\n fail: function fail(err) {\n uni.hideLoading();\n that.showdownLine = false;\n that.$u.toast(downloadResult.errMsg);\n },\n complete: function complete(com) {\n __f__(\"log\", com, \" at pages/home/home.vue:1173\");\n }\n });\n\n // 涓嬭浇杩涘害\n downloadTask.onProgressUpdate(function (res) {\n that.downloadNum = res.progress;\n __f__(\"log\", '涓嬭浇杩涘害' + that.downloadNum, \" at pages/home/home.vue:1180\");\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwic2VyaWVzIiwiaG9tZVZpZXdTaG93IiwiaW5mb1ZpZXdTaG93IiwiZXJyb3JJbmZvVmlld1Nob3ciLCJob21lTW9kZSIsImluZm9Nb2RlIiwiZXJyb3JJbmZvTW9kZSIsImJhc2VJbmZvIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZFByIiwidXNlZCIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImR1cmF0aW9uIiwiY2FsZW5kYXIiLCJyaW5nT3B0cyIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwiZm9udFNpemUiLCJoZWlnaHQiLCJzaG93Q2hhcnRzIiwiZWplY3RTaG93IiwiYmFzZUlQIiwiYmFzZVBvcnQiLCJiYXNlTGVkSWQiLCJiYXNlQ3JuSWQiLCJiYXNlVXJsIiwiaW5mbyIsImVycm9yIiwiaW5mb1R5cGUiLCJ0ZXh0IiwiaW5mb1RleHQiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJiYXJjb2RlIiwic3dpcGVyTGlzdCIsInRpbWVPdXQiLCJ0aW1lcyIsImN1cnJEYXRlIiwibG9jTGlzdCIsIm9sZEhvdXJzIiwib2xkTWluIiwic29ja2V0Q2xpZW50IiwibWVzc2FnZXMiLCJ2ZXJzaW9uIiwic29ja2V0VXJsIiwibXNnVHlwZSIsImZpbGVuYW1lIiwiZGlhbG9nQ29udGVudCIsIndtc1VybCIsIndtc1BvcnQiLCJvblNob3ciLCJwbHVzIiwibW91bnRlZCIsInRoYXQiLCJjcmVhdGVkIiwib25Mb2FkIiwic2V0SW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwibWV0aG9kcyIsInVuaVdlYlNvY2tldCIsImhlYXJ0YmVhdEludGVydmFsIiwicmVjb25uZWN0SW50ZXJ2YWwiLCJtYXhSZWNvbm5lY3RBdHRlbXB0cyIsIm9uTWVzc2FnZSIsIm9uT3BlbiIsIm9uRXJyb3IiLCJvbkNsb3NlIiwib25SZWNvbm5lY3QiLCJzZW5kTWVzc2FnZSIsInR5cGUiLCJjb250ZW50IiwidGltZXN0YW1wIiwidGhlbiIsImNhdGNoIiwid2ViU29ja2VySW5pdCIsIndzIiwic2hvd0RhdGUiLCJzdGF0aXN0aWNhbE1vZGVsIiwidW5pIiwidXJsIiwibWV0aG9kIiwic3VjY2VzcyIsImdldFVybCIsImdldFNlcnZlckRhdGEiLCJnZXRJbmZvMiIsImdldEVycm9yMiIsImdldEluZm8iLCJsZWRJZCIsImZhaWwiLCJnZXRFcnJvciIsImNvbnRyb2xsZXIiLCJoYW5kbGUiLCJoYW5kbGUxIiwiaGFuZGxlMiIsImVqZWN0ZWQiLCJlamVjdENsb3NlIiwiZWplY3RDb25maXJtIiwiZ2V0RGF0ZTIiLCJnZXREYXRlIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyIsIndlZWtzIiwiZ2V0RGF0ZUZvcm1hdCIsImRhdGUiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0T3RoZXIiLCJjcm5JZCIsImdldFZlcnNpb24iLCJBbmRyb2lkQ2hlY2tVcGRhdGUiLCJnZXRVcGRhdGVWZXJzaW9uIiwiaWNvbiIsInBvc2l0aW9uIiwiZGlhbG9nQ29uZmlybSIsImRpYWxvZ0Nsb3NlIiwiZG93bldndCIsInRpbWVvdXQiLCJjb25maXJtVGV4dCIsImNvbmZpcm1Db2xvciIsImRvd25sb2FkUmVzdWx0IiwiZm9yY2UiLCJ1dGlscyIsImNvbXBsZXRlIiwiZG93bmxvYWRUYXNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBK1RBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBVDtRQUNBVTtNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBRUE7RUFDQTtFQUNBQztJQUNBOztJQUVBQztJQUVBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FDO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQUQ7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQTtFQUNBO0VBQ0FFO0lBQUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBRUE7SUFFQUE7TUFDQUM7UUFDQU47TUFDQTtJQUVBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7SUFFQTtFQUNBOztFQUNBTztJQUNBQztNQUNBO01BQ0FOO01BQ0FBO01BQ0E7TUFDQUE7UUFDQTtRQUNBTztRQUNBO1FBQ0FDO1FBQ0E7UUFDQUM7UUFDQTtRQUNBQztVQUNBO1lBQ0E7WUFDQVY7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQVc7VUFDQVg7VUFDQUE7VUFDQTtRQUNBO1FBQ0E7UUFDQVk7VUFDQTtRQUNBO1FBQ0E7UUFDQUM7VUFDQWI7VUFDQUE7VUFDQUE7VUFDQTtRQUNBO1FBQ0E7UUFDQWM7VUFDQTtRQUNBO01BQ0E7O01BRUE7TUFDQWQ7SUFDQTtJQUNBO0lBQ0FlO01BQ0E7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUVBLGdDQUNBQztRQUNBO01BQ0EsR0FDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUVBO1FBQ0FyQjtRQUNBQTtRQUNBQTtRQUNBO01BQ0E7TUFFQUE7TUFDQTtNQUNBO01BQ0E7TUFDQXNCO01BRUE7TUFFQUEsd0JBRUE7TUFFQUE7UUFDQXRCO1FBQ0E7UUFDQUE7TUFFQTtJQUVBO0lBQ0F1QjtNQUNBO01BQ0E7UUFDQXZCO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBRUFBLG1DQUNBQSxrR0FDQUEsZ0dBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO1FBQ0FBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7WUFDQUE7WUFDQUE7WUFDQTtZQUNBQTtZQUNBO1VBQ0E7VUFDQUE7VUFDQUE7VUFDQTtVQUNBQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1VBQ0FBO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1VBQ0E7VUFDQUE7VUFDQTtZQUNBQTtVQUNBO1lBQ0FBO1VBQ0E7WUFDQUE7VUFDQTtZQUNBQTtVQUNBO1lBQ0FBO1VBQ0E7WUFDQUE7VUFDQTtZQUNBQTtVQUNBO1lBQ0FBO1VBQ0E7VUFDQUE7VUFDQUE7VUFDQUE7VUFDQUE7VUFDQUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0F3QjtNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBO1lBQ0E1QjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E2QjtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQS9CO1FBQ0E7VUFDQUE7UUFDQTtVQUNBQTtRQUNBO1VBQ0FBO1FBQ0E7VUFDQUE7UUFDQTtVQUNBQTtRQUNBO1VBQ0FBO1FBQ0E7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBZ0M7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQWhDO1VBQ0FBO1VBQ0E7VUFDQUE7VUFDQTtRQUNBO1FBQ0FBO1FBQ0FBO1FBQ0E7UUFDQUE7TUFDQTtRQUNBO1VBQ0E7UUFDQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQWlDO01BQ0E7TUFDQVI7UUFDQUM7UUFDQUM7UUFDQTNGO1VBQUFrRztRQUFBO1FBQ0FOO1VBQ0E1QjtVQUNBQTtVQUNBO1VBQ0E7WUFDQTtjQUNBO1lBQ0E7WUFDQTtZQUNBQTtZQUNBO2NBQ0FBO1lBQ0E7Y0FDQUE7WUFDQTtjQUNBQTtZQUNBO2NBQ0FBO1lBQ0E7Y0FDQUE7WUFDQTtjQUNBQTtZQUNBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtZQUNBO2NBQ0E7WUFDQTtZQUNBQTtVQUNBO1FBQ0E7UUFDQW1DO1VBQ0FuQztVQUNBQTtVQUNBQTtRQUNBO01BQ0E7SUFFQTtJQUNBb0M7TUFDQTtNQUNBWDtRQUNBQztRQUNBMUY7VUFBQWtHO1FBQUE7UUFDQVA7UUFDQUM7VUFDQTVCO1VBQ0FBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQUE7Y0FDQUE7Y0FDQTtjQUNBQTtjQUNBO1lBQ0E7WUFDQUE7WUFDQUE7WUFDQTtZQUNBQTtVQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0FBO1VBQ0E7UUFDQTtRQUNBbUM7VUFDQW5DO1VBQ0FBO1FBQ0E7TUFDQTtJQUVBO0lBQ0E7SUFDQXFDO01BQUE7TUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQWpDO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtVQUVBO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7VUFDQTtNQUFBO0lBSUE7SUFDQTtJQUNBa0M7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQWxCO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQW1CO01BQ0E7TUFDQW5CO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0E7UUFFQTtNQUNBO0lBQ0E7SUFFQTtJQUNBaUI7TUFDQTtNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0E7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtNQUFBO01BRUE7SUFDQTtJQUNBQztNQUNBO01BQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBLDJIQUNBQztNQUNBO01BQ0E5QjtRQUNBQztRQUNBQztRQUNBQztVQUNBO1VBQ0EsdUJBRUE7UUFDQTtNQUNBO0lBQ0E7SUFDQSwwSEFDQTRCO01BQ0E7TUFDQS9CO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBNUI7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBeUQ7TUFDQTtNQUNBaEM7UUFDQUM7UUFDQTFGO1VBQ0EwSDtVQUNBeEI7UUFDQTtRQUNBTjtVQUNBO1VBQ0E7VUFDQTtZQUNBNUI7WUFDQUE7WUFDQUE7WUFDQUE7VUFDQSw4QkFFQSxRQUVBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTJEO01BQ0E7TUFDQWxDO1FBQ0FHO1VBQ0E7WUFDQTVCO1VBQ0E7VUFDQTtRQUVBO01BQ0E7SUFDQTtJQUNBO0lBQ0E0RDtNQUNBO01BQ0E5RDtRQUNBRTtNQUNBOztNQUNBSTtRQUNBSjtNQUNBO0lBQ0E7SUFDQTtJQUNBNkQ7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0FwQztRQUNBQztRQUNBQztRQUNBQztVQUNBO1VBQ0E7VUFDQTtZQUNBNUI7WUFDQUE7WUFDQUE7VUFDQTtZQUNBeUI7Y0FDQW5EO2NBQ0F3RjtjQUNBQztZQUNBO1VBQ0E7UUFFQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0F6QztRQUNBbkQ7TUFDQTtNQUNBO1FBQUE7UUFDQW9EO1FBQUE7UUFDQXlDO1FBQUE7UUFDQXZDO1VBQUE7VUFDQTtVQUNBNUI7VUFDQXlCO1VBQ0E7WUFDQUE7Y0FDQW5EO2NBQ0EyQztjQUNBbUQ7Y0FDQUM7Y0FDQXpDO2dCQUNBO2tCQUNBOUI7a0JBQUE7a0JBQ0F3RTtvQkFDQUM7a0JBQ0EsR0FDQTtvQkFDQUM7b0JBQ0ExRTtrQkFDQSxFQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0EyQjtZQUNBekI7WUFDQXlCO2NBQ0FuRDtjQUNBd0Y7WUFDQTtVQUNBO1FBQ0E7UUFDQTNCO1VBQ0FWO1VBQ0F6QjtVQUNBQTtRQUNBO1FBQ0F5RTtVQUVBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBQztRQUNBMUU7UUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUVBO0FBQUEsMkIiLCJmaWxlIjoiMTE3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImhvbWVNb2RlXCIgOnNob3c9XCJob21lVmlld1Nob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHRcdDx0ZXh0PuaZuuiDveWkp+Wxj+aYvuekuuezu+e7nzwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDml6XljoYgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3tjYWxlbmRhcn19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidmVyc2lvblwiPlY6e3t2ZXJzaW9ufX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOS4u+inhuWbviAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5pm66IO95aSn5bGP5pi+56S657O757ufPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5JbnRlbGxpZ2VudCBMYXJnZVNjcmVlbiBEaXNwbGF5IFN5c3RlbTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7ku5PlupPmlbDmja48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPndhcmVob3VzZSBkYXRhPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltZy1ib3hcIj5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3dpcGVyIOS4gOS6m+ivtOaYjlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNpcmN1bGFyIOaYr+WQpumHh+eUqOihlOaOpea7keWKqO+8jOWNs+aSreaUvuWIsOacq+WwvuWQjumHjeaWsOWbnuWIsOW8gOWktFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZlcnRpY2FsIOa7keWKqOaWueWQkeaYr+WQpuS4uue6teWQkSBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5LW11bHRpcGxlLWl0ZW1zIOWQjOaXtuaYvuekuueahOa7keWdl+aVsOmHjyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3dpcGVyIGNsYXNzPVwic3dpcGVyLWJvZHktbWFpblwiIHZlcnRpY2FsPVwidHJ1ZVwiIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXktbXVsdGlwbGUtaXRlbXM9XCI1XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjaXJjdWxhcj1cInRydWVcIiA6YXV0b3BsYXk9XCJ0cnVlXCIgOmludGVydmFsPVwiMzAwMFwiIDpkdXJhdGlvbj1cIjIwMDBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzd2lwZXItaXRlbSBjbGFzcz1cInN3aXBlci1pdGVtXCIgdi1mb3I9XCIoaXRlbSxpKSBpbiBsb2NMaXN0XCIgOmtleT1cImlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+e3tpKzF9fSAvIHt7c3dpcGVyTGlzdC5sZW5ndGh9fTwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMzAlO1wiPuaWmeWPtzoge3tpdGVtLm1hdG5yfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA1MCU7IGZvbnQtc2l6ZTogMXZ3O1wiPueJqeaWmeeggToge3tpdGVtLm1hdG5yfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAxdnc7XCI+5pWw6YePOiB7e2l0ZW0ubWF0bnJDb3VudH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zd2lwZXItaXRlbT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3N3aXBlcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3puS+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPkvY3kvb/nlKjnjoc8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5FUVVJUE1FTlQgVVNBR0UgVEhJUyBNT05USDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlj7PkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g55m+5YiG5q+UIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtZW5kO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO3JpZ2h0OiAxdnc7dGV4dC1hbGlnbjogcmlnaHQ7XCIgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPnt7YmFzZUluZm8udXNlZFByfX0lPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPuWQjOavlOS4iuaciCArIDUlPC90ZXh0PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cIndpZHRoOiAxMDAlO2FsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O3Bvc2l0aW9uOiByZWxhdGl2ZTtmb250LXNpemU6IDF2d1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g6L+b5bqm5p2hIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO3Bvc2l0aW9uOiByZWxhdGl2ZTttYXJnaW4tdG9wOiA1JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicHJvZ3Jlc3NCYXJcIiBzdHlsZT1cIndpZHRoOiA4MCU7aGVpZ2h0OiAydnc7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicHJvZ3Jlc3NcIiA6c3R5bGU9XCInd2lkdGg6JysgYmFzZUluZm8udXNlZFByICsgJyUnXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwO3JpZ2h0OiAwO2ZvbnQtc2l6ZTogMi41dnc7Y29sb3I6ICNGRjU3MjI7O1wiPnt7YmFzZUluZm8udXNlZH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM1JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDmipjnur/lm74gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lhaXlh7rlupPnu5/orqE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+T1JERVIgU1RBVElTVElDUzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPs+S+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOeZvuWIhuavlCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO3JpZ2h0OiAxdnc7dGV4dC1hbGlnbjogcmlnaHQ7XCIgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPjMxPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+5LuK5pel6K6i5Y2V5pWwPC90ZXh0PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8cWl1bi1kYXRhLWNoYXJ0cyB0eXBlPVwibGluZVwiIDpjaGFydERhdGE9XCJjaGFydHNEYXRhTGluZTFcIiA6ZWNoYXJ0c0g1PVwidHJ1ZVwiIDplY2hhcnRzQXBwPVwidHJ1ZVwiLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSBudWxsIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDIlO1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogNDMlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5bqT5a2Y57G75Z6LPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPklOQ09NRSBEQVRFPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g55m+5YiG5q+UIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuS7iuWkqTwvdGV4dD4gXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5Ub2RheTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3piAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94LXJpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8cWl1bi1kYXRhLWNoYXJ0cyB0eXBlPVwicmluZ1wiIDpvcHRzPVwie2xlZ2VuZDp7cG9zaXRpb246J2JvdHRvbSd9fVwiIDplb3B0cz1cInJpbmdPcHRzXCIgOmNoYXJ0RGF0YT1cImNoYXJ0c0RhdGFQaWUyXCIgOmVjaGFydHNINT1cInRydWVcIiA6ZWNoYXJ0c0FwcD1cInRydWVcIi8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlj7MgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3cgc3ViLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZzEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztcIj7lnKjlupM8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztmb250LXNpemU6IDJ2dztcIj57e2Jhc2VJbmZvLnN0b2NrQ291bnR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBzdWItaW5mb1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMnZoO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9mMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O1wiPuepuuW6kzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O2ZvbnQtc2l6ZTogMnZ3O1wiPnt7YmFzZUluZm8uZW1wdHlDb3VudH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93IHN1Yi1pbmZvXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAydmg7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2UxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7XCI+6ZSB5a6aPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7Zm9udC1zaXplOiAydnc7XCI+e3tiYXNlSW5mby5ub25lQ291bnR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDE4JTtkaXNwbGF5OiBmbGV4O2p1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJmb250LXNpemU6IDR2aFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdOiHquWKqOS7k+W6k1dDU+ebkeaOp+W5s+WPsFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogNTAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzdHlsZT1cImhlaWdodDogMTAwJTtcIiBzcmM9XCIuLi8uLi9zdGF0aWMvaW1nL2xvZ28tYmFpLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlhajmnb8v5ouj5paZ5L+h5oGvIC0tPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJpbmZvTW9kZVwiIDpzaG93PVwiaW5mb1ZpZXdTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaG9tZS12aWV3XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0XHQ8dGV4dD57e2luZm9UZXh0LnRpdGxlfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7Y2FsZW5kYXJ9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li75L2TIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1tYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tYm94XCI+XHJcblx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIOaWh+acrOWuueWZqCAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSBoZWFkIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzd2lwZXItaGVhZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+5omY55uY56CBOiB7e2luZm9UZXh0LmJhcmNvZGV9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPuW3peS9nOWPtzoge3tpbmZvVGV4dC53b3JrTm99fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzAlO1wiPua6kOW6k+S9jToge3tpbmZvVGV4dC5zb3VyY2VMb2NOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAyMCU7XCI+55uu5qCH56uZOiB7e2luZm9UZXh0LnN0YU5vfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAlO1wiPuaVsOmHjzwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIGJvZHkgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN3aXBlci1ib2R5XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3dpcGVyIOS4gOS6m+ivtOaYjlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaXJjdWxhciDmmK/lkKbph4fnlKjooZTmjqXmu5HliqjvvIzljbPmkq3mlL7liLDmnKvlsL7lkI7ph43mlrDlm57liLDlvIDlpLRcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmVydGljYWwg5ruR5Yqo5pa55ZCR5piv5ZCm5Li657q15ZCRIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5LW11bHRpcGxlLWl0ZW1zIOWQjOaXtuaYvuekuueahOa7keWdl+aVsOmHjyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHN3aXBlciBjbGFzcz1cInN3aXBlci1ib2R5LW1haW5cIiB2ZXJ0aWNhbD1cInRydWVcIiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaXJjdWxhcj1cInRydWVcIiA6YXV0b3BsYXk9XCJ0cnVlXCIgOmludGVydmFsPVwiMzAwMFwiIDpkdXJhdGlvbj1cIjIwMDBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3dpcGVyLWl0ZW0gY2xhc3M9XCJzd2lwZXItaXRlbVwiIHYtZm9yPVwiKGl0ZW0saSkgaW4gc3dpcGVyTGlzdFwiIDprZXk9XCJpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+e3tpKzF9fSAvIHt7c3dpcGVyTGlzdC5sZW5ndGh9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMzAlO1wiPuaWmeWPtzoge3tpdGVtLm1hdG5yfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7nianmlpnnvJbnoIE6IHt7aXRlbS5tYXRucn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7lkI3np7A6IHt7aXRlbS5tYWtueH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAzMyU7IGZvbnQtc2l6ZTogM3Z3O1wiPueUn+S6p+aXpeacnzoge3tpdGVtLm1hbnVEYXRlfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+6KeE5qC8OiB7e2l0ZW0uc3BlY3N9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+5om55qyhOiB7e2l0ZW0uYmF0Y2h9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+6ZSA5ZSu5Y2V5Y+3OiB7e2l0ZW0ub3JkZXJOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7lrqLmiLflkI3np7A6IHt7aXRlbS5jdXN0b21lcn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7mlbDph486IHt7aXRlbS5jb3VudH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3N3aXBlci1pdGVtPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3N3aXBlcj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlvILluLjkv6Hmga8gLS0+XHJcblx0XHQ8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImVycm9ySW5mb01vZGVcIiA6c2hvdz1cImVycm9ySW5mb1ZpZXdTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZXJyb3ItaW5mby12aWV3XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0XHQ8dGV4dD57e2luZm9UZXh0LnRpdGxlfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7Y2FsZW5kYXJ9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li75L2TIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1tYWluXCIgPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLWJveFwiPlxyXG5cdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLWJveC10ZXh0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sIGluZm8tYm94LXRleHQtaXRlbVwiPnt7aW5mb1RleHQuZXJyb3J9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0XHJcblx0XHQ8IS0tIOiHquWumuS5ieW8ueWHuuWxgiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtbWFza1wiIHYtc2hvdz1cImVqZWN0U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0XCI+XHJcblx0XHRcdFx0PCEtLSDlvLnlh7p0aXRsZSAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LXRpdGxlXCI+5L+u5pS5IC8g6YWN572uPC92aWV3PlxyXG5cdFx0XHRcdDwhLS0gaW5wdXQgLS0+XHJcblx0XHRcdFx0PHNjcm9sbC12aWV3IHNjcm9sbC15IGNsYXNzPVwiZWplY3QtaW5wdXRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5pcO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlSVBcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPldjc3BvcnTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZVBvcnRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3Plx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+V2NzVXJs77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VVcmxcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPldtc3BvcnTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwid21zUG9ydFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+V21zVXJs77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIndtc1VybFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+bGVkSWTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUxlZElkXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cdFx0XHRcdDwhLS0gYnV0dG9uIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtYnV0dG9uXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1pdGVtXCIgQGNsaWNrPVwiZWplY3RDbG9zZVwiPuWPliDmtog8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1pdGVtXCIgQGNsaWNrPVwiZWplY3RDb25maXJtXCI+56GuIOiupDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3PlxyXG5cdFx0XHQ8IS0tIOaPkOekuueql+ekuuS+iyAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJ1cFZlcnNpb25cIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgOnR5cGU9XCJtc2dUeXBlXCIgdGl0bGU9XCLpgJrnn6VcIiA6Y29udGVudD1cImRpYWxvZ0NvbnRlbnRcIiBAY29uZmlybT1cImRpYWxvZ0NvbmZpcm1cIlxyXG5cdFx0XHRcdFx0QGNsb3NlPVwiZGlhbG9nQ2xvc2VcIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgc3R5bGU9XCJjb2xvcjogI0ZGRjtwb3NpdGlvbjogZml4ZWQ7Ym90dG9tOiAxMHB4O2xlZnQ6IDEwcHg7XCIgdi1zaG93PVwidGltZU91dFwiPlxyXG5cdFx0XHTov57mjqXotoXml7bvvIzmraPlnKjph43mlrDlu7rnq4vpk77mjqU6OiB7e3RpbWVzfX0gXHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48IS0tIHtcIm1zZ1wiOlwi5pON5L2c5oiQ5YqfXCIsXCJjb2RlXCI6MjAwLFwiZGF0YVwiOlt7XCJ0aXRsZVwiOlwi5YWo5p2/5Ye65bqTXCIsXCJ3b3JrTm9cIjo3NDYwLFwic3RhTm9cIjoxMTAsXCJzb3VyY2VTdGFOb1wiOm51bGwsXCJsb2NOb1wiOm51bGwsXCJzb3VyY2VMb2NOb1wiOlwiMDgwNzEwMlwiLFwibWF0RHRvc1wiOlt7XCJtYXROb1wiOlwiNTA0NjA4MzRcIixcIm1ha254XCI6XCIyMDB4NjDmoYzpnaJcIixcImNvdW50XCI6MjYuMH1dLFwiZW1wdHlNa1wiOmZhbHNlLFwiaW9UeXBlXCI6MTAxfV19IC0tPlxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcclxuXHRpbXBvcnQge1dlYlNvY2tldENsaWVudH0gZnJvbSBcIkAvc3RhdGljL2pzL1dlYlNvY2tldENsaWVudFwiXHRcclxuXHRpbXBvcnQgV2ViU29ja2V0VXRpbCBmcm9tICcuL3VuaVdlYlNvY2tldCc7XHJcblx0bGV0IHNvY2tldDtcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHNlcmllczogW10sXHJcblx0XHRcdFx0aG9tZVZpZXdTaG93OiB0cnVlLFxyXG5cdFx0XHRcdGluZm9WaWV3U2hvdzogZmFsc2VcdCxcclxuXHRcdFx0XHRlcnJvckluZm9WaWV3U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0aG9tZU1vZGU6IFtdLFxyXG5cdFx0XHRcdGluZm9Nb2RlOiBbXSxcclxuXHRcdFx0XHRlcnJvckluZm9Nb2RlOiBbXSxcclxuXHRcdFx0XHRiYXNlSW5mbzoge1xyXG5cdFx0XHRcdFx0eERpc3RhbmNlOiAxLFxyXG5cdFx0XHRcdFx0eURpc3RhbmNlOiAyLFxyXG5cdFx0XHRcdFx0eER1cmF0aW9uOiAzLFxyXG5cdFx0XHRcdFx0eUR1cmF0aW9uOiA0LFxyXG5cdFx0XHRcdFx0dXNlZFByOiA1MCxcclxuXHRcdFx0XHRcdHVzZWQ6IDM1MzcsXHJcblx0XHRcdFx0XHRzdG9ja0NvdW50OiAnJyxcclxuXHRcdFx0XHRcdGVtcHR5Q291bnQ6ICcnLFxyXG5cdFx0XHRcdFx0bm9uZUNvdW50OiAnJyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcclxuXHRcdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcclxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcIlBpZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XHJcblx0XHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHRcdH1dXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZHVyYXRpb246IDEwMDAsXHJcblx0XHRcdFx0Y2FsZW5kYXI6ICcnLFxyXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGFMaW5lMToge30sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YVBpZTI6IHt9LFxyXG5cdFx0XHRcdGZvbnRTaXplOiAnJyxcclxuXHRcdFx0XHRoZWlnaHQ6ICcnLFxyXG5cdFx0XHRcdHNob3dDaGFydHM6IGZhbHNlLFxyXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0YmFzZUlQOiAnJyxcclxuXHRcdFx0XHRiYXNlUG9ydDogJycsXHJcblx0XHRcdFx0YmFzZUxlZElkOiAnJyxcclxuXHRcdFx0XHRiYXNlQ3JuSWQ6ICcnLFxyXG5cdFx0XHRcdGJhc2VVcmw6ICcnLFxyXG5cdFx0XHRcdGluZm86IG51bGwsXHJcblx0XHRcdFx0ZXJyb3I6IG51bGwsXHJcblx0XHRcdFx0aW5mb1R5cGU6IDAsXHJcblx0XHRcdFx0dGV4dDogJycsXHJcblx0XHRcdFx0aW5mb1RleHQ6IHtcclxuXHRcdFx0XHRcdHRpdGxlOiAnJyxcclxuXHRcdFx0XHRcdHN0YU5vOiBcIlwiLFxyXG5cdFx0XHRcdFx0bWF0bnI6IFwiXCIsXHJcblx0XHRcdFx0XHRtYWtueDogXCJcIixcclxuXHRcdFx0XHRcdHNwZWNzOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y291bnQ6IFwiXCIsXHJcblx0XHRcdFx0XHRlcnJvcjogXCJcIixcclxuXHRcdFx0XHRcdGJhcmNvZGU6IFwiXCJcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHN3aXBlckxpc3Q6IFtdLFxyXG5cdFx0XHRcdHRpbWVPdXQ6IGZhbHNlLFxyXG5cdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdGN1cnJEYXRlOiAnJyxcclxuXHRcdFx0XHRsb2NMaXN0OltdLFx0XHJcblx0XHRcdFx0b2xkSG91cnM6JycsXHJcblx0XHRcdFx0b2xkTWluOicnLFxyXG5cdFx0XHRcdHNvY2tldENsaWVudDogbnVsbCxcclxuXHRcdFx0XHRtZXNzYWdlczogW10sXHJcblx0XHRcdFx0dmVyc2lvbjonJyxcclxuXHRcdFx0XHRzb2NrZXRVcmw6JycsXHJcblx0XHRcdFx0bXNnVHlwZTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdGZpbGVuYW1lOiAnJyxcclxuXHRcdFx0XHRkaWFsb2dDb250ZW50OiAnJyxcclxuXHRcdFx0XHR3bXNVcmw6JycsXHJcblx0XHRcdFx0d21zUG9ydDonJ1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHQvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0cGx1cy5uYXZpZ2F0b3Iuc2V0RnVsbHNjcmVlbih0cnVlKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5nZXRWZXJzaW9uKClcclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcclxuXHRcdFx0Y29uc3QgQmFzZUxlZElkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnKTtcclxuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XHJcblx0XHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XHJcblx0XHRcdGNvbnN0IFBST0ogPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ1VQUk9KJyk7XHJcblx0XHRcdGNvbnN0IFdNU1VSTCA9IHVuaS5nZXRTdG9yYWdlU3luYygnd21zVXJsJyk7XHJcblx0XHRcdGNvbnN0IFdNU1BPUlQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dtc1BvcnQnKTtcclxuXHRcdFx0dGhhdC5iYXNlVXJsID0gUFJPSlxyXG5cdFx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxyXG5cdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG5cdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcclxuXHRcdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcclxuXHRcdFx0dGhhdC53bXNVcmwgPSBXTVNVUkxcclxuXHRcdFx0dGhhdC53bXNQb3J0ID0gV01TUE9SVFxyXG5cdFx0XHQvLyB0aGlzLmdldFVybCgpXHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XHJcblx0XHRcdGNvbnN0IEJhc2VMZWRJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUxlZElkJyk7XHJcblx0XHRcdGNvbnN0IEJhc2VQb3J0ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcpO1xyXG5cdFx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xyXG5cdFx0XHRjb25zdCBQUk9KID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdVUFJPSicpO1xyXG5cdFx0XHRjb25zdCBXTVNVUkwgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dtc1VybCcpO1xyXG5cdFx0XHRjb25zdCBXTVNQT1JUID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3bXNQb3J0Jyk7XHJcblx0XHRcdHRoYXQuYmFzZVVybCA9IFBST0pcclxuXHRcdFx0dGhhdC5iYXNlSVAgPSBCYXNlSVBcclxuXHRcdFx0dGhhdC5iYXNlTGVkSWQgPSBCYXNlTGVkSWRcclxuXHRcdFx0dGhhdC5iYXNlUG9ydCA9IEJhc2VQb3J0XHJcblx0XHRcdHRoYXQuYmFzZUNybklkID0gQmFzZUNybklkXHJcblx0XHRcdHRoYXQud21zVXJsID0gV01TVVJMXHJcblx0XHRcdHRoYXQud21zUG9ydCA9IFdNU1BPUlRcclxuXHRcdFx0dGhhdC51bmlXZWJTb2NrZXQoKTtcclxuXHRcdFx0Ly8gdGhhdC53ZWJTb2NrZXJJbml0KClcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHRcdFx0XHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKClcclxuXHRcdFx0XHQvLyB0aGlzLmluaXRsaW5lQ2hhcnQoKVxyXG5cdFx0XHRcdC8vIHRoaXMuaW5pdFBpZUNoYXJ0KClcclxuXHRcdFx0XHQvLyB0aGlzLmdldE90aGVyKClcclxuXHRcdFx0XHQvLyAvLyB0aGlzLmdldERhdGUoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0RGF0ZTIoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0SW5mbygpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFcnJvcigpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRJbmZvMigpXHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFcnJvcjIoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0VXJsKClcclxuXHRcdFx0XHR0aGlzLmNvbnRyb2xsZXIoKVxyXG5cdFx0XHRcdC8vIHRoaXMuc3RhdGlzdGljYWxNb2RlbCgpXHJcblx0XHRcdFx0Ly8g5rWL6K+V55SoXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHJcblx0XHRcdHNldEludGVydmFsKCgpPT4ge1x0XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0cGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0XHR9LDEwMClcclxuXHRcdFx0XHRcclxuXHRcdFx0fSwxMDAwKjYwKjYwKjQpXHJcblx0XHRcdFxyXG5cdFx0XHQvLyBzZXRJbnRlcnZhbCgoKT0+IHtcclxuXHRcdFx0Ly8gXHRzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdC8vIFx0XHR2YXIgdGltZSA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdC8vIFx0XHR2YXIgaGggPSB0aW1lLmdldEhvdXJzKCk7XHJcblx0XHRcdC8vIFx0XHR2YXIgbW0gPSB0aW1lLmdldE1pbnV0ZXMoKTtcclxuXHRcdFx0Ly8gXHRcdGlmKGhoID4gdGhpcy5vbGRIb3VycyAmJiBtbSA+dGhpcy5vbGRNaW4gJiYgdGhpcy5vbGRNaW4gLSBtbSA8IDU1KXtcclxuXHRcdFx0Ly8gXHRcdFx0cGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0Ly8gXHRcdH1cclxuXHRcdFx0Ly8gXHRcdGlmKG1tID50aGlzLm9sZE1pbiAmJiBtbSAtIHRoaXMub2xkTWluID4yKXtcclxuXHRcdFx0Ly8gXHRcdFx0cGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0Ly8gXHRcdH1cclxuXHRcdFx0Ly8gXHR9LDEwMClcclxuXHRcdFx0XHRcclxuXHRcdFx0Ly8gfSwxMDAwKjMwKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0dW5pV2ViU29ja2V0KCl7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHRoYXQuY29tbW9uVXJsID0gdGhhdC5iYXNlSVAgKyAnOicgK3RoYXQuYmFzZVBvcnQgKyBcIi9cIiArdGhhdC5iYXNlVXJsXHJcblx0XHRcdFx0dGhhdC5zb2NrZXRVcmwgPSBcIndzOi8vXCIrdGhhdC5jb21tb25VcmwrXCIvbGVkL1wiK3RoYXQuYmFzZUxlZElkXHJcblx0XHRcdFx0Ly8g5Yib5bu6V2ViU29ja2V05a6e5L6LXHJcblx0XHRcdFx0ICAgIHRoYXQuc29ja2V0Q2xpZW50ID0gbmV3IFdlYlNvY2tldFV0aWwodGhhdC5zb2NrZXRVcmwsIHtcclxuXHRcdFx0XHQgICAgICAvLyDlv4Pot7Ppl7TpmpTvvIzpu5jorqQzMOenklxyXG5cdFx0XHRcdCAgICAgIGhlYXJ0YmVhdEludGVydmFsOiAzMDAwMCxcclxuXHRcdFx0XHQgICAgICAvLyDph43ov57pl7TpmpTvvIzpu5jorqQz56eSXHJcblx0XHRcdFx0ICAgICAgcmVjb25uZWN0SW50ZXJ2YWw6IDMwMDAsXHJcblx0XHRcdFx0ICAgICAgLy8g5pyA5aSn6YeN6L+e5qyh5pWw77yMLTHooajnpLrml6DpmZDph43ov55cclxuXHRcdFx0XHQgICAgICBtYXhSZWNvbm5lY3RBdHRlbXB0czogLTEsXHRcdFx0XHQgICAgICBcclxuXHRcdFx0XHQgICAgICAvLyDmtojmga/lm57osINcclxuXHRcdFx0XHQgICAgICBvbk1lc3NhZ2U6IChyZXMpID0+IHtcclxuXHRcdFx0XHQgICAgICAgIHRyeSB7XHJcblx0XHRcdFx0ICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJlcy5kYXRhKTtcdFx0XHRcdCAgICAgICAgICBcclxuXHRcdFx0XHQgICAgICAgICAgdGhhdC5zaG93RGF0ZShkYXRhKVxyXG5cdFx0XHRcdCAgICAgICAgICAvLyDlpITnkIbmtojmga8uLi5cclxuXHRcdFx0XHQgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHQgICAgICAgICAgY29uc29sZS5lcnJvcign6Kej5p6Q5raI5oGv5aSx6LSlJywgZSk7XHJcblx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0ICAgICAgfSxcclxuXHRcdFx0XHQgICAgICAvLyDov57mjqXmiZPlvIDlm57osINcclxuXHRcdFx0XHQgICAgICBvbk9wZW46IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0ICB0aGF0LnRpbWVPdXQgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHQgIHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0ICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V05bey6L+e5o6lJywgcmVzKTtcdFxyXG5cdFx0XHRcdCAgICAgIH0sXHJcblx0XHRcdFx0ICAgICAgLy8g6L+e5o6l6ZSZ6K+v5Zue6LCDXHJcblx0XHRcdFx0ICAgICAgb25FcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0ICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXTplJnor68nLCBlcnJvcik7XHJcblx0XHRcdFx0ICAgICAgfSxcclxuXHRcdFx0XHQgICAgICAvLyDov57mjqXlhbPpl63lm57osINcclxuXHRcdFx0XHQgICAgICBvbkNsb3NlOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdCAgdGhhdC50aW1lT3V0ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHQgIHRoYXQudGltZXMgPSB0aGF0LnRpbWVzKzFcclxuXHRcdFx0XHRcdFx0ICB0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdCAgICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOW3suWFs+mXrScsIHJlcyk7XHJcblx0XHRcdFx0ICAgICAgfSxcclxuXHRcdFx0XHQgICAgICAvLyDph43ov57lm57osINcclxuXHRcdFx0XHQgICAgICBvblJlY29ubmVjdDogKGluZm8pID0+IHtcclxuXHRcdFx0XHQgICAgICAgIGNvbnNvbGUubG9nKGBXZWJTb2NrZXTph43ov54oJHtpbmZvLmF0dGVtcHRzfS8ke2luZm8ubWF4QXR0ZW1wdHN9KWApO1xyXG5cdFx0XHRcdCAgICAgIH1cclxuXHRcdFx0XHQgICAgfSk7XHJcblx0XHRcdFx0ICAgIFxyXG5cdFx0XHRcdCAgICAvLyDlu7rnq4vov57mjqVcclxuXHRcdFx0XHQgICAgdGhhdC5zb2NrZXRDbGllbnQuY29ubmVjdCgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlj5HpgIHmtojmga9cclxuXHRcdFx0ICAgIHNlbmRNZXNzYWdlKGNvbnRlbnQpIHtcclxuXHRcdFx0ICAgICAgY29uc3QgbWVzc2FnZSA9IHtcclxuXHRcdFx0ICAgICAgICB0eXBlOiAnY2hhdCcsXHJcblx0XHRcdCAgICAgICAgY29udGVudDogY29udGVudCxcclxuXHRcdFx0ICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KClcclxuXHRcdFx0ICAgICAgfTtcclxuXHRcdFx0ICAgICAgXHJcblx0XHRcdCAgICAgIHRoaXMuc29ja2V0Q2xpZW50LnNlbmQobWVzc2FnZSlcclxuXHRcdFx0ICAgICAgICAudGhlbigoKSA9PiB7XHJcblx0XHRcdCAgICAgICAgICBjb25zb2xlLmxvZygn5raI5oGv5Y+R6YCB5oiQ5YqfJyk7XHJcblx0XHRcdCAgICAgICAgfSlcclxuXHRcdFx0ICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG5cdFx0XHQgICAgICAgICAgY29uc29sZS5lcnJvcign5raI5oGv5Y+R6YCB5aSx6LSlJywgZXJyb3IpO1xyXG5cdFx0XHQgICAgICAgIH0pO1xyXG5cdFx0XHQgICAgfSxcclxuXHRcdFx0d2ViU29ja2VySW5pdCgpe1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZih0aGF0LmJhc2VJUCA9PT0gJycgJiYgdGhhdC5iYXNlUG9ydCA9PT0gJycgJiYgdGhhdC5iYXNlVXJsID09PScnICl7XHJcblx0XHRcdFx0XHR0aGF0LnRpbWVPdXQgPSB0cnVlXHJcblx0XHRcdFx0XHR0aGF0LnRpbWVzID0gdGhhdC50aW1lcysxXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdFx0cmV0dXJuIDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dGhhdC5jb21tb25VcmwgPSB0aGF0LmJhc2VJUCArICc6JyArdGhhdC5iYXNlUG9ydCArIFwiL1wiICt0aGF0LmJhc2VVcmxcclxuXHRcdFx0XHRsZXQgc29ja2V0VXJsID0gXCJ3czovL1wiK3RoYXQuY29tbW9uVXJsK1wiL2xlZC9cIit0aGF0LmJhc2VMZWRJZFxyXG5cdFx0XHRcdFx0XHQvLyBzb2NrZXRVcmwgPSBcIndzOi8vMTAuMC4xMDAuMTUwOjgwODAvZ3RjdHUvbGVkLzExM1wiXHJcblx0XHRcdFx0Y29uc3Qgd3MgPSBuZXcgV2ViU29ja2V0Q2xpZW50KHNvY2tldFVybCk7XHJcblx0XHRcdFx0d3MuY29ubmVjdCgpXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Y29uc29sZS5sb2cod3MpXHRcdFxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHR3cy5vbmNsb3NlKCgpID0+e1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR3cy5vbm1lc3NhZ2UoKG1zZyk9PntcclxuXHRcdFx0XHQgdGhhdC50aW1lT3V0ID0gZmFsc2VcclxuXHRcdFx0XHQgbGV0IGRhdGEgPSBKU09OLnBhcnNlKG1zZy5kYXRhKVxyXG5cdFx0XHRcdCB0aGF0LnNob3dEYXRlKGRhdGEpXHJcblx0XHRcdFx0IFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdHNob3dEYXRlKGRhdGEpe1xyXG5cdFx0XHRcdGNvbnN0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYoZGF0YS50eXBlID09PSBcImRlZmF1bHRcIil7XHJcblx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gZGF0YS5waWVcclxuXHRcdFx0XHRcdHRoYXQuYmFzZUluZm8uc3RvY2tDb3VudCA9IGRhdGEuc3RvY2tDdW50XHJcblx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLmVtcHR5Q291bnQgPSBkYXRhLmVtcHR5Q291bnRcclxuXHRcdFx0XHRcdHRoYXQuYmFzZUluZm8ubm9uZUNvdW50ID1kYXRhLm5vbmVDb3VudFxyXG5cdFx0XHRcdFx0dGhhdC5iYXNlSW5mby51c2VkID0gZGF0YS51c2VkXHJcblx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnVzZWRQciA9IGRhdGEudXNlZFByXHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcclxuXHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC03KSx0aGF0LmdldERhdGVGb3JtYXQoLTYpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNSksdGhhdC5nZXREYXRlRm9ybWF0KC00KSxcclxuXHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC0zKSx0aGF0LmdldERhdGVGb3JtYXQoLTIpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksdGhhdC5nZXREYXRlRm9ybWF0KDApLF1cclxuXHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IGRhdGEucm93c1xyXG5cdFx0XHRcdFx0dGhhdC5jYWxlbmRhciA9IGRhdGEueWVhciArIFwi5bm0XCIgKyBkYXRhLm1vbnRoICsgXCLmnIhcIiArIGRhdGEuZGF5ICsgXCLml6UgXCIgKyBkYXRhLmhvdXIgKyBcIjpcIiArIGRhdGEubWludXRlICsgXCI6XCIgKyBkYXRhLnNlY29uZCArIFwiIFwiICsgZGF0YS53ZWVrXHJcblx0XHRcdFx0XHR0aGF0LmN1cnJEYXRlID0gZGF0YS55ZWFyICsgXCIvXCIgKyBkYXRhLm1vbnRoICsgXCIvXCIgKyBkYXRhLmRheVxyXG5cdFx0XHRcdFx0dGhhdC5sb2NMaXN0ID0gZGF0YS5pbnZlbnRvcnlEYXRhXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQub2xkSG91cnMgPSBkYXRhLmhvdXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5vbGRNaW4gPSBkYXRhLm1pbnV0ZVxyXG5cdFx0XHRcdH1lbHNlIGlmKGRhdGEudHlwZSA9PT0gXCJlcnJvclwiKXtcclxuXHRcdFx0XHRcdGlmIChkYXRhLmVyck1zZyAmJiBkYXRhLmVyck1zZyAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0XHR2YXIgZXJyb3JJbmZvID0gZGF0YS5lcnJNc2dcclxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAzXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCIgXHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDJcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCJcclxuXHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC5lcnJvciA9IGVycm9ySW5mb1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fWVsc2UgaWYoZGF0YS50eXBlID09PSBcInRhc2tcIil7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBpZiAoZGF0YS50YXNrTGlzdCAmJiBkYXRhLnRhc2tMaXN0ICE9PSBcIlwiICYmIGRhdGEudGFza0xpc3QubGVuZ3RoICE9MCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHRpZiAodGhhdC5pbmZvVHlwZSA9PSAyIHx8IHRoYXQuaW5mb1R5cGUgPT0gMykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0IFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHQvLyBpbmZvVHlwZTE65Y+q5pyJ5ouj5paZ562J5L+h5oGvXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdHRoYXQuaW5mb1R5cGUgPSAxXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdGlmIChkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH0gZWxzZSBpZihkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfmi6Pmlpnlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH0gZWxzZSBpZihkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTA3KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH0gZWxzZSBpZihkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5YWl5bqTJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHR9IGVsc2UgaWYoZGF0YS50YXNrTGlzdFswXS5pb1R5cGUgPT09IDEwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlhaXlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH0gZWxzZSBpZihkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTEwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH0gZWxzZSBpZihkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTA0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflubbmnb/lh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH1lbHNlIGlmKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSA1NCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5bm25p2/5YWl5bqTJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdHRoYXQuaW5mb1RleHQuYmFyY29kZSA9IGRhdGEudGFza0xpc3RbMF0uYmFyY29kZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHR0aGF0LmluZm9UZXh0LndvcmtObyA9IGRhdGEudGFza0xpc3RbMF0ud29ya05vXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdHRoYXQuaW5mb1RleHQuc291cmNlTG9jTm8gPSBkYXRhLnRhc2tMaXN0WzBdLnNvdXJjZUxvY05vXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdHRoYXQuaW5mb1RleHQuc3RhTm8gPSBkYXRhLnRhc2tMaXN0WzBdLnN0YU5vXHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdHRoYXQuc3dpcGVyTGlzdCA9IGRhdGEudGFza0xpc3RbMF0ubWF0RHRvc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHQvLyB0aGF0LmluZm9UZXh0Lm1hdG5yID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHQvLyB0aGF0LmluZm9UZXh0LnNwZWNzID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHQvLyB0aGF0LmluZm9UZXh0Lm1ha254ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYWtueFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgXHQvLyB0aGF0LmluZm9UZXh0LmNvdW50ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgfSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0IFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0IFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHRcdCBcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0IFx0dGhhdC5pbmZvVHlwZSA9IDBcclxuXHRcdFx0XHRcdFx0XHRcdFx0IH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHN0YXRpc3RpY2FsTW9kZWwoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jRGV0bC9wZGEvc3RhdGlzdGljYWxNb2RlbFwiLFxyXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5sb2NMaXN0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFVybCgpIHtcclxuXHRcdFx0XHR0aGlzLmNvbW1vblVybCA9IHRoaXMuYmFzZUh0dHAgKyB0aGlzLmJhc2VJUCArICc6JyArdGhpcy5iYXNlUG9ydCArIFwiL1wiICt0aGlzLmJhc2VVcmxcdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRTZXJ2ZXJEYXRhKCkge1xyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YVBpZTI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJ0c0RhdGEuUGllKSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdGdldEluZm8yKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXN1bHQgPSB5Y3FkYXRhLmRhdGFJbmZvMlxyXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGluZm9UeXBlMTrlj6rmnInmi6PmlpnnrYnkv6Hmga9cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAxXHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDcpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5YWl5bqTJ1xyXG5cdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlhaXlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmJhcmNvZGUgPSByZXMuZGF0YVswXS5iYXJjb2RlXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LndvcmtObyA9IHJlcy5kYXRhWzBdLndvcmtOb1xyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC5zb3VyY2VMb2NObyA9IHJlcy5kYXRhWzBdLnNvdXJjZUxvY05vXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LnN0YU5vID0gcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdHRoYXQuc3dpcGVyTGlzdCA9IHJlcy5kYXRhWzBdLm1hdER0b3NcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQubWF0bnIgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXHJcblx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0LnNwZWNzID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xyXG5cdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC5tYWtueCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQuY291bnQgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRFcnJvcjIgKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFFcnJvcjJcclxuXHRcdFx0XHR2YXJcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHR2YXIgZXJyb3JJbmZvID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDNcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCIgXHJcblx0XHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMlxyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCJcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0SW5mbygpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWRcIixcclxuXHRcdFx0XHRcdG1ldGhvZDpcIkdFVFwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge2xlZElkOnRoYXQuYmFzZUxlZElkfSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGltZU91dCA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly8gaW5mb1R5cGUxOuWPquacieaLo+aWmeetieS/oeaBr1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAxXHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LnRpdGxlID0gJ+WFqOadv+WHuuW6kydcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwNykge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhaXlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn56m65omY5YWl5bqTJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDExMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuYmFyY29kZSA9IHJlcy5kYXRhWzBdLmJhcmNvZGVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LndvcmtObyA9IHJlcy5kYXRhWzBdLndvcmtOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuc291cmNlTG9jTm8gPSByZXMuZGF0YVswXS5zb3VyY2VMb2NOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuc3RhTm8gPSByZXMuZGF0YVswXS5zdGFOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3dpcGVyTGlzdCA9IHJlcy5kYXRhWzBdLm1hdER0b3NcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0Lm1hdG5yID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxyXG5cdFx0XHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQuc3BlY3MgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLnNwZWNzXHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC5tYWtueCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0LmNvdW50ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRpbWVPdXQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSB0aGF0LnRpbWVzKzFcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRFcnJvcigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWQvZXJyb3JcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtsZWRJZDp0aGF0LmJhc2VMZWRJZH0sXHJcblx0XHRcdFx0XHRtZXRob2Q6XCJHRVRcIixcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGltZU91dCA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySW5mbyA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDNcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuWFtuS7luS/oeaBr1wiIFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMlxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuWFtuS7luS/oeaBr1wiXHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRpbWVPdXQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5o6n5Yi25ZmoXHJcblx0XHRcdGNvbnRyb2xsZXIoKSB7XHJcblx0XHRcdFx0c3dpdGNoKHRoaXMuaW5mb1R5cGUpIHtcclxuXHRcdFx0XHRcdC8vIOacieS/oeaBryDkvYYg5rKh5pyJ6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdFx0XHRjYXNlIDA6IFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5lcnJvckluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgJiYgdGhpcy5pbmZvVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlIDE6IFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5ob21lVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmVycm9ySW5mb1ZpZXdTaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdC8vIOacieS/oeaBryDkuJQg5pyJ6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdFx0XHRjYXNlIDI6XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmhvbWVWaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHQvLyDmnInkv6Hmga8g5LiUIOaciemUmeivr+S/oeaBr1xyXG5cdFx0XHRcdFx0Y2FzZSAzOlxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5ob21lVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0XHRcdFx0XHR9LDEwMDApXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5pbmZvVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0XHRcdFx0XHR9LDEwMDApXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuLvlsY/luZVcclxuXHRcdFx0aGFuZGxlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9ICF0aGlzLmhvbWVWaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmi6PmlplcclxuXHRcdFx0aGFuZGxlMSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSAhdGhpcy5pbmZvVmlld1Nob3dcclxuXHRcdFx0XHR0aGlzLm1vZGVDbGFzcyA9IHR5cGVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5byC5bi4XHJcblx0XHRcdGhhbmRsZTIodHlwZSkge1xyXG5cdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSAhdGhpcy5lcnJvckluZm9WaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDphY3nva5cclxuXHRcdFx0ZWplY3RlZCAoKSB7XHJcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWPlua2iOmFjee9rlxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g56Gu6K6k6YWN572uXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnVVBST0onLHRoaXMuYmFzZVVybCk7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3bXNVcmwnLHRoaXMud21zVXJsKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dtc1BvcnQnLHRoaXMud21zUG9ydCk7XHJcblx0XHRcdFx0dGhpcy5nZXRVcmwoKVxyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pel5Y6GIOacjeWKoeWZqFxyXG5cdFx0XHRnZXREYXRlMigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9kYXRlXCIsXHJcblx0XHRcdFx0XHRtZXRob2Q6XCJHRVRcIixcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YS5kYXRhXHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHQvLyDml6XljoZcclxuXHRcdFx0Z2V0RGF0ZSgpIHtcclxuXHRcdFx0XHR2YXIgZHQgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0XHRcdHZhciB5ZWFyLG1vbnRoLGRheSxob3VycyxtaW51dGVzLHNlY29uZHMsd2Vla3NcclxuXHRcdFx0XHR5ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHRtb250aCA9IChkdC5nZXRNb250aCgpKzEpIDwgMTAgPyAnMCcrIChkdC5nZXRNb250aCgpKzEpIDogKGR0LmdldE1vbnRoKCkrMSk7XHJcblx0XHRcdFx0ZGF5ID0gZHQuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcrZHQuZ2V0RGF0ZSgpIDogZHQuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdGhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0bWludXRlcyA9IGR0LmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZHQuZ2V0TWludXRlcygpIDogZHQuZ2V0TWludXRlcygpO1xyXG5cdFx0XHRcdHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGR0LmdldFNlY29uZHMoKSA6IGR0LmdldFNlY29uZHMoKTsgXHJcblx0XHRcdFx0d2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh3ZWVrcykge1xyXG5cdFx0XHRcdFx0Y2FzZSAwOiB3ZWVrcyA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB3ZWVrcyA9IFwi5pif5pyf5LiAXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAyOiB3ZWVrcyA9IFwi5pif5pyf5LqMXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAzOiB3ZWVrcyA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB3ZWVrcyA9IFwi5pif5pyf5ZubXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA1OiB3ZWVrcyA9IFwi5pif5pyf5LqUXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdCA6IHdlZWtzID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jYWxlbmRhciA9IHllYXIgKyBcIuW5tFwiICsgbW9udGggKyBcIuaciFwiICsgZGF5ICsgXCLml6UgXCIgKyBob3VycyArIFwiOlwiICsgbWludXRlcyArIFwiOlwiICsgc2Vjb25kcyArIFwiIFwiICsgd2Vla3NcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RGF0ZUZvcm1hdCh2YWx1ZSkge1xyXG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUodGhpcy5jdXJyRGF0ZSk7Ly8g6I635Y+W5b2T5YmN5pe26Ze0XHJcblx0XHRcdFx0ZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgdmFsdWUpOy8vIOiuvue9ruWkqeaVsCAtMSDlpKlcclxuXHRcdFx0XHR2YXIgbSA9IGRhdGUuZ2V0TW9udGgoKSArIDFcclxuXHRcdFx0XHR2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpXHJcblx0XHRcdFx0dmFyIG5ld0RhdGUgPSBtICsgJy0nICsgZFxyXG5cdFx0XHRcdHJldHVybiBuZXdEYXRlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKioqKioqKioqKioqKiog5oqY57q/5Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cdFx0XHRpbml0bGluZUNoYXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xpbmUvY2hhcnRzXCIsXHJcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKioqKioqKioqKioqKiog6aW85Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cdFx0XHRpbml0UGllQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxyXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLlBpZS5zZXJpZXNbMF0uZGF0YSA9IHJlcy5kYXRhLnBpZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8uc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8uZW1wdHlDb3VudCA9IHJlcy5kYXRhLmVtcHR5Q291bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLm5vbmVDb3VudCA9IHJlcy5kYXRhLm5vbmVDb3VudFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8udXNlZCA9IHJlcy5kYXRhLnVzZWRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnVzZWRQciA9IHJlcy5kYXRhLnVzZWRQclxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0T3RoZXIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0Y3JuSWQ6IHRoYXQuYmFzZUNybklkLCBcclxuXHRcdFx0XHRcdFx0bGVkSWQ6IHRoYXQuYmFzZUxlZElkLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8ueERpc3RhbmNlID0gcmVzLmRhdGEueERpc3RhbmNlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5iYXNlSW5mby55RGlzdGFuY2UgPSByZXMuZGF0YS55RGlzdGFuY2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnhEdXJhdGlvbiA9IHJlcy5kYXRhLnhEdXJhdGlvblxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8ueUR1cmF0aW9uID0gcmVzLmRhdGEueUR1cmF0aW9uXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/mo4DmtYvlvZPliY3lubPlj7DvvIzlpoLmnpzmmK/lronljZPliJnlkK/liqjlronljZPmm7TmlrBcclxuXHRcdFx0Z2V0VmVyc2lvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmdldFN5c3RlbUluZm8oe1xyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnBsYXRmb3JtID09IFwiYW5kcm9pZFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5BbmRyb2lkQ2hlY2tVcGRhdGUoKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdC8vIHRoYXQuQW5kcm9pZENoZWNrVXBkYXRlKCk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOiOt+WPluW9k+WJjeeJiOacrOWPt1xyXG5cdFx0XHRBbmRyb2lkQ2hlY2tVcGRhdGUoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHBsdXMucnVudGltZS5nZXRQcm9wZXJ0eShwbHVzLnJ1bnRpbWUuYXBwaWQsICh3Z3RpbmZvKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LnZlcnNpb24gPSB3Z3RpbmZvLnZlcnNpb24gLy/lrqLmiLfnq6/niYjmnKzlj7dcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdHRoYXQuZ2V0VXBkYXRlVmVyc2lvbigpXHJcblx0XHRcdFx0fSwxMDApXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOagoemqjOeJiOacrFxyXG5cdFx0XHRnZXRVcGRhdGVWZXJzaW9uKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCB0eXBlID0gMVxyXG5cdFx0XHRcdGlmICh0aGF0LmJhc2VVcmwgPT0gJ2h0dHA6Ly91bmRlZmluZWQ6dW5kZWZpbmVkL3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCB3bXMgPSAnaHR0cDovLycrIHRoYXQuYmFzZUlQICsgJzonICt0aGF0Lndtc1BvcnQgKyBcIi9cIiArdGhhdC53bXNVcmxcclxuXHRcdFx0XHRjb25zb2xlLmxvZyh3bXMpXHJcblx0XHRcdFx0bGV0IHVybCA9IHdtcyArICcvYXBwVmVyc2lvbi9jaGVja1VwZGF0ZS8nICsgdGhhdC52ZXJzaW9uICsgJy8nICsgdHlwZVxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdXJsLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmZpbGVuYW1lID0gcmVzLmRhdGEucGF0aFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuZGlhbG9nQ29udGVudCA9ICflj5HnjrDmlrDniYjmnKw6JyArIHJlcy5kYXRhLnZlcnNpb24gKyAnLCDmmK/lkKbnq4vljbPmm7TmlrAnXHJcblx0XHRcdFx0XHRcdFx0dGhhdC4kcmVmcy51cFZlcnNpb24ub3BlbigpXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1zZyxcclxuXHRcdFx0XHRcdFx0XHRcdGljb246IFwibm9uZVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0cG9zaXRpb246ICd0b3AnXHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkaWFsb2dDb25maXJtKCkge1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMudXBWZXJzaW9uLmNsb3NlKClcclxuXHRcdFx0XHR0aGlzLmRvd25XZ3QoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkaWFsb2dDbG9zZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnVwVmVyc2lvbi5jbG9zZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGRvd25XZ3QoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdGNvbnN0IHdtcyA9ICdodHRwOi8vJysgdGhhdC5iYXNlSVAgKyAnOicgK3RoYXQud21zUG9ydCArIFwiL1wiICt0aGF0Lndtc1VybFxyXG5cdFx0XHRcdGNvbnN0IGRvd25sb2FkVXJsID0gd21zICsgXCIvYXBwVmVyc2lvbi9kb3dubG9hZEFwcC9cIiArIHRoYXQuZmlsZW5hbWVcclxuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdFx0XHRcdFx0dGl0bGU6ICfmm7TmlrDkuK3igKbigKYnXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRjb25zdCBkb3dubG9hZFRhc2sgPSB1bmkuZG93bmxvYWRGaWxlKHsgLy/miafooYzkuIvovb1cclxuXHRcdFx0XHRcdHVybDogZG93bmxvYWRVcmwsIC8v5LiL6L295Zyw5Z2AXHJcblx0XHRcdFx0XHR0aW1lb3V0OiAxMDAwICogMzAsIC8vMzDnp5LotoXml7bml7bpl7RcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGRvd25sb2FkUmVzdWx0ID0+IHsgLy/kuIvovb3miJDlip9cclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZG93bmxvYWRSZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHR0aGF0LnNob3dkb3duTGluZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0XHRpZiAoZG93bmxvYWRSZXN1bHQuc3RhdHVzQ29kZSA9PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAnJyxcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICfmm7TmlrDmiJDlip/vvIznoa7lrprnjrDlnKjph43lkK/lkJfvvJ8nLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZmlybVRleHQ6ICfph43lkK8nLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZmlybUNvbG9yOiAnI0VFOEY1NycsXHJcblx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlcy5jb25maXJtID09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbCggLy/lronoo4VcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRvd25sb2FkUmVzdWx0LnRlbXBGaWxlUGF0aCwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3JjZTogdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1dGlscy5zaG93VG9hc3QoJ+abtOaWsOaIkOWKn++8jOmHjeWQr+S4rScpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnNob3dkb3duTGluZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTon6K+35YWI5LiK5Lyg5a6J6KOF5YyFJyxcclxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdlcnJvcidcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogZXJyID0+IHtcclxuXHRcdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XHJcblx0XHRcdFx0XHRcdHRoYXQuc2hvd2Rvd25MaW5lID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0dGhhdC4kdS50b2FzdChkb3dubG9hZFJlc3VsdC5lcnJNc2cpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0Y29tcGxldGU6IGNvbSA9PiB7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhjb20pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFxyXG5cdFx0XHRcdC8vIOS4i+i9vei/m+W6plxyXG5cdFx0XHRcdGRvd25sb2FkVGFzay5vblByb2dyZXNzVXBkYXRlKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LmRvd25sb2FkTnVtID0gcmVzLnByb2dyZXNzXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn5LiL6L296L+b5bqmJyArIHRoYXQuZG93bmxvYWROdW0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQvKiBAaW1wb3J0IHVybChcIi4uLy4uL3N0YXRpYy9jc3MvY29tbW9uLmNzc1wiKTsgKi9cclxuXHRAaW1wb3J0IHVybChcImhvbWUuY3NzXCIpO1xyXG5cdC8qIOWIlyAqL1xyXG5cdC5mbGV4LWNvbCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHR9XHJcblx0Lyog6KGMICovXHJcblx0LmZsZXgtcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdH1cclxuXHRcclxuXHQuY29udGFpbmVye1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAxNjNFO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcclxuXHR9XHJcblx0Lyog5Li76KeG5Zu+ICovXHJcblx0LmhvbWUtdmlldyB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDB2dyAxMDB2aDtcclxuXHR9XHJcblx0LmhvbWUtcmlnaHQge1xyXG5cdFx0d2lkdGg6IDUwdnc7XHJcblx0XHRoZWlnaHQ6IDg5dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiBjYWRldGJsdWU7ICovXHJcblx0fVxyXG5cdC5ob21lLXJpZ2h0LWJveCB7XHJcblx0XHR3aWR0aDogOTglO1xyXG5cdFx0aGVpZ2h0OiA5OCU7XHJcblx0fVxyXG5cdC5oZWFkIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogMTF2aDtcclxuXHRcdGZvbnQtc2l6ZTo0dnc7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC43KTtcclxuXHR9XHJcblx0LnRpbWUtdG9vbHMge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDIlO1xyXG5cdFx0dG9wOiAyJTtcclxuXHRcdGZvbnQtc2l6ZToxdnc7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XHJcblx0fVxyXG5cdC5idXR0b24tbGVmdCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDIxLjMlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG5cdH1cclxuXHQuYnV0dG9uLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogNjUlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdH1cclxuXHQuaW1nLWJveCB7XHJcblx0XHRoZWlnaHQ6IDIzdnc7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7ICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGZvbnQtc2l6ZTogMXZ3O1xyXG5cdH1cclxuXHQuaXRlbS1pbWcge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdG1hcmdpbi10b3A6IDUlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmOyAqL1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5kaXN0YW5jZSB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0taW1nIGltYWdlIHtcclxuXHRcdGhlaWdodDogNXZ3O1xyXG5cdFx0d2lkdGg6IDV2dztcclxuXHR9XHJcblx0LnByb2dyZXNzQmFyIHtcclxuXHRcdG1hcmdpbi10b3A6IDklO1xyXG5cdFx0Lyogd2lkdGg6IDEwMCU7ICovXHJcblx0XHRoZWlnaHQ6IDIwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1dnc7XHJcblx0fVxyXG5cdC5wcm9ncmVzcyB7XHJcblx0XHQvKiB3aWR0aDogOTAlOyAqL1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGNTcyMjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDV2dztcclxuXHR9XHJcblx0LmNoYXJ0cy1ib3gge1xyXG5cdCAgd2lkdGg6IDgwJTtcclxuXHQgIGhlaWdodDogMjR2aDtcclxuXHQgIG1hcmdpbi1sZWZ0OiAxMCU7XHJcblx0fSBcclxuXHQuY2hhcnRzLWJveC1yaW5nIHtcclxuXHRcdHdpZHRoOiA2MCU7XHJcblx0XHRoZWlnaHQ6IDI0dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmOyAqL1xyXG5cdH1cclxuXHQuc3ViLWluZm8ge1xyXG5cdFx0Zm9udC1zaXplOiAxLjV2dztcclxuXHR9XHJcblx0LnN1Yi1pbmZvIGltYWdlIHtcclxuXHRcdHdpZHRoOiAzLjV2dztcclxuXHRcdGhlaWdodDogMy41dnc7XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdFxyXG5cdFxyXG5cdC8qIOWFseeUqCAqL1xyXG5cdC5tYWluIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogODh2aDtcclxuXHRcdG1hcmdpbi10b3A6IDF2aDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcclxuXHR9XHJcblx0Lm1pYW4taXRlbSB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG5cdC5taWFuLWl0ZW0tYm94IHtcclxuXHRcdHdpZHRoOiA5OCU7XHJcblx0XHRoZWlnaHQ6IDk4JTtcclxuXHR9XHJcblx0LmJveC1pdGVtIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLXRvcDogNCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdH1cclxuXHQuaXRlbS10aXRsZSB7XHJcblx0XHRmb250LXNpemU6MS41dnc7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdH1cclxuXHQudmVyc2lvbntcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDIlO1xyXG5cdFx0dG9wOiAyJTtcclxuXHRcdGZvbnQtc2l6ZToxdnc7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XHJcblx0fVxyXG5cdC5pdGVtLXN1YlRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTowLjV2dztcclxuXHRcdHRleHQtaW5kZW50OiAwZW07XHJcblx0fVxyXG5cdC5pdGVtLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHR0ZXh0LWluZGVudDogMmVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAzdmg7XHJcblx0fVxyXG5cdFxyXG5cdC8qIOWFqOadvy/mi6Pmlpnkv6Hmga8gKi9cclxuXHQuaW5mby12aWV3IHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG5cdH1cclxuXHQuaW5mby1tYWluIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogODh2aDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5pbmZvLWJveCB7XHJcblx0XHR3aWR0aDogOTglO1xyXG5cdFx0aGVpZ2h0OiA5OCU7XHJcblx0fVxyXG5cdC8qIOW8guW4uOS/oeaBryAqL1xyXG5cdC5lcnJvci1pbmZvLXZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcblx0fVxyXG5cdFxyXG5cdC8qIOW8ueWHujrphY3nva7ljLrln58gKi9cclxuXHQuZWplY3QtbWFzayB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHR6LWluZGV4OiA5OTk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1x0XHJcblx0fVxyXG5cdC5lamVjdHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHdpZHRoOiA0NXZ3O1xyXG5cdFx0aGVpZ2h0OiA0NXZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDJyZW07XHJcblx0fVxyXG5cdC5lamVjdC10aXRsZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNXZoO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDZ2aDtcclxuXHRcdGZvbnQtc2l6ZTogM3ZoO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRtYXJnaW4tdG9wOiAydmg7XHJcblx0XHRoZWlnaHQ6IDI1dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAxNjNFOyAqL1xyXG5cdFx0Ojotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9XHJcblx0fVxyXG5cdC5pdGVtIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luOiAxdmggMCAwIDA7XHJcblx0XHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdFx0Y29sb3I6ICMzNjM2MzY7XHJcblx0fVxyXG5cdC5kZXNjIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGNvbG9yOiAjNjA2MjY2O1xyXG5cdFx0XHJcblx0fVxyXG5cdC5pbnB1dCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctbGVmdDogNXB4O1xyXG5cdFx0cGFkZGluZy1yaWdodDogNXB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDN2aDtcclxuXHRcdGJvcmRlcjogMC4xdmggc29saWQgI2NmZDRkYztcclxuXHRcdG1hcmdpbi1yaWdodDogMjAlO1xyXG5cdFx0dGV4dC1hbGlnbjogc3RhcnQ7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCBpbnB1dCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogM3ZoO1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHRcclxuXHRcdFxyXG5cdH1cclxuXHQuZWplY3QtYnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0aGVpZ2h0OiA2dmg7XHJcblx0XHRsaW5lLWhlaWdodDogNnZoO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtOmxhc3QtY2hpbGQge1xyXG5cdFx0Y29sb3I6ICM2N0MyM0E7XHJcblx0XHRcclxuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmluZm8tYm94LXRleHQge1xyXG5cdFx0d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2FsaWduLWl0ZW1zOiBjZW50ZXI7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG5cdC5pbmZvLWJveC10ZXh0LWl0ZW0ge1xyXG5cdFx0aGVpZ2h0OiAyMCU7Zm9udC1zaXplOiA4dmg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///117\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _uniWebSocket = _interopRequireDefault(__webpack_require__(/*! ./uniWebSocket */ 122));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 = {\n data: function data() {\n return {\n homeViewShow: true,\n infoViewShow: false,\n errorInfoViewShow: false,\n homeMode: [],\n infoMode: [],\n errorInfoMode: [],\n baseInfo: {\n xDistance: 1,\n yDistance: 2,\n xDuration: 3,\n yDuration: 4,\n usedPr: 50,\n used: 3537,\n stockCount: '',\n emptyCount: '',\n noneCount: ''\n },\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n duration: 300,\n calendar: '',\n ringOpts: {},\n chartsDataLine1: {},\n chartsDataPie2: {},\n ejectShow: false,\n baseIP: '',\n basePort: '',\n baseLedId: '',\n baseUrl: '',\n infoType: 0,\n infoText: {\n title: '',\n staNo: \"\",\n matnr: \"\",\n maknx: \"\",\n specs: \"\",\n count: \"\",\n error: \"\",\n barcode: \"\"\n },\n swiperList: [],\n timeOut: false,\n times: 0,\n currDate: '',\n locList: [],\n oldHours: '',\n oldMin: '',\n socketClient: null,\n version: '',\n socketUrl: '',\n msgType: 'success',\n filename: '',\n dialogContent: '',\n wmsUrl: '',\n wmsPort: '',\n switchDebounceTimer: null,\n viewSwitchInProgress: false\n };\n },\n onShow: function onShow() {\n // 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n\n plus.navigator.setFullscreen(true);\n this.getVersion();\n var ip = this.getIp();\n __f__(\"log\", ip, \" at pages/home/home.vue:378\");\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n var WMSURL = uni.getStorageSync('wmsUrl');\n var WMSPORT = uni.getStorageSync('wmsPort');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n that.wmsUrl = WMSURL;\n that.wmsPort = WMSPORT;\n },\n created: function created() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n var WMSURL = uni.getStorageSync('wmsUrl');\n var WMSPORT = uni.getStorageSync('wmsPort');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n that.wmsUrl = WMSURL;\n that.wmsPort = WMSPORT;\n that.uniWebSocket();\n // that.webSockerInit()\n },\n onLoad: function onLoad() {\n var _this = this;\n setInterval(function () {\n _this.getServerData();\n _this.controller();\n }, 1000);\n setInterval(function () {\n setTimeout(function () {\n plus.runtime.restart();\n }, 100);\n }, 1000 * 60 * 60 * 4);\n\n // 姣忓皬鏃惰Е鍙戜竴娆″瀮鍦惧洖鏀禱n var memoryCleanerId = setInterval(function () {\n if (plus.os.name.toLowerCase() === 'android') {\n // 寮哄埗瑙﹀彂 GC\n plus.android.importClass('java.lang.System');\n plus.android.invoke('java.lang.System', 'gc');\n __f__(\"log\", '鎵嬪姩瑙﹀彂 GC', \" at pages/home/home.vue:437\");\n }\n // 娓呯悊涓嶅啀闇�瑕佺殑澶у瀷鏁版嵁瀵硅薄\n if (_this.oldData && _this.oldData.length > 100) {\n _this.oldData = [];\n }\n }, 30000 * 10); // 姣忓皬鏃舵墽琛屼竴娆n },\n\n methods: {\n getIp: function getIp() {\n var ip = null;\n if (plus.os.name === \"Android\") {\n try {\n var InetAddress = plus.android.importClass(\"java.net.InetAddress\");\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var Collections = plus.android.importClass(\"java.util.Collections\");\n var interfaces = NetworkInterface.getNetworkInterfaces();\n var en = Collections.list(interfaces); // Java ArrayList\n var ipEth = null; // 鏈夌嚎\n var ipWifi = null; // Wi-Fi\n var ipOther = null; // 鍏滃簳\n var size = plus.android.invoke(en, \"size\");\n for (var i = 0; i < size; i++) {\n var intf = plus.android.invoke(en, \"get\", i);\n var name = plus.android.invoke(intf, \"getName\"); // eth0 / wlan0 / lo 绛塡n var enumIpAddr = plus.android.invoke(intf, \"getInetAddresses\");\n var enumList = Collections.list(enumIpAddr);\n var listSize = plus.android.invoke(enumList, \"size\");\n for (var j = 0; j < listSize; j++) {\n var inetAddress = plus.android.invoke(enumList, \"get\", j);\n if (!plus.android.invoke(inetAddress, \"isLoopbackAddress\")) {\n var hostAddress = plus.android.invoke(inetAddress, \"getHostAddress\");\n // 鍙彇 IPv4\n if (hostAddress.indexOf(\":\") === -1) {\n if (name.startsWith(\"eth\") && !ipEth) {\n ipEth = hostAddress;\n } else if (name.startsWith(\"wlan\") && !ipWifi) {\n ipWifi = hostAddress;\n } else if (!ipOther) {\n ipOther = hostAddress;\n }\n }\n }\n }\n }\n ip = ipEth || ipWifi || ipOther || null;\n return ip;\n } catch (e) {\n __f__(\"log\", \"鑾峰彇IP澶辫触锛歕", e, \" at pages/home/home.vue:486\");\n return ip;\n }\n } else {\n return ip;\n }\n },\n uniWebSocket: function uniWebSocket() {\n var that = this;\n that.commonUrl = that.baseIP + ':' + that.basePort + \"/\" + that.baseUrl;\n that.socketUrl = \"ws://\" + that.commonUrl + \"/led/\" + that.baseLedId;\n // 鍒涘缓WebSocket瀹炰緥\n that.socketClient = new _uniWebSocket.default(that.socketUrl, {\n // 蹇冭烦闂撮殧锛岄粯璁�30绉抃n heartbeatInterval: 30000,\n // 閲嶈繛闂撮殧锛岄粯璁�3绉抃n reconnectInterval: 3000,\n // 鏈�澶ч噸杩炴鏁帮紝-1琛ㄧず鏃犻檺閲嶈繛\n maxReconnectAttempts: -1,\n // 娑堟伅鍥炶皟\n onMessage: function onMessage(res) {\n try {\n var data = JSON.parse(res.data);\n that.showDate(data);\n // 澶勭悊娑堟伅...\n } catch (e) {\n __f__(\"error\", '瑙f瀽娑堟伅澶辫触', e, \" at pages/home/home.vue:512\");\n }\n },\n // 杩炴帴鎵撳紑鍥炶皟\n onOpen: function onOpen(res) {\n that.timeOut = false;\n that.times = 0;\n __f__(\"log\", 'WebSocket宸茶繛鎺�', res, \" at pages/home/home.vue:519\");\n },\n // 杩炴帴閿欒鍥炶皟\n onError: function onError(error) {\n __f__(\"error\", 'WebSocket閿欒', error, \" at pages/home/home.vue:523\");\n },\n // 杩炴帴鍏抽棴鍥炶皟\n onClose: function onClose(res) {\n that.timeOut = true;\n that.times = that.times + 1;\n that.infoType = 0;\n __f__(\"log\", 'WebSocket宸插叧闂�', res, \" at pages/home/home.vue:530\");\n },\n // 閲嶈繛鍥炶皟\n onReconnect: function onReconnect(info) {\n __f__(\"log\", \"WebSocket\\u91CD\\u8FDE(\".concat(info.attempts, \"/\").concat(info.maxAttempts, \")\"), \" at pages/home/home.vue:534\");\n }\n });\n\n // 寤虹珛杩炴帴\n that.socketClient.connect();\n },\n showDate: function showDate(data) {\n var that = this;\n if (data.type === \"default\") {\n that.chartsData.Pie.series[0].data = data.pie;\n that.baseInfo.stockCount = data.stockCunt;\n that.baseInfo.emptyCount = data.emptyCount;\n that.baseInfo.noneCount = data.noneCount;\n that.baseInfo.used = data.used;\n that.baseInfo.usedPr = data.usedPr;\n 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)];\n that.chartsData.Line.series = data.rows;\n that.calendar = data.year + \"骞碶" + data.month + \"鏈圽" + data.day + \"鏃� \" + data.hour + \":\" + data.minute + \":\" + data.second + \" \" + data.week;\n that.currDate = data.year + \"/\" + data.month + \"/\" + data.day;\n that.locList = data.inventoryData;\n that.oldHours = data.hour;\n that.oldMin = data.minute;\n } else if (data.type === \"error\") {\n if (data.errMsg && data.errMsg !== \"\") {\n var errorInfo = data.errMsg;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"鍏朵粬淇℃伅\";\n // that.infoText.title = \"寮傚父\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n } else if (data.type === \"task\") {\n if (data.taskList && data.taskList !== \"\" && data.taskList.length != 0) {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:鍙湁鎷f枡绛変俊鎭痋n that.infoType = 1;\n if (data.taskList[0].ioType === 101) {\n that.infoText.title = '鍏ㄦ澘鍑哄簱';\n } else if (data.taskList[0].ioType === 103) {\n that.infoText.title = '鎷f枡鍑哄簱';\n } else if (data.taskList[0].ioType === 107) {\n that.infoText.title = '鐩樼偣鍑哄簱';\n } else if (data.taskList[0].ioType === 1) {\n that.infoText.title = '鍏ュ簱';\n } else if (data.taskList[0].ioType === 10) {\n that.infoText.title = '绌烘墭鍏ュ簱';\n } else if (data.taskList[0].ioType === 110) {\n that.infoText.title = '绌烘墭鍑哄簱';\n } else if (data.taskList[0].ioType === 104) {\n that.infoText.title = '骞舵澘鍑哄簱';\n } else if (data.taskList[0].ioType === 54) {\n that.infoText.title = '骞舵澘鍏ュ簱';\n }\n that.infoText.barcode = data.taskList[0].barcode;\n that.infoText.workNo = data.taskList[0].workNo;\n that.infoText.sourceLocNo = data.taskList[0].sourceLocNo;\n that.infoText.staNo = data.taskList[0].staNo;\n that.swiperList = data.taskList[0].matDtos;\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n }\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(this.currDate); // 鑾峰彇褰撳墠鏃堕棿\n date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\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 // 鎺у埗鍣╘n controller: function controller() {\n var _this2 = this;\n // 闃叉姈澶勭悊锛岄伩鍏嶉绻佸垏鎹n if (this.switchDebounceTimer) {\n clearTimeout(this.switchDebounceTimer);\n }\n this.switchDebounceTimer = setTimeout(function () {\n _this2.performViewSwitch();\n }, 100);\n },\n performViewSwitch: function performViewSwitch() {\n var _this3 = this;\n // 浣跨敤鐘舵�佹満妯″紡绠�鍖栬鍥惧垏鎹n var viewStates = {\n 0: function _() {\n return _this3.showHomeView();\n },\n 1: function _() {\n return _this3.showInfoView();\n },\n 2: function _() {\n return _this3.showErrorView();\n },\n 3: function _() {\n return _this3.showErrorView();\n }\n };\n var switchAction = viewStates[this.infoType];\n if (switchAction && !this.viewSwitchInProgress) {\n this.viewSwitchInProgress = true;\n switchAction();\n // 缁熶竴鐨勫垏鎹㈠畬鎴愬鐞哱n setTimeout(function () {\n _this3.viewSwitchInProgress = false;\n }, this.duration + 100);\n }\n },\n showHomeView: function showHomeView() {\n var _this4 = this;\n this.infoViewShow = false;\n this.errorInfoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this4.homeViewShow = true;\n _this4.homeMode = ['fade', 'slide-bottom'];\n }, this.duration);\n },\n showInfoView: function showInfoView() {\n var _this5 = this;\n this.homeViewShow = false;\n this.errorInfoViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this5.infoViewShow = true;\n _this5.infoMode = ['fade', 'slide-bottom'];\n }, this.duration);\n },\n showErrorView: function showErrorView() {\n var _this6 = this;\n this.homeViewShow = false;\n this.infoViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this6.errorInfoViewShow = true;\n _this6.errorInfoMode = ['fade', 'slide-bottom'];\n }, this.duration);\n },\n // 閰嶇疆\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 鍙栨秷閰嶇疆\n ejectClose: function ejectClose() {\n this.ejectShow = false;\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 uni.setStorageSync('UPROJ', this.baseUrl);\n uni.setStorageSync('wmsUrl', this.wmsUrl);\n uni.setStorageSync('wmsPort', this.wmsPort);\n this.ejectShow = false;\n },\n //妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊\n getVersion: function getVersion() {\n var that = this;\n uni.getSystemInfo({\n success: function success(res) {\n if (res.platform == \"android\") {\n that.AndroidCheckUpdate();\n }\n }\n });\n },\n // 鑾峰彇褰撳墠鐗堟湰鍙穃n AndroidCheckUpdate: function AndroidCheckUpdate() {\n var that = this;\n plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {\n that.version = wgtinfo.version; //瀹㈡埛绔増鏈彿\n });\n\n setTimeout(function () {\n that.getUpdateVersion();\n }, 100);\n },\n // 鏍¢獙鐗堟湰\n getUpdateVersion: function getUpdateVersion() {\n var that = this;\n var type = 1;\n if (that.baseUrl == 'http://undefined:undefined/undefined') {\n return;\n }\n var wms = 'http://' + that.baseIP + ':' + that.wmsPort + \"/\" + that.wmsUrl;\n __f__(\"log\", wms, \" at pages/home/home.vue:745\");\n var url = wms + '/appVersion/checkUpdate/' + that.version + '/' + type;\n uni.request({\n url: url,\n method: 'GET',\n success: function success(res) {\n __f__(\"log\", res, \" at pages/home/home.vue:751\");\n var res = res.data;\n if (res.data) {\n that.filename = res.data.path;\n that.dialogContent = '鍙戠幇鏂扮増鏈�:' + res.data.version + ', 鏄惁绔嬪嵆鏇存柊';\n that.$refs.upVersion.open();\n } else {\n uni.showToast({\n title: res.msg,\n icon: \"none\",\n position: 'top'\n });\n }\n }\n });\n },\n dialogConfirm: function dialogConfirm() {\n this.$refs.upVersion.close();\n this.downWgt();\n },\n dialogClose: function dialogClose() {\n this.$refs.upVersion.close();\n },\n downWgt: function downWgt() {\n var that = this;\n var wms = 'http://' + that.baseIP + ':' + that.wmsPort + \"/\" + that.wmsUrl;\n var downloadUrl = wms + \"/appVersion/downloadApp/\" + that.filename;\n uni.showLoading({\n title: '鏇存柊涓�︹��'\n });\n var downloadTask = uni.downloadFile({\n //鎵ц涓嬭浇\n url: downloadUrl,\n //涓嬭浇鍦板潃\n timeout: 1000 * 30,\n //30绉掕秴鏃舵椂闂碶n success: function success(downloadResult) {\n //涓嬭浇鎴愬姛\n __f__(\"log\", downloadResult, \" at pages/home/home.vue:786\");\n that.showdownLine = false;\n uni.hideLoading();\n if (downloadResult.statusCode == 200) {\n uni.showModal({\n title: '',\n content: '鏇存柊鎴愬姛锛岀‘瀹氱幇鍦ㄩ噸鍚悧锛�',\n confirmText: '閲嶅惎',\n confirmColor: '#EE8F57',\n success: function success(res) {\n if (res.confirm == true) {\n plus.runtime.install(\n //瀹夎\n downloadResult.tempFilePath, {\n force: true\n }, function (res) {\n utils.showToast('鏇存柊鎴愬姛锛岄噸鍚腑');\n plus.runtime.restart();\n });\n }\n }\n });\n } else {\n uni.hideLoading();\n that.showdownLine = false;\n uni.showToast({\n title: '璇峰厛涓婁紶瀹夎鍖�',\n icon: 'error'\n });\n }\n },\n fail: function fail(err) {\n uni.hideLoading();\n that.showdownLine = false;\n that.$u.toast(downloadResult.errMsg);\n },\n complete: function complete(com) {\n __f__(\"log\", com, \" at pages/home/home.vue:825\");\n }\n });\n\n // 涓嬭浇杩涘害\n downloadTask.onProgressUpdate(function (res) {\n that.downloadNum = res.progress;\n __f__(\"log\", '涓嬭浇杩涘害' + that.downloadNum, \" at pages/home/home.vue:832\");\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiaG9tZVZpZXdTaG93IiwiaW5mb1ZpZXdTaG93IiwiZXJyb3JJbmZvVmlld1Nob3ciLCJob21lTW9kZSIsImluZm9Nb2RlIiwiZXJyb3JJbmZvTW9kZSIsImJhc2VJbmZvIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZFByIiwidXNlZCIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImR1cmF0aW9uIiwiY2FsZW5kYXIiLCJyaW5nT3B0cyIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwiZWplY3RTaG93IiwiYmFzZUlQIiwiYmFzZVBvcnQiLCJiYXNlTGVkSWQiLCJiYXNlVXJsIiwiaW5mb1R5cGUiLCJpbmZvVGV4dCIsInRpdGxlIiwic3RhTm8iLCJtYXRuciIsIm1ha254Iiwic3BlY3MiLCJjb3VudCIsImVycm9yIiwiYmFyY29kZSIsInN3aXBlckxpc3QiLCJ0aW1lT3V0IiwidGltZXMiLCJjdXJyRGF0ZSIsImxvY0xpc3QiLCJvbGRIb3VycyIsIm9sZE1pbiIsInNvY2tldENsaWVudCIsInZlcnNpb24iLCJzb2NrZXRVcmwiLCJtc2dUeXBlIiwiZmlsZW5hbWUiLCJkaWFsb2dDb250ZW50Iiwid21zVXJsIiwid21zUG9ydCIsInN3aXRjaERlYm91bmNlVGltZXIiLCJ2aWV3U3dpdGNoSW5Qcm9ncmVzcyIsIm9uU2hvdyIsInBsdXMiLCJtb3VudGVkIiwidGhhdCIsImNyZWF0ZWQiLCJvbkxvYWQiLCJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJtZXRob2RzIiwiZ2V0SXAiLCJpcEV0aCIsImlwV2lmaSIsImlwT3RoZXIiLCJpcCIsInVuaVdlYlNvY2tldCIsImhlYXJ0YmVhdEludGVydmFsIiwicmVjb25uZWN0SW50ZXJ2YWwiLCJtYXhSZWNvbm5lY3RBdHRlbXB0cyIsIm9uTWVzc2FnZSIsIm9uT3BlbiIsIm9uRXJyb3IiLCJvbkNsb3NlIiwib25SZWNvbm5lY3QiLCJzaG93RGF0ZSIsImdldERhdGVGb3JtYXQiLCJkYXRlIiwiZ2V0U2VydmVyRGF0YSIsImNvbnRyb2xsZXIiLCJjbGVhclRpbWVvdXQiLCJwZXJmb3JtVmlld1N3aXRjaCIsInN3aXRjaEFjdGlvbiIsInNob3dIb21lVmlldyIsInNob3dJbmZvVmlldyIsInNob3dFcnJvclZpZXciLCJlamVjdGVkIiwiZWplY3RDbG9zZSIsImVqZWN0Q29uZmlybSIsInVuaSIsImdldFZlcnNpb24iLCJzdWNjZXNzIiwiQW5kcm9pZENoZWNrVXBkYXRlIiwiZ2V0VXBkYXRlVmVyc2lvbiIsInVybCIsIm1ldGhvZCIsImljb24iLCJwb3NpdGlvbiIsImRpYWxvZ0NvbmZpcm0iLCJkaWFsb2dDbG9zZSIsImRvd25XZ3QiLCJ0aW1lb3V0IiwiY29udGVudCIsImNvbmZpcm1UZXh0IiwiY29uZmlybUNvbG9yIiwiZG93bmxvYWRSZXN1bHQiLCJmb3JjZSIsInV0aWxzIiwiZmFpbCIsImNvbXBsZXRlIiwiZG93bmxvYWRUYXNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBMFNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTs7SUFFQUM7SUFFQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQUM7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7RUFFQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQUQ7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQTtFQUNBO0VBQ0FFO0lBQUE7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQUE7TUFDQUM7UUFDQU47TUFDQTtJQUVBOztJQUVBO0lBQ0E7TUFFQTtRQUNBO1FBQ0FBO1FBQ0FBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTs7RUFDQU87SUFDQUM7TUFDQTtNQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtjQUNBO2NBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7a0JBQ0E7b0JBQ0FDO2tCQUNBO29CQUNBQztrQkFDQTtvQkFDQUM7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QXRDO2tCQUFBO2tCQUNBb0Q7b0JBQ0FDO2tCQUNBLEdBQ0E7b0JBQ0FDO29CQUNBdEQ7a0JBQ0EsRUFDQTtnQkFDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBb0M7WUFDQWxDO1lBQ0FrQztjQUNBOUQ7Y0FDQXFFO1lBQ0E7VUFDQTtRQUNBO1FBQ0FZO1VBQ0FuQjtVQUNBbEM7VUFDQUE7UUFDQTtRQUNBc0Q7VUFFQTtRQUNBO01BQ0E7O01BRUE7TUFDQUM7UUFDQXZEO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7QUFFQTtBQUFBLDJCIiwiZmlsZSI6IjExNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJob21lTW9kZVwiIDpzaG93PVwiaG9tZVZpZXdTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaG9tZS12aWV3XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0XHQ8dGV4dD7mmbrog73lpKflsY/mmL7npLrns7vnu588L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7IGNhbGVuZGFyIH19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidmVyc2lvblwiPlY6e3sgdmVyc2lvbiB9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li76KeG5Zu+IC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibWFpblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW0tYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7mmbrog73lpKflsY/mmL7npLrns7vnu588L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPkludGVsbGlnZW50IExhcmdlU2NyZWVuIERpc3BsYXkgU3lzdGVtPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7ku5PlupPmlbDmja48L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPndhcmVob3VzZSBkYXRhPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltZy1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlO2Rpc3BsYXk6IGZsZXg7XCIgdi1mb3I9XCIoaXRlbSwgaSkgaW4gbG9jTGlzdFwiIDprZXk9XCJpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyO2FsaWduLWl0ZW1zOiBjZW50ZXI7d2lkdGg6IDQ4JTsgZm9udC1zaXplOiAxLjN2dztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx054mp5paZ56CBOiB7eyBpdGVtLm1hdG5yIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjthbGlnbi1pdGVtczogY2VudGVyO3dpZHRoOiA0OCU7IGZvbnQtc2l6ZTogMS4zdnc7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOaVsOmHjzoge3sgaXRlbS5tYXRuckNvdW50IH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3puS+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5bqT5L2N5L2/55So546HPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+RVFVSVBNRU5UIFVTQUdFIFRISVMgTU9OVEg8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOeZvuWIhuavlCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO3JpZ2h0OiAxdnc7dGV4dC1hbGlnbjogcmlnaHQ7XCIgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPnt7IGJhc2VJbmZvLnVzZWRQciB9fSU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+5ZCM5q+U5LiK5pyIICsgNSU8L3RleHQ+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiAxMDAlO2FsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O3Bvc2l0aW9uOiByZWxhdGl2ZTtmb250LXNpemU6IDF2d1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g6L+b5bqm5p2hIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO3Bvc2l0aW9uOiByZWxhdGl2ZTttYXJnaW4tdG9wOiA1JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicHJvZ3Jlc3NCYXJcIiBzdHlsZT1cIndpZHRoOiA4MCU7aGVpZ2h0OiAydnc7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicHJvZ3Jlc3NcIiA6c3R5bGU9XCInd2lkdGg6JyArIGJhc2VJbmZvLnVzZWRQciArICclJ1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtyaWdodDogMDtmb250LXNpemU6IDIuNXZ3O2NvbG9yOiAjRkY1NzIyOztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgYmFzZUluZm8udXNlZCB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM1JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDmipjnur/lm74gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuWFpeWHuuW6k+e7n+iuoTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5PUkRFUiBTVEFUSVNUSUNTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g55m+5YiG5q+UIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8cWl1bi1kYXRhLWNoYXJ0cyB0eXBlPVwibGluZVwiIDpjaGFydERhdGE9XCJjaGFydHNEYXRhTGluZTFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDQzJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPlrZjnsbvlnos8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+SU5DT01FIERBVEU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtZW5kO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7ku4rlpKk8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5Ub2RheTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3gtcmluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJyaW5nXCIgOm9wdHM9XCJ7IGxlZ2VuZDogeyBwb3NpdGlvbjogJ2JvdHRvbScgfSB9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDplb3B0cz1cInJpbmdPcHRzXCIgOmNoYXJ0RGF0YT1cImNoYXJ0c0RhdGFQaWUyXCIgOmVjaGFydHNINT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0OmVjaGFydHNBcHA9XCJ0cnVlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93IHN1Yi1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2cxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7XCI+5Zyo5bqTPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7Zm9udC1zaXplOiAydnc7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGJhc2VJbmZvLnN0b2NrQ291bnQgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBzdWItaW5mb1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMnZoO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9mMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O1wiPuepuuW6kzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O2ZvbnQtc2l6ZTogMnZ3O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBiYXNlSW5mby5lbXB0eUNvdW50IH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3cgc3ViLWluZm9cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDJ2aDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztcIj7plIHlrpo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztmb250LXNpemU6IDJ2dztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgYmFzZUluZm8ubm9uZUNvdW50IH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDIlO1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAxOCU7ZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDthbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogNTAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzdHlsZT1cImhlaWdodDogMTAwJTtcIiBzcmM9XCIuLi8uLi9zdGF0aWMvaW1nL2xvZ28tYmFpLnBuZ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXRyYW5zaXRpb24+XHJcblx0XHQ8IS0tIOWFqOadvy/mi6Pmlpnkv6Hmga8gLS0+XHJcblx0XHQ8dW5pLXRyYW5zaXRpb24gOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6bW9kZS1jbGFzcz1cImluZm9Nb2RlXCIgOnNob3c9XCJpbmZvVmlld1Nob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHRcdDx0ZXh0Pnt7IGluZm9UZXh0LnRpdGxlIH19PC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaXpeWOhiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWUtdG9vbHNcIj57eyBjYWxlbmRhciB9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li75L2TIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1tYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tYm94XCI+XHJcblx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIOaWh+acrOWuueWZqCAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSBoZWFkIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzd2lwZXItaGVhZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+5omY55uY56CBOiB7eyBpbmZvVGV4dC5iYXJjb2RlIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAyMCU7XCI+5bel5L2c5Y+3OiB7eyBpbmZvVGV4dC53b3JrTm8gfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDMwJTtcIj7mupDlupPkvY06IHt7IGluZm9UZXh0LnNvdXJjZUxvY05vIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAyMCU7XCI+55uu5qCH56uZOiB7eyBpbmZvVGV4dC5zdGFObyB9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gYm9keSAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3dpcGVyLWJvZHlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHN3aXBlciBjbGFzcz1cInN3aXBlci1ib2R5LW1haW5cIiB2ZXJ0aWNhbD1cInRydWVcIiBkaXNwbGF5LW11bHRpcGxlLWl0ZW1zPVwiMVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2lyY3VsYXI9XCJ0cnVlXCIgOmF1dG9wbGF5PVwidHJ1ZVwiIDppbnRlcnZhbD1cIjMwMDBcIiA6ZHVyYXRpb249XCIyMDAwXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHN3aXBlci1pdGVtIGNsYXNzPVwic3dpcGVyLWl0ZW1cIiB2LWZvcj1cIihpdGVtLCBpKSBpbiBzd2lwZXJMaXN0XCIgOmtleT1cImlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+e3sgaSArIDEgfX0gLyB7eyBzd2lwZXJMaXN0Lmxlbmd0aCB9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+54mp5paZ57yW56CBOiB7eyBpdGVtLm1hdG5yIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7lkI3np7A6IHt7IGl0ZW0ubWFrbnggfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA1MCU7IGZvbnQtc2l6ZTogM3Z3O1wiPuinhOagvDoge3sgaXRlbS5zcGVjcyB9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+5om55qyhOiB7eyBpdGVtLmJhdGNoIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7plIDllK7ljZXlj7c6IHt7IGl0ZW0ub3JkZXJObyB9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+5a6i5oi35ZCN56ewOiB7eyBpdGVtLmN1c3RvbWVyIH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7mlbDph486IHt7IGl0ZW0uY291bnQgfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zd2lwZXItaXRlbT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9zd2lwZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdDwhLS0g5byC5bi45L+h5oGvIC0tPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJlcnJvckluZm9Nb2RlXCIgOnNob3c9XCJlcnJvckluZm9WaWV3U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImVycm9yLWluZm8tdmlld1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHRleHQ+e3sgaW5mb1RleHQudGl0bGUgfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7IGNhbGVuZGFyIH19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDkuLvkvZMgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvLW1haW5cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1ib3hcIj5cclxuXHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1ib3gtdGV4dFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbCBpbmZvLWJveC10ZXh0LWl0ZW1cIj57eyBpbmZvVGV4dC5lcnJvciB9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDoh6rlrprkuYnlvLnlh7rlsYIgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LW1hc2tcIiB2LXNob3c9XCJlamVjdFNob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtdGl0bGVcIj7kv67mlLkgLyDphY3nva48L3ZpZXc+XHJcblx0XHRcdFx0PHNjcm9sbC12aWV3IHNjcm9sbC15IGNsYXNzPVwiZWplY3QtaW5wdXRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5pcO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlSVBcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPldjc3BvcnTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZVBvcnRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPldjc1VybO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlVXJsXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5XbXNwb3J077yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIndtc1BvcnRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPldtc1VybO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJ3bXNVcmxcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPmxlZElk77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VMZWRJZFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9zY3JvbGwtdmlldz5cclxuXHRcdFx0XHQ8IS0tIGJ1dHRvbiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LWJ1dHRvblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q2xvc2VcIj7lj5Yg5raIPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q29uZmlybVwiPuehriDorqQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDmj5DnpLrnqpfnpLrkvosgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwidXBWZXJzaW9uXCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIDp0eXBlPVwibXNnVHlwZVwiIHRpdGxlPVwi6YCa55+lXCIgOmNvbnRlbnQ9XCJkaWFsb2dDb250ZW50XCIgQGNvbmZpcm09XCJkaWFsb2dDb25maXJtXCJcclxuXHRcdFx0XHRcdEBjbG9zZT1cImRpYWxvZ0Nsb3NlXCI+PC91bmktcG9wdXAtZGlhbG9nPlxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHN0eWxlPVwiY29sb3I6ICNGRkY7cG9zaXRpb246IGZpeGVkO2JvdHRvbTogMTBweDtsZWZ0OiAxMHB4O1wiIHYtc2hvdz1cInRpbWVPdXRcIj5cclxuXHRcdFx06L+e5o6l6LaF5pe277yM5q2j5Zyo6YeN5paw5bu656uL6ZO+5o6lOjoge3sgdGltZXMgfX1cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQ+XHJcbmltcG9ydCBXZWJTb2NrZXRVdGlsIGZyb20gJy4vdW5pV2ViU29ja2V0JztcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRob21lVmlld1Nob3c6IHRydWUsXHJcblx0XHRcdGluZm9WaWV3U2hvdzogZmFsc2UsXHJcblx0XHRcdGVycm9ySW5mb1ZpZXdTaG93OiBmYWxzZSxcclxuXHRcdFx0aG9tZU1vZGU6IFtdLFxyXG5cdFx0XHRpbmZvTW9kZTogW10sXHJcblx0XHRcdGVycm9ySW5mb01vZGU6IFtdLFxyXG5cdFx0XHRiYXNlSW5mbzoge1xyXG5cdFx0XHRcdHhEaXN0YW5jZTogMSxcclxuXHRcdFx0XHR5RGlzdGFuY2U6IDIsXHJcblx0XHRcdFx0eER1cmF0aW9uOiAzLFxyXG5cdFx0XHRcdHlEdXJhdGlvbjogNCxcclxuXHRcdFx0XHR1c2VkUHI6IDUwLFxyXG5cdFx0XHRcdHVzZWQ6IDM1MzcsXHJcblx0XHRcdFx0c3RvY2tDb3VudDogJycsXHJcblx0XHRcdFx0ZW1wdHlDb3VudDogJycsXHJcblx0XHRcdFx0bm9uZUNvdW50OiAnJyxcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhcnRzRGF0YToge1xyXG5cdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcImNhdGVnb3JpZXNcIjogW10sXHJcblx0XHRcdFx0XHRcInNlcmllc1wiOiBbXVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJQaWVcIjoge1xyXG5cdFx0XHRcdFx0XCJzZXJpZXNcIjogW3tcclxuXHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHR9XVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH0sXHJcblx0XHRcdGR1cmF0aW9uOiAzMDAsXHJcblx0XHRcdGNhbGVuZGFyOiAnJyxcclxuXHRcdFx0cmluZ09wdHM6IHt9LFxyXG5cdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxyXG5cdFx0XHRjaGFydHNEYXRhUGllMjoge30sXHJcblx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXHJcblx0XHRcdGJhc2VJUDogJycsXHJcblx0XHRcdGJhc2VQb3J0OiAnJyxcclxuXHRcdFx0YmFzZUxlZElkOiAnJyxcclxuXHRcdFx0YmFzZVVybDogJycsXHJcblx0XHRcdGluZm9UeXBlOiAwLFxyXG5cdFx0XHRpbmZvVGV4dDoge1xyXG5cdFx0XHRcdHRpdGxlOiAnJyxcclxuXHRcdFx0XHRzdGFObzogXCJcIixcclxuXHRcdFx0XHRtYXRucjogXCJcIixcclxuXHRcdFx0XHRtYWtueDogXCJcIixcclxuXHRcdFx0XHRzcGVjczogXCJcIixcclxuXHRcdFx0XHRjb3VudDogXCJcIixcclxuXHRcdFx0XHRlcnJvcjogXCJcIixcclxuXHRcdFx0XHRiYXJjb2RlOiBcIlwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHN3aXBlckxpc3Q6IFtdLFxyXG5cdFx0XHR0aW1lT3V0OiBmYWxzZSxcclxuXHRcdFx0dGltZXM6IDAsXHJcblx0XHRcdGN1cnJEYXRlOiAnJyxcclxuXHRcdFx0bG9jTGlzdDogW10sXHJcblx0XHRcdG9sZEhvdXJzOiAnJyxcclxuXHRcdFx0b2xkTWluOiAnJyxcclxuXHRcdFx0c29ja2V0Q2xpZW50OiBudWxsLFxyXG5cdFx0XHR2ZXJzaW9uOiAnJyxcclxuXHRcdFx0c29ja2V0VXJsOiAnJyxcclxuXHRcdFx0bXNnVHlwZTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRmaWxlbmFtZTogJycsXHJcblx0XHRcdGRpYWxvZ0NvbnRlbnQ6ICcnLFxyXG5cdFx0XHR3bXNVcmw6ICcnLFxyXG5cdFx0XHR3bXNQb3J0OiAnJyxcclxuXHRcdFx0c3dpdGNoRGVib3VuY2VUaW1lcjogbnVsbCxcclxuXHRcdFx0dmlld1N3aXRjaEluUHJvZ3Jlc3M6IGZhbHNlXHJcblx0XHR9XHJcblx0fSxcclxuXHRvblNob3coKSB7XHJcblx0XHQvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG5cdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXHJcblx0XHRwbHVzLm5hdmlnYXRvci5zZXRGdWxsc2NyZWVuKHRydWUpXHJcblx0XHQvLyAjZW5kaWZcclxuXHRcdHRoaXMuZ2V0VmVyc2lvbigpXHJcblx0XHR2YXIgaXAgPSB0aGlzLmdldElwKCk7XHJcblx0XHRjb25zb2xlLmxvZyhpcClcclxuXHR9LFxyXG5cdG1vdW50ZWQoKSB7XHJcblx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XHJcblx0XHRjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xyXG5cdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XHJcblx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xyXG5cdFx0Y29uc3QgUFJPSiA9IHVuaS5nZXRTdG9yYWdlU3luYygnVVBST0onKTtcclxuXHRcdGNvbnN0IFdNU1VSTCA9IHVuaS5nZXRTdG9yYWdlU3luYygnd21zVXJsJyk7XHJcblx0XHRjb25zdCBXTVNQT1JUID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3bXNQb3J0Jyk7XHJcblx0XHR0aGF0LmJhc2VVcmwgPSBQUk9KXHJcblx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxyXG5cdFx0dGhhdC5iYXNlTGVkSWQgPSBCYXNlTGVkSWRcclxuXHRcdHRoYXQuYmFzZVBvcnQgPSBCYXNlUG9ydFxyXG5cdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcclxuXHRcdHRoYXQud21zVXJsID0gV01TVVJMXHJcblx0XHR0aGF0Lndtc1BvcnQgPSBXTVNQT1JUXHJcblxyXG5cdH0sXHJcblx0Y3JlYXRlZCgpIHtcclxuXHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcclxuXHRcdGNvbnN0IEJhc2VMZWRJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUxlZElkJyk7XHJcblx0XHRjb25zdCBCYXNlUG9ydCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnKTtcclxuXHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XHJcblx0XHRjb25zdCBQUk9KID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdVUFJPSicpO1xyXG5cdFx0Y29uc3QgV01TVVJMID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3bXNVcmwnKTtcclxuXHRcdGNvbnN0IFdNU1BPUlQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dtc1BvcnQnKTtcclxuXHRcdHRoYXQuYmFzZVVybCA9IFBST0pcclxuXHRcdHRoYXQuYmFzZUlQID0gQmFzZUlQXHJcblx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG5cdFx0dGhhdC5iYXNlUG9ydCA9IEJhc2VQb3J0XHJcblx0XHR0aGF0LmJhc2VDcm5JZCA9IEJhc2VDcm5JZFxyXG5cdFx0dGhhdC53bXNVcmwgPSBXTVNVUkxcclxuXHRcdHRoYXQud21zUG9ydCA9IFdNU1BPUlRcclxuXHRcdHRoYXQudW5pV2ViU29ja2V0KCk7XHJcblx0XHQvLyB0aGF0LndlYlNvY2tlckluaXQoKVxyXG5cdH0sXHJcblx0b25Mb2FkKCkge1xyXG5cdFx0c2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmdldFNlcnZlckRhdGEoKVxyXG5cdFx0XHR0aGlzLmNvbnRyb2xsZXIoKVxyXG5cdFx0fSwgMTAwMClcclxuXHJcblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHBsdXMucnVudGltZS5yZXN0YXJ0KCk7XHJcblx0XHRcdH0sIDEwMClcclxuXHJcblx0XHR9LCAxMDAwICogNjAgKiA2MCAqIDQpXHJcblxyXG5cdFx0Ly8g5q+P5bCP5pe26Kem5Y+R5LiA5qyh5Z6D5Zy+5Zue5pS2XHJcblx0XHRjb25zdCBtZW1vcnlDbGVhbmVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblxyXG5cdFx0XHRpZiAocGx1cy5vcy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhbmRyb2lkJykge1xyXG5cdFx0XHRcdC8vIOW8uuWItuinpuWPkSBHQ1xyXG5cdFx0XHRcdHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnamF2YS5sYW5nLlN5c3RlbScpO1xyXG5cdFx0XHRcdHBsdXMuYW5kcm9pZC5pbnZva2UoJ2phdmEubGFuZy5TeXN0ZW0nLCAnZ2MnKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5omL5Yqo6Kem5Y+RIEdDJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8g5riF55CG5LiN5YaN6ZyA6KaB55qE5aSn5Z6L5pWw5o2u5a+56LGhXHJcblx0XHRcdGlmICh0aGlzLm9sZERhdGEgJiYgdGhpcy5vbGREYXRhLmxlbmd0aCA+IDEwMCkge1xyXG5cdFx0XHRcdHRoaXMub2xkRGF0YSA9IFtdO1xyXG5cdFx0XHR9XHJcblx0XHR9LCAzMDAwMCAqIDEwKTsgLy8g5q+P5bCP5pe25omn6KGM5LiA5qyhXHJcblx0fSxcclxuXHRtZXRob2RzOiB7XHJcblx0XHRnZXRJcCgpIHtcclxuXHRcdFx0dmFyIGlwID0gbnVsbFxyXG5cdFx0XHRpZiAocGx1cy5vcy5uYW1lID09PSBcIkFuZHJvaWRcIikge1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRjb25zdCBJbmV0QWRkcmVzcyA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0LkluZXRBZGRyZXNzXCIpO1xyXG5cdFx0XHRcdFx0Y29uc3QgTmV0d29ya0ludGVyZmFjZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0Lk5ldHdvcmtJbnRlcmZhY2VcIik7XHJcblx0XHRcdFx0XHRjb25zdCBDb2xsZWN0aW9ucyA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEudXRpbC5Db2xsZWN0aW9uc1wiKTtcclxuXHJcblx0XHRcdFx0XHRsZXQgaW50ZXJmYWNlcyA9IE5ldHdvcmtJbnRlcmZhY2UuZ2V0TmV0d29ya0ludGVyZmFjZXMoKTtcclxuXHRcdFx0XHRcdGxldCBlbiA9IENvbGxlY3Rpb25zLmxpc3QoaW50ZXJmYWNlcyk7IC8vIEphdmEgQXJyYXlMaXN0XHJcblx0XHRcdFx0XHRsZXQgaXBFdGggPSBudWxsOyAvLyDmnInnur9cclxuXHRcdFx0XHRcdGxldCBpcFdpZmkgPSBudWxsOyAvLyBXaS1GaVxyXG5cdFx0XHRcdFx0bGV0IGlwT3RoZXIgPSBudWxsOyAvLyDlhZzlupVcclxuXHRcdFx0XHRcdGxldCBzaXplID0gcGx1cy5hbmRyb2lkLmludm9rZShlbiwgXCJzaXplXCIpO1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0bGV0IGludGYgPSBwbHVzLmFuZHJvaWQuaW52b2tlKGVuLCBcImdldFwiLCBpKTtcclxuXHRcdFx0XHRcdFx0bGV0IG5hbWUgPSBwbHVzLmFuZHJvaWQuaW52b2tlKGludGYsIFwiZ2V0TmFtZVwiKTsgLy8gZXRoMCAvIHdsYW4wIC8gbG8g562JXHJcblx0XHRcdFx0XHRcdGxldCBlbnVtSXBBZGRyID0gcGx1cy5hbmRyb2lkLmludm9rZShpbnRmLCBcImdldEluZXRBZGRyZXNzZXNcIik7XHJcblx0XHRcdFx0XHRcdGxldCBlbnVtTGlzdCA9IENvbGxlY3Rpb25zLmxpc3QoZW51bUlwQWRkcik7XHJcblx0XHRcdFx0XHRcdGxldCBsaXN0U2l6ZSA9IHBsdXMuYW5kcm9pZC5pbnZva2UoZW51bUxpc3QsIFwic2l6ZVwiKTtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBsaXN0U2l6ZTsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGluZXRBZGRyZXNzID0gcGx1cy5hbmRyb2lkLmludm9rZShlbnVtTGlzdCwgXCJnZXRcIiwgaik7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFwbHVzLmFuZHJvaWQuaW52b2tlKGluZXRBZGRyZXNzLCBcImlzTG9vcGJhY2tBZGRyZXNzXCIpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgaG9zdEFkZHJlc3MgPSBwbHVzLmFuZHJvaWQuaW52b2tlKGluZXRBZGRyZXNzLCBcImdldEhvc3RBZGRyZXNzXCIpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8g5Y+q5Y+WIElQdjRcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChob3N0QWRkcmVzcy5pbmRleE9mKFwiOlwiKSA9PT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKG5hbWUuc3RhcnRzV2l0aChcImV0aFwiKSAmJiAhaXBFdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpcEV0aCA9IGhvc3RBZGRyZXNzO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG5hbWUuc3RhcnRzV2l0aChcIndsYW5cIikgJiYgIWlwV2lmaSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlwV2lmaSA9IGhvc3RBZGRyZXNzO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCFpcE90aGVyKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXBPdGhlciA9IGhvc3RBZGRyZXNzO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpcCA9IGlwRXRoIHx8IGlwV2lmaSB8fCBpcE90aGVyIHx8IG51bGw7XHJcblx0XHRcdFx0XHRyZXR1cm4gaXA7XHJcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLojrflj5ZJUOWksei0pe+8mlwiLCBlKTtcclxuXHRcdFx0XHRcdHJldHVybiBpcDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIGlwO1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0dW5pV2ViU29ja2V0KCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdHRoYXQuY29tbW9uVXJsID0gdGhhdC5iYXNlSVAgKyAnOicgKyB0aGF0LmJhc2VQb3J0ICsgXCIvXCIgKyB0aGF0LmJhc2VVcmxcclxuXHRcdFx0dGhhdC5zb2NrZXRVcmwgPSBcIndzOi8vXCIgKyB0aGF0LmNvbW1vblVybCArIFwiL2xlZC9cIiArIHRoYXQuYmFzZUxlZElkXHJcblx0XHRcdC8vIOWIm+W7uldlYlNvY2tldOWunuS+i1xyXG5cdFx0XHR0aGF0LnNvY2tldENsaWVudCA9IG5ldyBXZWJTb2NrZXRVdGlsKHRoYXQuc29ja2V0VXJsLCB7XHJcblx0XHRcdFx0Ly8g5b+D6Lez6Ze06ZqU77yM6buY6K6kMzDnp5JcclxuXHRcdFx0XHRoZWFydGJlYXRJbnRlcnZhbDogMzAwMDAsXHJcblx0XHRcdFx0Ly8g6YeN6L+e6Ze06ZqU77yM6buY6K6kM+enklxyXG5cdFx0XHRcdHJlY29ubmVjdEludGVydmFsOiAzMDAwLFxyXG5cdFx0XHRcdC8vIOacgOWkp+mHjei/nuasoeaVsO+8jC0x6KGo56S65peg6ZmQ6YeN6L+eXHJcblx0XHRcdFx0bWF4UmVjb25uZWN0QXR0ZW1wdHM6IC0xLFxyXG5cdFx0XHRcdC8vIOa2iOaBr+Wbnuiwg1xyXG5cdFx0XHRcdG9uTWVzc2FnZTogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmVzLmRhdGEpO1xyXG5cdFx0XHRcdFx0XHR0aGF0LnNob3dEYXRlKGRhdGEpXHJcblx0XHRcdFx0XHRcdC8vIOWkhOeQhua2iOaBry4uLlxyXG5cdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCfop6PmnpDmtojmga/lpLHotKUnLCBlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8vIOi/nuaOpeaJk+W8gOWbnuiwg1xyXG5cdFx0XHRcdG9uT3BlbjogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lT3V0ID0gZmFsc2VcclxuXHRcdFx0XHRcdHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnV2ViU29ja2V05bey6L+e5o6lJywgcmVzKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8vIOi/nuaOpemUmeivr+Wbnuiwg1xyXG5cdFx0XHRcdG9uRXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignV2ViU29ja2V06ZSZ6K+vJywgZXJyb3IpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Ly8g6L+e5o6l5YWz6Zet5Zue6LCDXHJcblx0XHRcdFx0b25DbG9zZTogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lT3V0ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhhdC50aW1lcyA9IHRoYXQudGltZXMgKyAxXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1dlYlNvY2tldOW3suWFs+mXrScsIHJlcyk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQvLyDph43ov57lm57osINcclxuXHRcdFx0XHRvblJlY29ubmVjdDogKGluZm8pID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGBXZWJTb2NrZXTph43ov54oJHtpbmZvLmF0dGVtcHRzfS8ke2luZm8ubWF4QXR0ZW1wdHN9KWApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHQvLyDlu7rnq4vov57mjqVcclxuXHRcdFx0dGhhdC5zb2NrZXRDbGllbnQuY29ubmVjdCgpO1xyXG5cdFx0fSxcclxuXHRcdHNob3dEYXRlKGRhdGEpIHtcclxuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXNcclxuXHRcdFx0aWYgKGRhdGEudHlwZSA9PT0gXCJkZWZhdWx0XCIpIHtcclxuXHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gZGF0YS5waWVcclxuXHRcdFx0XHR0aGF0LmJhc2VJbmZvLnN0b2NrQ291bnQgPSBkYXRhLnN0b2NrQ3VudFxyXG5cdFx0XHRcdHRoYXQuYmFzZUluZm8uZW1wdHlDb3VudCA9IGRhdGEuZW1wdHlDb3VudFxyXG5cdFx0XHRcdHRoYXQuYmFzZUluZm8ubm9uZUNvdW50ID0gZGF0YS5ub25lQ291bnRcclxuXHRcdFx0XHR0aGF0LmJhc2VJbmZvLnVzZWQgPSBkYXRhLnVzZWRcclxuXHRcdFx0XHR0aGF0LmJhc2VJbmZvLnVzZWRQciA9IGRhdGEudXNlZFByXHJcblxyXG5cdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSwgdGhhdC5nZXREYXRlRm9ybWF0KC0xMCksIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtXHJcblx0XHRcdFx0XHRcdDgpLFxyXG5cdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC03KSwgdGhhdC5nZXREYXRlRm9ybWF0KC02KSwgdGhhdC5nZXREYXRlRm9ybWF0KC01KSwgdGhhdC5nZXREYXRlRm9ybWF0KC00KSxcclxuXHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMiksIHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksIHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxcclxuXHRcdFx0XHRdXHJcblx0XHRcdFx0dGhhdC5jaGFydHNEYXRhLkxpbmUuc2VyaWVzID0gZGF0YS5yb3dzXHJcblx0XHRcdFx0dGhhdC5jYWxlbmRhciA9IGRhdGEueWVhciArIFwi5bm0XCIgKyBkYXRhLm1vbnRoICsgXCLmnIhcIiArIGRhdGEuZGF5ICsgXCLml6UgXCIgKyBkYXRhLmhvdXIgKyBcIjpcIiArIGRhdGEubWludXRlICtcclxuXHRcdFx0XHRcdFwiOlwiICsgZGF0YS5zZWNvbmQgKyBcIiBcIiArIGRhdGEud2Vla1xyXG5cdFx0XHRcdHRoYXQuY3VyckRhdGUgPSBkYXRhLnllYXIgKyBcIi9cIiArIGRhdGEubW9udGggKyBcIi9cIiArIGRhdGEuZGF5XHJcblx0XHRcdFx0dGhhdC5sb2NMaXN0ID0gZGF0YS5pbnZlbnRvcnlEYXRhXHJcblx0XHRcdFx0dGhhdC5vbGRIb3VycyA9IGRhdGEuaG91clxyXG5cdFx0XHRcdHRoYXQub2xkTWluID0gZGF0YS5taW51dGVcclxuXHRcdFx0fSBlbHNlIGlmIChkYXRhLnR5cGUgPT09IFwiZXJyb3JcIikge1xyXG5cdFx0XHRcdGlmIChkYXRhLmVyck1zZyAmJiBkYXRhLmVyck1zZyAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0dmFyIGVycm9ySW5mbyA9IGRhdGEuZXJyTXNnXHJcblx0XHRcdFx0XHRpZiAodGhhdC5pbmZvVHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAzXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuWFtuS7luS/oeaBr1wiXHJcblx0XHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMlxyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCJcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIGlmIChkYXRhLnR5cGUgPT09IFwidGFza1wiKSB7XHJcblx0XHRcdFx0aWYgKGRhdGEudGFza0xpc3QgJiYgZGF0YS50YXNrTGlzdCAhPT0gXCJcIiAmJiBkYXRhLnRhc2tMaXN0Lmxlbmd0aCAhPSAwKSB7XHJcblx0XHRcdFx0XHRpZiAodGhhdC5pbmZvVHlwZSA9PSAyIHx8IHRoYXQuaW5mb1R5cGUgPT0gMykge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyBpbmZvVHlwZTE65Y+q5pyJ5ouj5paZ562J5L+h5oGvXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMVxyXG5cdFx0XHRcdFx0aWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxMDEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfmi6Pmlpnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxMDcpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5YWl5bqTJ1xyXG5cdFx0XHRcdFx0fSBlbHNlIGlmIChkYXRhLnRhc2tMaXN0WzBdLmlvVHlwZSA9PT0gMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlhaXlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSAxMDQpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflubbmnb/lh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEudGFza0xpc3RbMF0uaW9UeXBlID09PSA1NCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LnRpdGxlID0gJ+W5tuadv+WFpeW6kydcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuYmFyY29kZSA9IGRhdGEudGFza0xpc3RbMF0uYmFyY29kZVxyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC53b3JrTm8gPSBkYXRhLnRhc2tMaXN0WzBdLndvcmtOb1xyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC5zb3VyY2VMb2NObyA9IGRhdGEudGFza0xpc3RbMF0uc291cmNlTG9jTm9cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuc3RhTm8gPSBkYXRhLnRhc2tMaXN0WzBdLnN0YU5vXHJcblx0XHRcdFx0XHR0aGF0LnN3aXBlckxpc3QgPSBkYXRhLnRhc2tMaXN0WzBdLm1hdER0b3NcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRnZXREYXRlRm9ybWF0KHZhbHVlKSB7XHJcblx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUodGhpcy5jdXJyRGF0ZSk7IC8vIOiOt+WPluW9k+WJjeaXtumXtFxyXG5cdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7IC8vIOiuvue9ruWkqeaVsCAtMSDlpKlcclxuXHRcdFx0dmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxXHJcblx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuXHRcdFx0dmFyIG5ld0RhdGUgPSBtICsgJy0nICsgZFxyXG5cdFx0XHRyZXR1cm4gbmV3RGF0ZVxyXG5cdFx0fSxcclxuXHJcblx0XHRnZXRTZXJ2ZXJEYXRhKCkge1xyXG5cdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxyXG5cdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJ0c0RhdGEuUGllKSlcclxuXHRcdH0sXHJcblx0XHQvLyDmjqfliLblmahcclxuXHRcdGNvbnRyb2xsZXIoKSB7XHJcblx0XHRcdC8vIOmYsuaKluWkhOeQhu+8jOmBv+WFjemikee5geWIh+aNolxyXG5cdFx0XHRpZiAodGhpcy5zd2l0Y2hEZWJvdW5jZVRpbWVyKSB7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuc3dpdGNoRGVib3VuY2VUaW1lcilcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnN3aXRjaERlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnBlcmZvcm1WaWV3U3dpdGNoKClcclxuXHRcdFx0fSwgMTAwKVxyXG5cdFx0fSxcclxuXHJcblx0XHRwZXJmb3JtVmlld1N3aXRjaCgpIHtcclxuXHRcdFx0Ly8g5L2/55So54q25oCB5py65qih5byP566A5YyW6KeG5Zu+5YiH5o2iXHJcblx0XHRcdGNvbnN0IHZpZXdTdGF0ZXMgPSB7XHJcblx0XHRcdFx0MDogKCkgPT4gdGhpcy5zaG93SG9tZVZpZXcoKSxcclxuXHRcdFx0XHQxOiAoKSA9PiB0aGlzLnNob3dJbmZvVmlldygpLFxyXG5cdFx0XHRcdDI6ICgpID0+IHRoaXMuc2hvd0Vycm9yVmlldygpLFxyXG5cdFx0XHRcdDM6ICgpID0+IHRoaXMuc2hvd0Vycm9yVmlldygpXHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3Qgc3dpdGNoQWN0aW9uID0gdmlld1N0YXRlc1t0aGlzLmluZm9UeXBlXVxyXG5cdFx0XHRpZiAoc3dpdGNoQWN0aW9uICYmICF0aGlzLnZpZXdTd2l0Y2hJblByb2dyZXNzKSB7XHJcblx0XHRcdFx0dGhpcy52aWV3U3dpdGNoSW5Qcm9ncmVzcyA9IHRydWVcclxuXHRcdFx0XHRzd2l0Y2hBY3Rpb24oKVxyXG5cdFx0XHRcdC8vIOe7n+S4gOeahOWIh+aNouWujOaIkOWkhOeQhlxyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy52aWV3U3dpdGNoSW5Qcm9ncmVzcyA9IGZhbHNlXHJcblx0XHRcdFx0fSwgdGhpcy5kdXJhdGlvbiArIDEwMClcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0XHRzaG93SG9tZVZpZXcoKSB7XHJcblx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuaW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0dGhpcy5lcnJvckluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdHRoaXMuaG9tZU1vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0fSwgdGhpcy5kdXJhdGlvbilcclxuXHRcdH0sXHJcblxyXG5cdFx0c2hvd0luZm9WaWV3KCkge1xyXG5cdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdH0sIHRoaXMuZHVyYXRpb24pXHJcblx0XHR9LFxyXG5cclxuXHRcdHNob3dFcnJvclZpZXcoKSB7XHJcblx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMuaW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHR0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0fSwgdGhpcy5kdXJhdGlvbilcclxuXHRcdH0sXHJcblx0XHQvLyDphY3nva5cclxuXHRcdGVqZWN0ZWQoKSB7XHJcblx0XHRcdHRoaXMuZWplY3RTaG93ID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8vIOWPlua2iOmFjee9rlxyXG5cdFx0ZWplY3RDbG9zZSgpIHtcclxuXHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdC8vIOehruiupOmFjee9rlxyXG5cdFx0ZWplY3RDb25maXJtKCkge1xyXG5cdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnLCB0aGlzLmJhc2VMZWRJZCk7XHJcblx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnLCB0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlQ3JuSWQnLCB0aGlzLmJhc2VDcm5JZCk7XHJcblx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnVVBST0onLCB0aGlzLmJhc2VVcmwpO1xyXG5cdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dtc1VybCcsIHRoaXMud21zVXJsKTtcclxuXHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3bXNQb3J0JywgdGhpcy53bXNQb3J0KTtcclxuXHJcblx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvL+ajgOa1i+W9k+WJjeW5s+WPsO+8jOWmguaenOaYr+WuieWNk+WImeWQr+WKqOWuieWNk+abtOaWsFxyXG5cdFx0Z2V0VmVyc2lvbigpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHR1bmkuZ2V0U3lzdGVtSW5mbyh7XHJcblx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5wbGF0Zm9ybSA9PSBcImFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHR0aGF0LkFuZHJvaWRDaGVja1VwZGF0ZSgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDojrflj5blvZPliY3niYjmnKzlj7dcclxuXHRcdEFuZHJvaWRDaGVja1VwZGF0ZSgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRwbHVzLnJ1bnRpbWUuZ2V0UHJvcGVydHkocGx1cy5ydW50aW1lLmFwcGlkLCAod2d0aW5mbykgPT4ge1xyXG5cdFx0XHRcdHRoYXQudmVyc2lvbiA9IHdndGluZm8udmVyc2lvbiAvL+WuouaIt+err+eJiOacrOWPt1xyXG5cdFx0XHR9KVxyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGF0LmdldFVwZGF0ZVZlcnNpb24oKVxyXG5cdFx0XHR9LCAxMDApXHJcblx0XHR9LFxyXG5cdFx0Ly8g5qCh6aqM54mI5pysXHJcblx0XHRnZXRVcGRhdGVWZXJzaW9uKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0bGV0IHR5cGUgPSAxXHJcblx0XHRcdGlmICh0aGF0LmJhc2VVcmwgPT0gJ2h0dHA6Ly91bmRlZmluZWQ6dW5kZWZpbmVkL3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCB3bXMgPSAnaHR0cDovLycgKyB0aGF0LmJhc2VJUCArICc6JyArIHRoYXQud21zUG9ydCArIFwiL1wiICsgdGhhdC53bXNVcmxcclxuXHRcdFx0Y29uc29sZS5sb2cod21zKVxyXG5cdFx0XHRsZXQgdXJsID0gd21zICsgJy9hcHBWZXJzaW9uL2NoZWNrVXBkYXRlLycgKyB0aGF0LnZlcnNpb24gKyAnLycgKyB0eXBlXHJcblx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHR1cmw6IHVybCxcclxuXHRcdFx0XHRtZXRob2Q6ICdHRVQnLFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0dmFyIHJlcyA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5maWxlbmFtZSA9IHJlcy5kYXRhLnBhdGhcclxuXHRcdFx0XHRcdFx0dGhhdC5kaWFsb2dDb250ZW50ID0gJ+WPkeeOsOaWsOeJiOacrDonICsgcmVzLmRhdGEudmVyc2lvbiArICcsIOaYr+WQpueri+WNs+abtOaWsCdcclxuXHRcdFx0XHRcdFx0dGhhdC4kcmVmcy51cFZlcnNpb24ub3BlbigpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzLm1zZyxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogJ3RvcCdcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdGRpYWxvZ0NvbmZpcm0oKSB7XHJcblx0XHRcdHRoaXMuJHJlZnMudXBWZXJzaW9uLmNsb3NlKClcclxuXHRcdFx0dGhpcy5kb3duV2d0KClcclxuXHRcdH0sXHJcblx0XHRkaWFsb2dDbG9zZSgpIHtcclxuXHRcdFx0dGhpcy4kcmVmcy51cFZlcnNpb24uY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdGRvd25XZ3QoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0Y29uc3Qgd21zID0gJ2h0dHA6Ly8nICsgdGhhdC5iYXNlSVAgKyAnOicgKyB0aGF0Lndtc1BvcnQgKyBcIi9cIiArIHRoYXQud21zVXJsXHJcblx0XHRcdGNvbnN0IGRvd25sb2FkVXJsID0gd21zICsgXCIvYXBwVmVyc2lvbi9kb3dubG9hZEFwcC9cIiArIHRoYXQuZmlsZW5hbWVcclxuXHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcclxuXHRcdFx0XHR0aXRsZTogJ+abtOaWsOS4reKApuKApidcclxuXHRcdFx0fSlcclxuXHRcdFx0Y29uc3QgZG93bmxvYWRUYXNrID0gdW5pLmRvd25sb2FkRmlsZSh7IC8v5omn6KGM5LiL6L29XHJcblx0XHRcdFx0dXJsOiBkb3dubG9hZFVybCwgLy/kuIvovb3lnLDlnYBcclxuXHRcdFx0XHR0aW1lb3V0OiAxMDAwICogMzAsIC8vMzDnp5LotoXml7bml7bpl7RcclxuXHRcdFx0XHRzdWNjZXNzOiBkb3dubG9hZFJlc3VsdCA9PiB7IC8v5LiL6L295oiQ5YqfXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkb3dubG9hZFJlc3VsdCk7XHJcblx0XHRcdFx0XHR0aGF0LnNob3dkb3duTGluZSA9IGZhbHNlXHJcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHRcdGlmIChkb3dubG9hZFJlc3VsdC5zdGF0dXNDb2RlID09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogJycsXHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDogJ+abtOaWsOaIkOWKn++8jOehruWumueOsOWcqOmHjeWQr+WQl++8nycsXHJcblx0XHRcdFx0XHRcdFx0Y29uZmlybVRleHQ6ICfph43lkK8nLFxyXG5cdFx0XHRcdFx0XHRcdGNvbmZpcm1Db2xvcjogJyNFRThGNTcnLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuY29uZmlybSA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5pbnN0YWxsKCAvL+WuieijhVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRvd25sb2FkUmVzdWx0LnRlbXBGaWxlUGF0aCwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvcmNlOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24gKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dXRpbHMuc2hvd1RvYXN0KCfmm7TmlrDmiJDlip/vvIzph43lkK/kuK0nKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5yZXN0YXJ0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcclxuXHRcdFx0XHRcdFx0dGhhdC5zaG93ZG93bkxpbmUgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogJ+ivt+WFiOS4iuS8oOWuieijheWMhScsXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ2Vycm9yJ1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbDogZXJyID0+IHtcclxuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0dGhhdC5zaG93ZG93bkxpbmUgPSBmYWxzZVxyXG5cdFx0XHRcdFx0dGhhdC4kdS50b2FzdChkb3dubG9hZFJlc3VsdC5lcnJNc2cpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRjb21wbGV0ZTogY29tID0+IHtcclxuXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhjb20pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdC8vIOS4i+i9vei/m+W6plxyXG5cdFx0XHRkb3dubG9hZFRhc2sub25Qcm9ncmVzc1VwZGF0ZShyZXMgPT4ge1xyXG5cdFx0XHRcdHRoYXQuZG93bmxvYWROdW0gPSByZXMucHJvZ3Jlc3NcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5LiL6L296L+b5bqmJyArIHRoYXQuZG93bmxvYWROdW0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblx0fVxyXG5cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuQGltcG9ydCB1cmwoXCJob21lLmNzc1wiKTtcclxuXHJcbi8qIOWIlyAqL1xyXG4uZmxleC1jb2wge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLyog6KGMICovXHJcbi5mbGV4LXJvdyB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuXHR3aWR0aDogMTAwdnc7XHJcblx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwMTYzRTtcclxuXHRjb2xvcjogI2ZmZjtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG59XHJcblxyXG4vKiDkuLvop4blm74gKi9cclxuLmhvbWUtdmlldyB7XHJcblx0d2lkdGg6IDEwMHZ3O1xyXG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5wbmcpO1xyXG5cdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcbn1cclxuXHJcbi5ob21lLXJpZ2h0IHtcclxuXHR3aWR0aDogNTB2dztcclxuXHRoZWlnaHQ6IDg5dmg7XHJcblx0LyogYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOyAqL1xyXG59XHJcblxyXG4uaG9tZS1yaWdodC1ib3gge1xyXG5cdHdpZHRoOiA5OCU7XHJcblx0aGVpZ2h0OiA5OCU7XHJcbn1cclxuXHJcbi5oZWFkIHtcclxuXHR3aWR0aDogMTAwdnc7XHJcblx0aGVpZ2h0OiAxMXZoO1xyXG5cdGZvbnQtc2l6ZTogNHZ3O1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdHRyYW5zZm9ybTogc2NhbGUoMC43KTtcclxufVxyXG5cclxuLnRpbWUtdG9vbHMge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRyaWdodDogMiU7XHJcblx0dG9wOiAyJTtcclxuXHRmb250LXNpemU6IDF2dztcclxuXHR0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XHJcbn1cclxuXHJcbi5idXR0b24tbGVmdCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHR0b3A6IDEuOCU7XHJcblx0bGVmdDogMjEuMyU7XHJcblx0d2lkdGg6IDEzLjUlO1xyXG5cdGhlaWdodDogOC41JTtcclxuXHR0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XHJcbn1cclxuXHJcbi5idXR0b24tcmlnaHQge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0dG9wOiAxLjglO1xyXG5cdGxlZnQ6IDY1JTtcclxuXHR3aWR0aDogMTMuNSU7XHJcblx0aGVpZ2h0OiA4LjUlO1xyXG59XHJcblxyXG4uaW1nLWJveCB7XHJcblx0aGVpZ2h0OiAyM3Z3O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdC8qIGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7ICovXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0Zm9udC1zaXplOiAxdnc7XHJcbn1cclxuXHJcbi5pdGVtLWltZyB7XHJcblx0d2lkdGg6IDUwJTtcclxuXHRtYXJnaW4tdG9wOiA1JTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0LyogYmFja2dyb3VuZC1jb2xvcjogIzAwZmZmZjsgKi9cclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5kaXN0YW5jZSB7fVxyXG5cclxuLml0ZW0taW1nIGltYWdlIHtcclxuXHRoZWlnaHQ6IDV2dztcclxuXHR3aWR0aDogNXZ3O1xyXG59XHJcblxyXG4ucHJvZ3Jlc3NCYXIge1xyXG5cdG1hcmdpbi10b3A6IDklO1xyXG5cdC8qIHdpZHRoOiAxMDAlOyAqL1xyXG5cdGhlaWdodDogMjAlO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7XHJcblx0Ym9yZGVyLXJhZGl1czogNXZ3O1xyXG59XHJcblxyXG4ucHJvZ3Jlc3Mge1xyXG5cdC8qIHdpZHRoOiA5MCU7ICovXHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNGRjU3MjI7XHJcblx0Ym9yZGVyLXJhZGl1czogNXZ3O1xyXG59XHJcblxyXG4uY2hhcnRzLWJveCB7XHJcblx0d2lkdGg6IDgwJTtcclxuXHRoZWlnaHQ6IDI0dmg7XHJcblx0bWFyZ2luLWxlZnQ6IDEwJTtcclxufVxyXG5cclxuLmNoYXJ0cy1ib3gtcmluZyB7XHJcblx0d2lkdGg6IDYwJTtcclxuXHRoZWlnaHQ6IDI0dmg7XHJcblx0LyogYmFja2dyb3VuZC1jb2xvcjogIzAwZmZmZjsgKi9cclxufVxyXG5cclxuLnN1Yi1pbmZvIHtcclxuXHRmb250LXNpemU6IDEuNXZ3O1xyXG59XHJcblxyXG4uc3ViLWluZm8gaW1hZ2Uge1xyXG5cdHdpZHRoOiAzLjV2dztcclxuXHRoZWlnaHQ6IDMuNXZ3O1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4vKiDlhbHnlKggKi9cclxuLm1haW4ge1xyXG5cdHdpZHRoOiAxMDB2dztcclxuXHRoZWlnaHQ6IDg4dmg7XHJcblx0bWFyZ2luLXRvcDogMXZoO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblxyXG59XHJcblxyXG4ubWlhbi1pdGVtIHtcclxuXHR3aWR0aDogNTAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLm1pYW4taXRlbS1ib3gge1xyXG5cdHdpZHRoOiA5OCU7XHJcblx0aGVpZ2h0OiA5OCU7XHJcbn1cclxuXHJcbi5ib3gtaXRlbSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0bWFyZ2luLXRvcDogNCU7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxufVxyXG5cclxuLml0ZW0tdGl0bGUge1xyXG5cdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLnZlcnNpb24ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRsZWZ0OiAxJTtcclxuXHR0b3A6IDElO1xyXG5cdGZvbnQtc2l6ZTogMXZ3O1xyXG5cdHRyYW5zZm9ybTogc2NhbGUoMC44KTtcclxufVxyXG5cclxuLml0ZW0tc3ViVGl0bGUge1xyXG5cdGZvbnQtc2l6ZTogMC41dnc7XHJcblx0dGV4dC1pbmRlbnQ6IDBlbTtcclxufVxyXG5cclxuLml0ZW0tdGV4dCB7XHJcblx0Zm9udC1zaXplOiAxdnc7XHJcblx0dGV4dC1pbmRlbnQ6IDJlbTtcclxuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAzdmg7XHJcbn1cclxuXHJcbi8qIOWFqOadvy/mi6Pmlpnkv6Hmga8gKi9cclxuLmluZm8tdmlldyB7XHJcblx0d2lkdGg6IDEwMHZ3O1xyXG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvYmFja2dyb3VuZC5wbmcpO1xyXG5cdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcbn1cclxuXHJcbi5pbmZvLW1haW4ge1xyXG5cdHdpZHRoOiAxMDB2dztcclxuXHRoZWlnaHQ6IDg4dmg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uaW5mby1ib3gge1xyXG5cdHdpZHRoOiA5OCU7XHJcblx0aGVpZ2h0OiA5OCU7XHJcbn1cclxuXHJcbi8qIOW8guW4uOS/oeaBryAqL1xyXG4uZXJyb3ItaW5mby12aWV3IHtcclxuXHR3aWR0aDogMTAwdnc7XHJcblx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0YmFja2dyb3VuZC1zaXplOiAxMDB2dyAxMDB2aDtcclxufVxyXG5cclxuLyog5by55Ye6OumFjee9ruWMuuWfnyAqL1xyXG4uZWplY3QtbWFzayB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0ei1pbmRleDogOTk5O1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLmVqZWN0IHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDQ1dnc7XHJcblx0aGVpZ2h0OiA0NXZoO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyLXJhZGl1czogMnJlbTtcclxufVxyXG5cclxuLmVqZWN0LXRpdGxlIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDV2aDtcclxuXHRsaW5lLWhlaWdodDogNnZoO1xyXG5cdGZvbnQtc2l6ZTogM3ZoO1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0Y29sb3I6ICM2MDYyNjY7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZWplY3QtaW5wdXQge1xyXG5cdG1hcmdpbi10b3A6IDJ2aDtcclxuXHRoZWlnaHQ6IDI1dmg7XHJcblxyXG5cdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMDE2M0U7ICovXHJcblx0Ojotd2Via2l0LXNjcm9sbGJhciB7XHJcblx0XHRkaXNwbGF5OiBub25lXHJcblx0fVxyXG59XHJcblxyXG4uaXRlbSB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdG1hcmdpbjogMXZoIDAgMCAwO1xyXG5cdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0Y29sb3I6ICMzNjM2MzY7XHJcbn1cclxuXHJcbi5kZXNjIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6IDQwJTtcclxuXHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRjb2xvcjogIzYwNjI2NjtcclxuXHJcbn1cclxuXHJcbi5pbnB1dCB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdHBhZGRpbmctbGVmdDogNXB4O1xyXG5cdHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDN2aDtcclxuXHRib3JkZXI6IDAuMXZoIHNvbGlkICNjZmQ0ZGM7XHJcblx0bWFyZ2luLXJpZ2h0OiAyMCU7XHJcblx0dGV4dC1hbGlnbjogc3RhcnQ7XHJcbn1cclxuXHJcbi5lamVjdC1pbnB1dCBpbnB1dCB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAzdmg7XHJcblx0Zm9udC1zaXplOiAxdnc7XHJcblxyXG5cclxufVxyXG5cclxuLmVqZWN0LWJ1dHRvbiB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRib3R0b206IDA7XHJcblx0aGVpZ2h0OiA2dmg7XHJcblx0bGluZS1oZWlnaHQ6IDZ2aDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxufVxyXG5cclxuLmJ1dHRvbi1pdGVtIHtcclxuXHR3aWR0aDogNTAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRjb2xvcjogIzkwOTM5OTtcclxufVxyXG5cclxuLmJ1dHRvbi1pdGVtOmxhc3QtY2hpbGQge1xyXG5cdGNvbG9yOiAjNjdDMjNBO1xyXG5cclxuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XHJcbn1cclxuXHJcbi5pbmZvLWJveC10ZXh0IHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5pbmZvLWJveC10ZXh0LWl0ZW0ge1xyXG5cdGhlaWdodDogMjAlO1xyXG5cdGZvbnQtc2l6ZTogOHZoO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///117\n"); /***/ }), /* 118 */ @@ -14185,28 +14173,8 @@ eval("module.exports = JSON.parse(\"{\\\"dataInfo2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"鍏ㄦ澘鍑哄簱\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"barcode\\\":\\\"80009901\\\",\\\"matDtos\\\":[{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"brand\\\":\\\"ck11111111111\\\",\\\"number\\\":\\\"100\\\",\\\"weight\\\":\\\"123.568\\\",\\\"matnr\\\":\\\"020101000001\\\",\\\"maknx\\\":\\\"63-90鍨嬪崟绔嬫煴\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"绾㈣壊\\\",\\\"total\\\":200},{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"鏆傚瓨\\\",\\\"total\\\":200},{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"绾㈣壊\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"娴欐睙涓壃\\\",\\\"bz\\\":\\\"17鍙锋\\\",\\\"total\\\":200}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataError2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}},\\\"lineData\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":{\\\"rows\\\":[{\\\"name\\\":\\\"鍏ュ簱鏁伴噺\\\",\\\"data\\\":[0,0,0,0,1,1,0,0,4,4,0,4]},{\\\"name\\\":\\\"鍑哄簱鏁伴噺\\\",\\\"data\\\":[0,0,0,0,0,0,0,0,3,4,0,1]}]}},\\\"pieData\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":{\\\"emptyCount\\\":3582,\\\"noneCount\\\":256,\\\"total\\\":3840,\\\"stockCunt\\\":2,\\\"usedPr\\\":0.1,\\\"used\\\":2,\\\"pie\\\":[{\\\"name\\\":\\\"鍦ㄥ簱\\\",\\\"value\\\":2},{\\\"name\\\":\\\"绌篭\\",\\\"value\\\":3582},{\\\"name\\\":\\\"浣跨敤\\\",\\\"value\\\":0},{\\\"name\\\":\\\"绂佺敤\\\",\\\"value\\\":256}]}},\\\"other\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":{\\\"xDistance\\\":15651,\\\"xSpeed\\\":32704,\\\"zSpeed\\\":32704,\\\"yDistance\\\":15,\\\"yDuration\\\":0,\\\"ySpeed\\\":32704,\\\"xDuration\\\":0,\\\"content\\\":\\\"\\\",\\\"forkPos\\\":1,\\\"isShow\\\":false}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMTkuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///119\n"); /***/ }), -/* 120 */ -/*!***********************************************************!*\ - !*** D:/monitor/Monitor-APP/static/js/WebSocketClient.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebSocketClient = void 0;\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 81));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 83));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 85));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 86));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _dispatcher = __webpack_require__(/*! ./dispatcher */ 121);\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar WebSocketClient = /*#__PURE__*/function (_EventDispatcher) {\n (0, _inherits2.default)(WebSocketClient, _EventDispatcher);\n var _super = _createSuper(WebSocketClient);\n // #socket閾炬帴\n\n // #socket瀹炰緥\n\n // #閲嶈繛娆℃暟\n\n // #鏈�澶ч噸杩炴暟\n\n // #閲嶈繛闂撮殧\n // 10 seconds\n // #鍙戦�佸績璺虫暟鎹棿闅擻n\n // #璁℃椂鍣╥d\n\n // #褰诲簳缁堟ws\n\n // *鏋勯�犲嚱鏁癨n function WebSocketClient(url) {\n var _this;\n (0, _classCallCheck2.default)(this, WebSocketClient);\n _this = _super.call(this);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"url\", '');\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"socket\", null);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"reconnectAttempts\", 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"maxReconnectAttempts\", 20);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"reconnectInterval\", 60000);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"heartbeatInterval\", 1000 * 30);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"heartbeatTimer\", undefined);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"stopWs\", false);\n _this.url = url;\n return _this;\n }\n // >鐢熷懡鍛ㄦ湡閽╁瓙\n (0, _createClass2.default)(WebSocketClient, [{\n key: \"onopen\",\n value: function onopen(callBack) {\n this.addEventListener('open', callBack);\n }\n }, {\n key: \"onmessage\",\n value: function onmessage(callBack) {\n this.addEventListener('message', callBack);\n }\n }, {\n key: \"onclose\",\n value: function onclose(callBack) {\n this.addEventListener('close', callBack);\n }\n }, {\n key: \"onerror\",\n value: function onerror(callBack) {\n this.addEventListener('error', callBack);\n }\n // >娑堟伅鍙戦�乗n }, {\n key: \"send\",\n value: function send(message) {\n if (this.socket && this.socket.readyState === WebSocket.OPEN) {\n this.socket.send({\n data: message\n });\n } else {\n __f__(\"error\", '[WebSocket] 鏈繛鎺�', \" at static/js/WebSocketClient.js:45\");\n }\n }\n\n // !鍒濆鍖栬繛鎺n }, {\n key: \"connect\",\n value: function connect() {\n var _this2 = this;\n if (this.reconnectAttempts === 0) {\n this.log('WebSocket', \"\\u521D\\u59CB\\u5316\\u8FDE\\u63A5\\u4E2D... \".concat(this.url));\n }\n if (this.socket && this.socket.readyState === WebSocket.OPEN) {\n return;\n }\n this.socket = uni.connectSocket({\n url: this.url,\n complete: function complete() {}\n });\n this.socket.onOpen(function (event) {\n _this2.stopWs = false;\n // 閲嶇疆閲嶈繛灏濊瘯鎴愬姛杩炴帴\n _this2.reconnectAttempts = 0;\n // 鍦ㄨ繛鎺ユ垚鍔熸椂鍋滄褰撳墠鐨勫績璺虫娴嬪苟閲嶆柊鍚姩\n _this2.startHeartbeat();\n _this2.log('WebSocket', \"\\u8FDE\\u63A5\\u6210\\u529F,\\u7B49\\u5F85\\u670D\\u52A1\\u7AEF\\u6570\\u636E\\u63A8\\u9001[onopen]... \".concat(_this2.url));\n _this2.dispatchEvent('open', event);\n });\n // !websocket杩炴帴鎴愬姛\n // this.socket.onOpen = event => {\t\t\t\n // this.stopWs = false;\n // // 閲嶇疆閲嶈繛灏濊瘯鎴愬姛杩炴帴\n // this.reconnectAttempts = 0;\n // // 鍦ㄨ繛鎺ユ垚鍔熸椂鍋滄褰撳墠鐨勫績璺虫娴嬪苟閲嶆柊鍚姩\n // this.startHeartbeat();\t\t\t\n // this.log('WebSocket', `杩炴帴鎴愬姛,绛夊緟鏈嶅姟绔暟鎹帹閫乕onopen]... ${this.url}`);\n // this.dispatchEvent('open', event);\n // };\n this.socket.onMessage(function (event) {\n _this2.dispatchEvent('message', event);\n _this2.startHeartbeat();\n });\n // this.socket.onMessage = event => {\n // console.log(event)\n // this.dispatchEvent('message', event);\n // this.startHeartbeat();\n // };\n this.socket.onClose(function (event) {\n if (_this2.reconnectAttempts === 0) {\n _this2.log('WebSocket', \"\\u8FDE\\u63A5\\u65AD\\u5F00[onclose]... \".concat(_this2.url));\n }\n if (!_this2.stopWs) {\n _this2.handleReconnect();\n }\n _this2.dispatchEvent('close', event);\n });\n // this.socket.onClose = event => {\n // if (this.reconnectAttempts === 0) {\n // this.log('WebSocket', `杩炴帴鏂紑[onclose]... ${this.url}`);\n // }\n // if (!this.stopWs) {\n // this.handleReconnect();\n // }\n // this.dispatchEvent('close', event);\n // };\n this.socket.onError(function (event) {\n if (_this2.reconnectAttempts === 0) {\n _this2.log('WebSocket', \"\\u8FDE\\u63A5\\u5F02\\u5E38[onerror]... \".concat(_this2.url));\n }\n if (!_this2.stopWs) {\n _this2.handleReconnect();\n }\n _this2.closeHeartbeat();\n _this2.dispatchEvent('error', event);\n });\n\n // uni.onSocketError((event)=>{\n // \tconsole.log(\"333\")\n // \tif (this.reconnectAttempts === 0) {\n // \t this.log('WebSocket', `杩炴帴寮傚父[onerror]... ${this.url}`);\n // \t}\n // \tif (!this.stopWs) {\n // \t this.handleReconnect();\n // \t}\n // \tthis.closeHeartbeat();\n // \tthis.dispatchEvent('error', event);\n // })\n // this.socket.onError = event => {\n // if (this.reconnectAttempts === 0) {\n // this.log('WebSocket', `杩炴帴寮傚父[onerror]... ${this.url}`);\n // }\n // this.closeHeartbeat();\n // this.dispatchEvent('error', event);\n // };\n }\n\n // > 鏂綉閲嶈繛閫昏緫\n }, {\n key: \"handleReconnect\",\n value: function handleReconnect() {\n var _this3 = this;\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n this.reconnectAttempts++;\n this.log('WebSocket', \"\\u5C1D\\u8BD5\\u91CD\\u8FDE... (\".concat(this.reconnectAttempts, \"/\").concat(this.maxReconnectAttempts, \") \").concat(this.url));\n setTimeout(function () {\n _this3.connect();\n }, this.reconnectInterval);\n } else {\n plus.runtime.restart();\n // this.closeHeartbeat();\n // this.log('WebSocket', `鏈�澶ч噸杩炲け璐ワ紝缁堟閲嶈繛: ${this.url}`);\n }\n }\n\n // >鍏抽棴杩炴帴\n }, {\n key: \"close\",\n value: function close() {\n if (this.socket) {\n this.stopWs = true;\n this.socket.close();\n this.socket = null;\n this.removeEventListener('open');\n this.removeEventListener('message');\n this.removeEventListener('close');\n this.removeEventListener('error');\n }\n this.closeHeartbeat();\n }\n\n // >寮�濮嬪績璺虫娴� -> 瀹氭椂鍙戦�佸績璺虫秷鎭痋n }, {\n key: \"startHeartbeat\",\n value: function startHeartbeat() {\n var _this4 = this;\n if (this.stopWs) return;\n if (this.heartbeatTimer) {\n this.closeHeartbeat();\n }\n this.heartbeatTimer = setInterval(function () {\n if (_this4.socket) {\n _this4.socket.send({\n data: JSON.stringify({\n type: 'heartBeat',\n data: {}\n })\n });\n _this4.log('WebSocket', '閫佸績璺虫暟鎹�...');\n } else {\n __f__(\"error\", '[WebSocket] 鏈繛鎺�', \" at static/js/WebSocketClient.js:181\");\n }\n }, this.heartbeatInterval);\n }\n\n // >鍏抽棴蹇冭烦\n }, {\n key: \"closeHeartbeat\",\n value: function closeHeartbeat() {\n clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = undefined;\n }\n }]);\n return WebSocketClient;\n}(_dispatcher.EventDispatcher);\nexports.WebSocketClient = WebSocketClient;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RhdGljL2pzL1dlYlNvY2tldENsaWVudC5qcyJdLCJuYW1lcyI6WyJXZWJTb2NrZXRDbGllbnQiLCJ1cmwiLCJ1bmRlZmluZWQiLCJjYWxsQmFjayIsImFkZEV2ZW50TGlzdGVuZXIiLCJtZXNzYWdlIiwic29ja2V0IiwicmVhZHlTdGF0ZSIsIldlYlNvY2tldCIsIk9QRU4iLCJzZW5kIiwiZGF0YSIsInJlY29ubmVjdEF0dGVtcHRzIiwibG9nIiwidW5pIiwiY29ubmVjdFNvY2tldCIsImNvbXBsZXRlIiwib25PcGVuIiwiZXZlbnQiLCJzdG9wV3MiLCJzdGFydEhlYXJ0YmVhdCIsImRpc3BhdGNoRXZlbnQiLCJvbk1lc3NhZ2UiLCJvbkNsb3NlIiwiaGFuZGxlUmVjb25uZWN0Iiwib25FcnJvciIsImNsb3NlSGVhcnRiZWF0IiwibWF4UmVjb25uZWN0QXR0ZW1wdHMiLCJzZXRUaW1lb3V0IiwiY29ubmVjdCIsInJlY29ubmVjdEludGVydmFsIiwicGx1cyIsInJ1bnRpbWUiLCJyZXN0YXJ0IiwiY2xvc2UiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGVhcnRiZWF0VGltZXIiLCJzZXRJbnRlcnZhbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0eXBlIiwiaGVhcnRiZWF0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwiRXZlbnREaXNwYXRjaGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQStDO0FBQUE7QUFBQSxJQUVsQ0EsZUFBZTtFQUFBO0VBQUE7RUFDeEI7O0VBRUE7O0VBRUE7O0VBRUE7O0VBRUE7RUFDMkI7RUFDM0I7O0VBRUE7O0VBRUE7O0VBRUE7RUFDQSx5QkFBWUMsR0FBRyxFQUFFO0lBQUE7SUFBQTtJQUNiO0lBQVEsa0ZBakJOLEVBQUU7SUFBQSxxRkFFQyxJQUFJO0lBQUEsZ0dBRU8sQ0FBQztJQUFBLG1HQUVFLEVBQUU7SUFBQSxnR0FFTCxLQUFLO0lBQUEsZ0dBRUwsSUFBSSxHQUFHLEVBQUU7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QyxJQUFJLENBQUNOLGNBQWMsQ0FBQztNQUNsQyxJQUFJLENBQUNBLGNBQWMsR0FBR2xDLFNBQVM7SUFDbkM7RUFBQztFQUFBO0FBQUEsRUEzTGdDeUMsMkJBQWU7QUFBQSwwQyIsImZpbGUiOiIxMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudERpc3BhdGNoZXIgfSBmcm9tICcuL2Rpc3BhdGNoZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldENsaWVudCBleHRlbmRzIEV2ZW50RGlzcGF0Y2hlciB7XHJcbiAgICAvLyAjc29ja2V06ZO+5o6lXHJcbiAgICB1cmwgPSAnJztcclxuICAgIC8vICNzb2NrZXTlrp7kvotcclxuICAgIHNvY2tldCA9IG51bGw7XHJcbiAgICAvLyAj6YeN6L+e5qyh5pWwXHJcbiAgICByZWNvbm5lY3RBdHRlbXB0cyA9IDA7XHJcbiAgICAvLyAj5pyA5aSn6YeN6L+e5pWwXHJcbiAgICBtYXhSZWNvbm5lY3RBdHRlbXB0cyA9IDIwO1xyXG4gICAgLy8gI+mHjei/numXtOmalFxyXG4gICAgcmVjb25uZWN0SW50ZXJ2YWwgPSA2MDAwMDsgLy8gMTAgc2Vjb25kc1xyXG4gICAgLy8gI+WPkemAgeW/g+i3s+aVsOaNrumXtOmalFxyXG4gICAgaGVhcnRiZWF0SW50ZXJ2YWwgPSAxMDAwICogMzA7XHJcbiAgICAvLyAj6K6h5pe25ZmoaWRcclxuICAgIGhlYXJ0YmVhdFRpbWVyID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gI+W9u+W6lee7iOatondzXHJcbiAgICBzdG9wV3MgPSBmYWxzZTtcclxuICAgIC8vICrmnoTpgKDlh73mlbBcclxuICAgIGNvbnN0cnVjdG9yKHVybCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XHJcbiAgICB9XHJcbiAgICAvLyA+55Sf5ZG95ZGo5pyf6ZKp5a2QXHJcbiAgICBvbm9wZW4oY2FsbEJhY2spIHtcclxuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBjYWxsQmFjayk7XHJcbiAgICB9XHJcbiAgICBvbm1lc3NhZ2UoY2FsbEJhY2spIHtcclxuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjYWxsQmFjayk7XHJcbiAgICB9XHJcbiAgICBvbmNsb3NlKGNhbGxCYWNrKSB7XHJcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsIGNhbGxCYWNrKTtcclxuICAgIH1cclxuICAgIG9uZXJyb3IoY2FsbEJhY2spIHtcclxuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY2FsbEJhY2spO1xyXG4gICAgfVxyXG4gICAgLy8gPua2iOaBr+WPkemAgVxyXG4gICAgc2VuZChtZXNzYWdlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc29ja2V0ICYmIHRoaXMuc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc29ja2V0LnNlbmQoe1xyXG5cdFx0XHRcdGRhdGE6bWVzc2FnZSxcdFx0XHRcdFxyXG5cdFx0XHR9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbV2ViU29ja2V0XSDmnKrov57mjqUnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIeWIneWni+WMlui/nuaOpVxyXG4gICAgY29ubmVjdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZygnV2ViU29ja2V0JywgYOWIneWni+WMlui/nuaOpeS4rS4uLiAgICAgICAgICAke3RoaXMudXJsfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zb2NrZXQgJiYgdGhpcy5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNvY2tldCA9IHVuaS5jb25uZWN0U29ja2V0KHtcclxuXHRcdFx0dXJsOiB0aGlzLnVybCxcclxuXHRcdFx0Y29tcGxldGU6ICgpPT4ge31cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5zb2NrZXQub25PcGVuKChldmVudCk9PntcdFx0XHRcclxuXHRcdFx0dGhpcy5zdG9wV3MgPSBmYWxzZTtcclxuXHRcdFx0Ly8g6YeN572u6YeN6L+e5bCd6K+V5oiQ5Yqf6L+e5o6lXHJcblx0XHRcdHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPSAwO1xyXG5cdFx0XHQvLyDlnKjov57mjqXmiJDlip/ml7blgZzmraLlvZPliY3nmoTlv4Pot7Pmo4DmtYvlubbph43mlrDlkK/liqhcclxuXHRcdFx0dGhpcy5zdGFydEhlYXJ0YmVhdCgpO1x0XHRcdFxyXG5cdFx0XHR0aGlzLmxvZygnV2ViU29ja2V0JywgYOi/nuaOpeaIkOWKnyznrYnlvoXmnI3liqHnq6/mlbDmja7mjqjpgIFbb25vcGVuXS4uLiAgICAgJHt0aGlzLnVybH1gKTtcclxuXHRcdFx0dGhpcy5kaXNwYXRjaEV2ZW50KCdvcGVuJywgZXZlbnQpO1xyXG5cdFx0fSlcclxuICAgICAgICAvLyAhd2Vic29ja2V06L+e5o6l5oiQ5YqfXHJcbiAgICAgICAgLy8gdGhpcy5zb2NrZXQub25PcGVuID0gZXZlbnQgPT4ge1x0XHRcdFxyXG4gICAgICAgIC8vICAgICB0aGlzLnN0b3BXcyA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICAvLyDph43nva7ph43ov57lsJ3or5XmiJDlip/ov57mjqVcclxuICAgICAgICAvLyAgICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9IDA7XHJcbiAgICAgICAgLy8gICAgIC8vIOWcqOi/nuaOpeaIkOWKn+aXtuWBnOatouW9k+WJjeeahOW/g+i3s+ajgOa1i+W5tumHjeaWsOWQr+WKqFxyXG4gICAgICAgIC8vICAgICB0aGlzLnN0YXJ0SGVhcnRiZWF0KCk7XHRcdFx0XHJcbiAgICAgICAgLy8gICAgIHRoaXMubG9nKCdXZWJTb2NrZXQnLCBg6L+e5o6l5oiQ5YqfLOetieW+heacjeWKoeerr+aVsOaNruaOqOmAgVtvbm9wZW5dLi4uICAgICAke3RoaXMudXJsfWApO1xyXG4gICAgICAgIC8vICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoJ29wZW4nLCBldmVudCk7XHJcbiAgICAgICAgLy8gfTtcclxuXHRcdHRoaXMuc29ja2V0Lm9uTWVzc2FnZSgoZXZlbnQpPT57XHJcblx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudCgnbWVzc2FnZScsIGV2ZW50KTtcclxuXHRcdFx0dGhpcy5zdGFydEhlYXJ0YmVhdCgpO1xyXG5cdFx0fSlcclxuICAgLy8gICAgICB0aGlzLnNvY2tldC5vbk1lc3NhZ2UgPSBldmVudCA9PiB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGV2ZW50KVxyXG4gICAgICAgICAgIC8vIHRoaXMuZGlzcGF0Y2hFdmVudCgnbWVzc2FnZScsIGV2ZW50KTtcclxuICAgICAgICAgICAvLyB0aGlzLnN0YXJ0SGVhcnRiZWF0KCk7XHJcbiAgIC8vICAgICAgfTtcclxuXHRcdHRoaXMuc29ja2V0Lm9uQ2xvc2UoKGV2ZW50KT0+e1xyXG5cdFx0XHRpZiAodGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9PT0gMCkge1xyXG5cdFx0XHQgICAgdGhpcy5sb2coJ1dlYlNvY2tldCcsIGDov57mjqXmlq3lvIBbb25jbG9zZV0uLi4gICAgJHt0aGlzLnVybH1gKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIXRoaXMuc3RvcFdzKSB7XHJcblx0XHRcdCAgICB0aGlzLmhhbmRsZVJlY29ubmVjdCgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudCgnY2xvc2UnLCBldmVudCk7XHJcblx0XHR9KVxyXG4gICAgICAgIC8vIHRoaXMuc29ja2V0Lm9uQ2xvc2UgPSBldmVudCA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmICh0aGlzLnJlY29ubmVjdEF0dGVtcHRzID09PSAwKSB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmxvZygnV2ViU29ja2V0JywgYOi/nuaOpeaWreW8gFtvbmNsb3NlXS4uLiAgICAke3RoaXMudXJsfWApO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gICAgIGlmICghdGhpcy5zdG9wV3MpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuaGFuZGxlUmVjb25uZWN0KCk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KCdjbG9zZScsIGV2ZW50KTtcclxuICAgICAgICAvLyB9O1xyXG5cdFx0dGhpcy5zb2NrZXQub25FcnJvcigoZXZlbnQpPT57XHJcblx0XHRcdGlmICh0aGlzLnJlY29ubmVjdEF0dGVtcHRzID09PSAwKSB7XHJcblx0XHRcdCAgICB0aGlzLmxvZygnV2ViU29ja2V0JywgYOi/nuaOpeW8guW4uFtvbmVycm9yXS4uLiAgICAke3RoaXMudXJsfWApO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmICghdGhpcy5zdG9wV3MpIHtcclxuXHRcdFx0ICAgIHRoaXMuaGFuZGxlUmVjb25uZWN0KCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5jbG9zZUhlYXJ0YmVhdCgpO1xyXG5cdFx0XHR0aGlzLmRpc3BhdGNoRXZlbnQoJ2Vycm9yJywgZXZlbnQpO1xyXG5cdFx0fSlcclxuXHRcdFxyXG5cdFx0Ly8gdW5pLm9uU29ja2V0RXJyb3IoKGV2ZW50KT0+e1xyXG5cdFx0Ly8gXHRjb25zb2xlLmxvZyhcIjMzM1wiKVxyXG5cdFx0Ly8gXHRpZiAodGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9PT0gMCkge1xyXG5cdFx0Ly8gXHQgICAgdGhpcy5sb2coJ1dlYlNvY2tldCcsIGDov57mjqXlvILluLhbb25lcnJvcl0uLi4gICAgJHt0aGlzLnVybH1gKTtcclxuXHRcdC8vIFx0fVxyXG5cdFx0Ly8gXHRpZiAoIXRoaXMuc3RvcFdzKSB7XHJcblx0XHQvLyBcdCAgICB0aGlzLmhhbmRsZVJlY29ubmVjdCgpO1xyXG5cdFx0Ly8gXHR9XHJcblx0XHQvLyBcdHRoaXMuY2xvc2VIZWFydGJlYXQoKTtcclxuXHRcdC8vIFx0dGhpcy5kaXNwYXRjaEV2ZW50KCdlcnJvcicsIGV2ZW50KTtcclxuXHRcdC8vIH0pXHJcbiAgICAgICAgLy8gdGhpcy5zb2NrZXQub25FcnJvciA9IGV2ZW50ID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPT09IDApIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMubG9nKCdXZWJTb2NrZXQnLCBg6L+e5o6l5byC5bi4W29uZXJyb3JdLi4uICAgICR7dGhpcy51cmx9YCk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyAgICAgdGhpcy5jbG9zZUhlYXJ0YmVhdCgpO1xyXG4gICAgICAgIC8vICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoJ2Vycm9yJywgZXZlbnQpO1xyXG4gICAgICAgIC8vIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gPiDmlq3nvZHph43ov57pgLvovpFcclxuICAgIGhhbmRsZVJlY29ubmVjdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA8IHRoaXMubWF4UmVjb25uZWN0QXR0ZW1wdHMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cysrO1xyXG4gICAgICAgICAgICB0aGlzLmxvZygnV2ViU29ja2V0JywgYOWwneivlemHjei/ni4uLiAoJHt0aGlzLnJlY29ubmVjdEF0dGVtcHRzfS8ke3RoaXMubWF4UmVjb25uZWN0QXR0ZW1wdHN9KSAgICAgICAke3RoaXMudXJsfWApO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9LCB0aGlzLnJlY29ubmVjdEludGVydmFsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmNsb3NlSGVhcnRiZWF0KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubG9nKCdXZWJTb2NrZXQnLCBg5pyA5aSn6YeN6L+e5aSx6LSl77yM57uI5q2i6YeN6L+eOiAke3RoaXMudXJsfWApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyA+5YWz6Zet6L+e5o6lXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zb2NrZXQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9wV3MgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNvY2tldC5jbG9zZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNvY2tldCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbG9zZScpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xvc2VIZWFydGJlYXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyA+5byA5aeL5b+D6Lez5qOA5rWLIC0+IOWumuaXtuWPkemAgeW/g+i3s+a2iOaBr1xyXG4gICAgc3RhcnRIZWFydGJlYXQoKSB7XHRcdFxyXG4gICAgICAgIGlmICh0aGlzLnN0b3BXcykgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLmhlYXJ0YmVhdFRpbWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIZWFydGJlYXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc29ja2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNvY2tldC5zZW5kKHtcclxuICAgICAgICAgICAgICAgIFx0ZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnaGVhcnRCZWF0JywgZGF0YToge30gfSksXHJcbiAgICAgICAgICAgICAgICBcdFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZygnV2ViU29ja2V0JywgJ+mAgeW/g+i3s+aVsOaNri4uLicpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1dlYlNvY2tldF0g5pyq6L+e5o6lJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aGlzLmhlYXJ0YmVhdEludGVydmFsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyA+5YWz6Zet5b+D6LezXHJcbiAgICBjbG9zZUhlYXJ0YmVhdCgpIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xyXG4gICAgICAgIHRoaXMuaGVhcnRiZWF0VGltZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///120\n"); - -/***/ }), -/* 121 */ -/*!******************************************************!*\ - !*** D:/monitor/Monitor-APP/static/js/dispatcher.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EventDispatcher = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 81));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 83));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 85));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 86));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Log = /*#__PURE__*/function () {\n function Log() {\n (0, _classCallCheck2.default)(this, Log);\n }\n (0, _createClass2.default)(Log, [{\n key: \"log\",\n value: function log(title, text) {\n // if (!Log.console) return;\n // if (import.meta.env.MODE === 'production') return;\n var color = '#ff4d4f';\n __f__(\"log\", \"%c \".concat(title, \" %c \").concat(text, \" %c\"), \"background:\".concat(color, \";border:1px solid \").concat(color, \"; padding: 1px; border-radius: 2px 0 0 2px; color: #fff;\"), \"border:1px solid \".concat(color, \"; padding: 1px; border-radius: 0 2px 2px 0; color: \").concat(color, \";\"), 'background:transparent', \" at static/js/dispatcher.js:7\");\n }\n }, {\n key: \"closeConsole\",\n value: function closeConsole() {\n Log.console = false;\n }\n }]);\n return Log;\n}();\n(0, _defineProperty2.default)(Log, \"console\", true);\nvar EventDispatcher = /*#__PURE__*/function (_Log) {\n (0, _inherits2.default)(EventDispatcher, _Log);\n var _super = _createSuper(EventDispatcher);\n function EventDispatcher() {\n var _this;\n (0, _classCallCheck2.default)(this, EventDispatcher);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"listeners\", {});\n return _this;\n }\n (0, _createClass2.default)(EventDispatcher, [{\n key: \"addEventListener\",\n value: function addEventListener(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n if (this.listeners[type].indexOf(listener) === -1) {\n this.listeners[type].push(listener);\n }\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type) {\n this.listeners[type] = [];\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(type, data) {\n var _this2 = this;\n var listenerArray = this.listeners[type] || [];\n if (listenerArray.length === 0) return;\n listenerArray.forEach(function (listener) {\n listener.call(_this2, data);\n });\n }\n }]);\n return EventDispatcher;\n}(Log);\nexports.EventDispatcher = EventDispatcher;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RhdGljL2pzL2Rpc3BhdGNoZXIuanMiXSwibmFtZXMiOlsiTG9nIiwidGl0bGUiLCJ0ZXh0IiwiY29sb3IiLCJjb25zb2xlIiwiRXZlbnREaXNwYXRjaGVyIiwidHlwZSIsImxpc3RlbmVyIiwibGlzdGVuZXJzIiwiaW5kZXhPZiIsInB1c2giLCJkYXRhIiwibGlzdGVuZXJBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJjYWxsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0lBQU1BLEdBQUc7RUFBQTtJQUFBO0VBQUE7RUFBQTtJQUFBO0lBQUEsT0FFTCxhQUFJQyxLQUFLLEVBQUVDLElBQUksRUFBRTtNQUNiO01BQ0E7TUFDQSxJQUFNQyxLQUFLLEdBQUcsU0FBUztNQUN2QiwwQkFDVUYsS0FBSyxpQkFBT0MsSUFBSSwrQkFDUkMsS0FBSywrQkFBcUJBLEtBQUssMEZBQ3pCQSxLQUFLLGdFQUFzREEsS0FBSyxRQUNwRix3QkFBd0I7SUFFaEM7RUFBQztJQUFBO0lBQUEsT0FDRCx3QkFBZTtNQUNYSCxHQUFHLENBQUNJLE9BQU8sR0FBRyxLQUFLO0lBQ3ZCO0VBQUM7RUFBQTtBQUFBO0FBQUEsOEJBZkNKLEdBQUcsYUFDWSxJQUFJO0FBQUEsSUFnQlpLLGVBQWU7RUFBQTtFQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFBQSx3RkFDWixDQUFDLENBQUM7SUFBQTtFQUFBO0VBQUE7SUFBQTtJQUFBLE9BRWQsMEJBQWlCQyxJQUFJLEVBQUVDLFFBQVEsRUFBRTtNQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDQyxTQUFTLENBQUNGLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLElBQUksQ0FBQ0UsU0FBUyxDQUFDRixJQUFJLENBQUMsR0FBRyxFQUFFO01BQzdCO01BQ0EsSUFBSSxJQUFJLENBQUNFLFNBQVMsQ0FBQ0YsSUFBSSxDQUFDLENBQUNHLE9BQU8sQ0FBQ0YsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDL0MsSUFBSSxDQUFDQyxTQUFTLENBQUNGLElBQUksQ0FBQyxDQUFDSSxJQUFJLENBQUNILFFBQVEsQ0FBQztNQUN2QztJQUNKO0VBQUM7SUFBQTtJQUFBLE9BRUQsNkJBQW9CRCxJQUFJLEVBQUU7TUFDdEIsSUFBSSxDQUFDRSxTQUFTLENBQUNGLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDN0I7RUFBQztJQUFBO0lBQUEsT0FFRCx1QkFBY0EsSUFBSSxFQUFFSyxJQUFJLEVBQUU7TUFBQTtNQUN0QixJQUFNQyxhQUFhLEdBQUcsSUFBSSxDQUFDSixTQUFTLENBQUNGLElBQUksQ0FBQyxJQUFJLEVBQUU7TUFDaEQsSUFBSU0sYUFBYSxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ2hDRCxhQUFhLENBQUNFLE9BQU8sQ0FBQyxVQUFBUCxRQUFRLEVBQUk7UUFDOUJBLFFBQVEsQ0FBQ1EsSUFBSSxDQUFDLE1BQUksRUFBRUosSUFBSSxDQUFDO01BQzdCLENBQUMsQ0FBQztJQUNOO0VBQUM7RUFBQTtBQUFBLEVBdEJnQ1gsR0FBRztBQUFBLDBDIiwiZmlsZSI6IjEyMS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIExvZyB7XHJcbiAgICBzdGF0aWMgY29uc29sZSA9IHRydWU7XHJcbiAgICBsb2codGl0bGUsIHRleHQpIHtcclxuICAgICAgICAvLyBpZiAoIUxvZy5jb25zb2xlKSByZXR1cm47XHJcbiAgICAgICAgLy8gaWYgKGltcG9ydC5tZXRhLmVudi5NT0RFID09PSAncHJvZHVjdGlvbicpIHJldHVybjtcclxuICAgICAgICBjb25zdCBjb2xvciA9ICcjZmY0ZDRmJztcclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgYCVjICR7dGl0bGV9ICVjICR7dGV4dH0gJWNgLFxyXG4gICAgICAgICAgICBgYmFja2dyb3VuZDoke2NvbG9yfTtib3JkZXI6MXB4IHNvbGlkICR7Y29sb3J9OyBwYWRkaW5nOiAxcHg7IGJvcmRlci1yYWRpdXM6IDJweCAwIDAgMnB4OyBjb2xvcjogI2ZmZjtgLFxyXG4gICAgICAgICAgICBgYm9yZGVyOjFweCBzb2xpZCAke2NvbG9yfTsgcGFkZGluZzogMXB4OyBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsgY29sb3I6ICR7Y29sb3J9O2AsXHJcbiAgICAgICAgICAgICdiYWNrZ3JvdW5kOnRyYW5zcGFyZW50J1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjbG9zZUNvbnNvbGUoKSB7XHJcbiAgICAgICAgTG9nLmNvbnNvbGUgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgY2xhc3MgRXZlbnREaXNwYXRjaGVyIGV4dGVuZHMgTG9nIHtcclxuICAgIGxpc3RlbmVycyA9IHt9O1xyXG5cclxuICAgIGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzW3R5cGVdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmxpc3RlbmVyc1t0eXBlXS5pbmRleE9mKGxpc3RlbmVyKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xyXG4gICAgICAgIHRoaXMubGlzdGVuZXJzW3R5cGVdID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGF0Y2hFdmVudCh0eXBlLCBkYXRhKSB7XHJcbiAgICAgICAgY29uc3QgbGlzdGVuZXJBcnJheSA9IHRoaXMubGlzdGVuZXJzW3R5cGVdIHx8IFtdO1xyXG4gICAgICAgIGlmIChsaXN0ZW5lckFycmF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgICAgIGxpc3RlbmVyQXJyYXkuZm9yRWFjaChsaXN0ZW5lciA9PiB7XHJcbiAgICAgICAgICAgIGxpc3RlbmVyLmNhbGwodGhpcywgZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///121\n"); - -/***/ }), +/* 120 */, +/* 121 */, /* 122 */ /*!*********************************************************!*\ !*** D:/monitor/Monitor-APP/pages/home/uniWebSocket.js ***! @@ -14215,7 +14183,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\n/**\n * UniApp WebSocket灏佽绫伙紙灞�閮ㄤ娇鐢ㄧ増鏈級\n * 鍔熻兘锛歕n * 1. 鑷姩閲嶈繛\n * 2. 蹇冭烦妫�娴媆n * 3. 娑堟伅鍙戦�侀槦鍒梊n */\nvar WebSocketUtil = /*#__PURE__*/function () {\n function WebSocketUtil(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, WebSocketUtil);\n // WebSocket鏈嶅姟鍦板潃\n this.url = url;\n // 閰嶇疆閫夐」\n this.options = Object.assign({\n // 蹇冭烦妫�娴嬮棿闅旓紙姣锛塡n heartbeatInterval: 30000,\n // 閲嶈繛闂撮殧锛堟绉掞級\n reconnectInterval: 3000,\n // 鏈�澶ч噸杩炴鏁帮紝-1琛ㄧず鏃犻檺閲嶈繛\n maxReconnectAttempts: -1,\n // 蹇冭烦娑堟伅鍐呭\n heartbeatMessage: JSON.stringify({\n to: 'heartbeat'\n }),\n // 娑堟伅鍥炶皟鍑芥暟\n onMessage: null,\n // 杩炴帴鎵撳紑鍥炶皟\n onOpen: null,\n // 杩炴帴鍏抽棴鍥炶皟\n onClose: null,\n // 杩炴帴閿欒鍥炶皟\n onError: null,\n // 閲嶈繛鍥炶皟\n onReconnect: null\n }, options);\n\n // 鍐呴儴鐘舵�乗n this.socketTask = null; // WebSocket瀹炰緥\n this.isConnected = false; // 杩炴帴鐘舵�乗n this.isConnecting = false; // 鏄惁姝e湪杩炴帴涓璡n this.reconnectAttempts = 0; // 閲嶈繛灏濊瘯娆℃暟\n this.heartbeatTimer = null; // 蹇冭烦瀹氭椂鍣╘n this.reconnectTimer = null; // 閲嶈繛瀹氭椂鍣╘n this.messageQueue = []; // 娑堟伅闃熷垪\n this.isManualClose = false; // 鏄惁鎵嬪姩鍏抽棴\n }\n\n /**\n * 寤虹珛WebSocket杩炴帴\n */\n (0, _createClass2.default)(WebSocketUtil, [{\n key: \"connect\",\n value: function connect() {\n var _this = this;\n if (this.isConnecting) return;\n this.isConnecting = true;\n this.socketTask = uni.connectSocket({\n url: this.url,\n header: this.options.header || {},\n protocols: this.options.protocols || [],\n success: function success() {\n __f__(\"log\", 'WebSocket杩炴帴鍒涘缓鎴愬姛', \" at pages/home/uniWebSocket.js:60\");\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket杩炴帴鍒涘缓澶辫触', error, \" at pages/home/uniWebSocket.js:63\");\n _this.reconnect();\n },\n complete: function complete() {\n _this.isConnecting = false;\n }\n });\n\n // 鐩戝惉WebSocket杩炴帴鎵撳紑浜嬩欢\n this.socketTask.onOpen(function (res) {\n __f__(\"log\", 'WebSocket杩炴帴宸叉墦寮�', res, \" at pages/home/uniWebSocket.js:73\");\n _this.isConnected = true;\n _this.reconnectAttempts = 0;\n\n // 娓呴櫎閲嶈繛瀹氭椂鍣╘n if (_this.reconnectTimer) {\n clearTimeout(_this.reconnectTimer);\n _this.reconnectTimer = null;\n }\n\n // 寮�濮嬪績璺虫娴媆n _this.startHeartbeat();\n\n // 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋n _this.flushMessageQueue();\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onOpen === 'function') {\n _this.options.onOpen(res);\n }\n });\n\n // 鐩戝惉WebSocket鎺ユ敹鍒版湇鍔″櫒鐨勬秷鎭簨浠禱n this.socketTask.onMessage(function (res) {\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onMessage === 'function') {\n _this.options.onMessage(res);\n }\n });\n\n // 鐩戝惉WebSocket閿欒浜嬩欢\n this.socketTask.onError(function (error) {\n __f__(\"error\", 'WebSocket鍙戠敓閿欒', error, \" at pages/home/uniWebSocket.js:105\");\n _this.isConnected = false;\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onError === 'function') {\n _this.options.onError(error);\n }\n\n // 灏濊瘯閲嶈繛\n if (!_this.isManualClose) {\n _this.reconnect();\n }\n });\n\n // 鐩戝惉WebSocket鍏抽棴浜嬩欢\n this.socketTask.onClose(function (res) {\n __f__(\"log\", 'WebSocket杩炴帴宸插叧闂�', res, \" at pages/home/uniWebSocket.js:121\");\n _this.isConnected = false;\n\n // 鍋滄蹇冭烦妫�娴媆n _this.stopHeartbeat();\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onClose === 'function') {\n _this.options.onClose(res);\n }\n\n // 灏濊瘯閲嶈繛\n if (!_this.isManualClose) {\n _this.reconnect();\n }\n });\n }\n\n /**\n * 閲嶆柊杩炴帴\n */\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n var _this2 = this;\n // 濡傛灉鏄墜鍔ㄥ叧闂垨宸茶揪鍒版渶澶ч噸杩炴鏁帮紝鍒欎笉鍐嶉噸杩瀄n if (this.isManualClose || this.options.maxReconnectAttempts !== -1 && this.reconnectAttempts >= this.options.maxReconnectAttempts) {\n return;\n }\n\n // 娓呴櫎涔嬪墠鐨勯噸杩炲畾鏃跺櫒\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n }\n\n // 澧炲姞閲嶈繛娆℃暟\n this.reconnectAttempts++;\n __f__(\"log\", \"WebSocket\\u5C1D\\u8BD5\\u7B2C\".concat(this.reconnectAttempts, \"\\u6B21\\u91CD\\u8FDE...\"), \" at pages/home/uniWebSocket.js:160\");\n\n // 璁剧疆閲嶈繛瀹氭椂鍣╘n this.reconnectTimer = setTimeout(function () {\n _this2.connect();\n }, this.options.reconnectInterval);\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof this.options.onReconnect === 'function') {\n this.options.onReconnect({\n attempts: this.reconnectAttempts,\n maxAttempts: this.options.maxReconnectAttempts\n });\n }\n }\n\n /**\n * 寮�濮嬪績璺虫娴媆n */\n }, {\n key: \"startHeartbeat\",\n value: function startHeartbeat() {\n var _this3 = this;\n // 娓呴櫎涔嬪墠鐨勫績璺冲畾鏃跺櫒\n this.stopHeartbeat();\n\n // 璁剧疆鏂扮殑蹇冭烦瀹氭椂鍣╘n this.heartbeatTimer = setInterval(function () {\n if (_this3.isConnected) {\n __f__(\"log\", 'WebSocket鍙戦�佸績璺�', \" at pages/home/uniWebSocket.js:186\");\n _this3.send(_this3.options.heartbeatMessage);\n }\n }, this.options.heartbeatInterval);\n }\n\n /**\n * 鍋滄蹇冭烦妫�娴媆n */\n }, {\n key: \"stopHeartbeat\",\n value: function stopHeartbeat() {\n if (this.heartbeatTimer) {\n clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = null;\n }\n }\n\n /**\n * 鍙戦�佹秷鎭痋n * @param {String|Object} data 娑堟伅鍐呭\n * @returns {Promise} 鍙戦�佺粨鏋淺n */\n }, {\n key: \"send\",\n value: function send(data) {\n var _this4 = this;\n return new Promise(function (resolve, reject) {\n // 濡傛灉娑堟伅鏄璞★紝鍒欒浆涓篔SON瀛楃涓瞈n if ((0, _typeof2.default)(data) === 'object') {\n data = JSON.stringify(data);\n }\n\n // 濡傛灉杩炴帴宸叉墦寮�锛岀洿鎺ュ彂閫乗n if (_this4.isConnected && _this4.socketTask) {\n _this4.socketTask.send({\n data: data,\n success: function success(res) {\n __f__(\"log\", 'WebSocket娑堟伅鍙戦�佹垚鍔�', data, \" at pages/home/uniWebSocket.js:219\");\n resolve(res);\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket娑堟伅鍙戦�佸け璐�', error, \" at pages/home/uniWebSocket.js:223\");\n reject(error);\n }\n });\n } else {\n // 鍚﹀垯鍔犲叆娑堟伅闃熷垪\n __f__(\"log\", 'WebSocket杩炴帴鏈墦寮�锛屾秷鎭姞鍏ラ槦鍒�', data, \" at pages/home/uniWebSocket.js:229\");\n _this4.messageQueue.push({\n data: data,\n resolve: resolve,\n reject: reject\n });\n\n // 濡傛灉鏈繛鎺ワ紝鍒欏皾璇曡繛鎺n if (!_this4.isConnected && !_this4.isConnecting) {\n _this4.connect();\n }\n }\n });\n }\n\n /**\n * 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋n */\n }, {\n key: \"flushMessageQueue\",\n value: function flushMessageQueue() {\n var _this5 = this;\n if (this.messageQueue.length === 0) return;\n __f__(\"log\", \"WebSocket\\u53D1\\u9001\\u961F\\u5217\\u4E2D\\u7684\".concat(this.messageQueue.length, \"\\u6761\\u6D88\\u606F\"), \" at pages/home/uniWebSocket.js:250\");\n\n // 澶嶅埗闃熷垪骞舵竻绌哄師闃熷垪\n var queue = (0, _toConsumableArray2.default)(this.messageQueue);\n this.messageQueue = [];\n\n // 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋n queue.forEach(function (item) {\n _this5.socketTask.send({\n data: item.data,\n success: function success(res) {\n __f__(\"log\", 'WebSocket闃熷垪娑堟伅鍙戦�佹垚鍔�', item.data, \" at pages/home/uniWebSocket.js:261\");\n item.resolve(res);\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket闃熷垪娑堟伅鍙戦�佸け璐�', error, \" at pages/home/uniWebSocket.js:265\");\n item.reject(error);\n }\n });\n });\n }\n\n /**\n * 鍏抽棴WebSocket杩炴帴\n */\n }, {\n key: \"close\",\n value: function close() {\n this.isManualClose = true;\n\n // 鍋滄蹇冭烦妫�娴媆n this.stopHeartbeat();\n\n // 娓呴櫎閲嶈繛瀹氭椂鍣╘n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n\n // 鍏抽棴杩炴帴\n if (this.socketTask && this.isConnected) {\n this.socketTask.close({\n code: 1000,\n reason: 'Manual close',\n success: function success() {\n __f__(\"log\", 'WebSocket杩炴帴宸叉墜鍔ㄥ叧闂�', \" at pages/home/uniWebSocket.js:293\");\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket鍏抽棴澶辫触', error, \" at pages/home/uniWebSocket.js:296\");\n }\n });\n }\n }\n\n /**\n * 閲嶇疆杩炴帴鐘舵�侊紝鍏佽閲嶆柊杩炴帴\n */\n }, {\n key: \"reset\",\n value: function reset() {\n this.isManualClose = false;\n this.reconnectAttempts = 0;\n if (!this.isConnected) {\n this.connect();\n }\n }\n }]);\n return WebSocketUtil;\n}();\nvar _default = WebSocketUtil;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS91bmlXZWJTb2NrZXQuanMiXSwibmFtZXMiOlsiV2ViU29ja2V0VXRpbCIsInVybCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJoZWFydGJlYXRJbnRlcnZhbCIsInJlY29ubmVjdEludGVydmFsIiwibWF4UmVjb25uZWN0QXR0ZW1wdHMiLCJoZWFydGJlYXRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvIiwib25NZXNzYWdlIiwib25PcGVuIiwib25DbG9zZSIsIm9uRXJyb3IiLCJvblJlY29ubmVjdCIsInNvY2tldFRhc2siLCJpc0Nvbm5lY3RlZCIsImlzQ29ubmVjdGluZyIsInJlY29ubmVjdEF0dGVtcHRzIiwiaGVhcnRiZWF0VGltZXIiLCJyZWNvbm5lY3RUaW1lciIsIm1lc3NhZ2VRdWV1ZSIsImlzTWFudWFsQ2xvc2UiLCJ1bmkiLCJjb25uZWN0U29ja2V0IiwiaGVhZGVyIiwicHJvdG9jb2xzIiwic3VjY2VzcyIsImZhaWwiLCJlcnJvciIsInJlY29ubmVjdCIsImNvbXBsZXRlIiwicmVzIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRIZWFydGJlYXQiLCJmbHVzaE1lc3NhZ2VRdWV1ZSIsInN0b3BIZWFydGJlYXQiLCJzZXRUaW1lb3V0IiwiY29ubmVjdCIsImF0dGVtcHRzIiwibWF4QXR0ZW1wdHMiLCJzZXRJbnRlcnZhbCIsInNlbmQiLCJjbGVhckludGVydmFsIiwiZGF0YSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicHVzaCIsImxlbmd0aCIsInF1ZXVlIiwiZm9yRWFjaCIsIml0ZW0iLCJjbG9zZSIsImNvZGUiLCJyZWFzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQSxJQU9NQSxhQUFhO0VBQ2pCLHVCQUFZQyxHQUFHLEVBQWdCO0lBQUEsSUFBZEMsT0FBTyx1RUFBRyxDQUFDLENBQUM7SUFBQTtJ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LElBQUksQ0FBQ2hCLGNBQWMsRUFBRTtRQUN2QmEsWUFBWSxDQUFDLElBQUksQ0FBQ2IsY0FBYyxDQUFDO1FBQ2pDLElBQUksQ0FBQ0EsY0FBYyxHQUFHLElBQUk7TUFDNUI7O01BRUE7TUFDQSxJQUFJLElBQUksQ0FBQ0wsVUFBVSxJQUFJLElBQUksQ0FBQ0MsV0FBVyxFQUFFO1FBQ3ZDLElBQUksQ0FBQ0QsVUFBVSxDQUFDc0MsS0FBSyxDQUFDO1VBQ3BCQyxJQUFJLEVBQUUsSUFBSTtVQUNWQyxNQUFNLEVBQUUsY0FBYztVQUN0QjVCLE9BQU8sRUFBRSxtQkFBTTtZQUNiLGFBQVksa0JBQWtCO1VBQ2hDLENBQUM7VUFDREMsSUFBSSxFQUFFLGNBQUNDLEtBQUssRUFBSztZQUNmLGVBQWMsZUFBZSxFQUFFQSxLQUFLO1VBQ3RDO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7SUFDRjs7SUFFQTtBQUNGO0FBQ0E7RUFGRTtJQUFBO0lBQUEsT0FHQSxpQkFBUTtNQUNOLElBQUksQ0FBQ1AsYUFBYSxHQUFHLEtBQUs7TUFDMUIsSUFBSSxDQUFDSixpQkFBaUIsR0FBRyxDQUFDO01BRTFCLElBQUksQ0FBQyxJQUFJLENBQUNGLFdBQVcsRUFBRTtRQUNyQixJQUFJLENBQUNzQixPQUFPLEVBQUU7TUFDaEI7SUFDRjtFQUFDO0VBQUE7QUFBQTtBQUFBLGVBR1l4QyxhQUFhO0FBQUEsMkIiLCJmaWxlIjoiMTIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlBcHAgV2ViU29ja2V05bCB6KOF57G777yI5bGA6YOo5L2/55So54mI5pys77yJXG4gKiDlip/og73vvJpcbiAqIDEuIOiHquWKqOmHjei/nlxuICogMi4g5b+D6Lez5qOA5rWLXG4gKiAzLiDmtojmga/lj5HpgIHpmJ/liJdcbiAqL1xuY2xhc3MgV2ViU29ja2V0VXRpbCB7XG4gIGNvbnN0cnVjdG9yKHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gV2ViU29ja2V05pyN5Yqh5Zyw5Z2AXG4gICAgdGhpcy51cmwgPSB1cmw7XG4gICAgLy8g6YWN572u6YCJ6aG5XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgLy8g5b+D6Lez5qOA5rWL6Ze06ZqU77yI5q+r56eS77yJXG4gICAgICAgIGhlYXJ0YmVhdEludGVydmFsOiAzMDAwMCxcbiAgICAgICAgLy8g6YeN6L+e6Ze06ZqU77yI5q+r56eS77yJXG4gICAgICAgIHJlY29ubmVjdEludGVydmFsOiAzMDAwLFxuICAgICAgICAvLyDmnIDlpKfph43ov57mrKHmlbDvvIwtMeihqOekuuaXoOmZkOmHjei/nlxuICAgICAgICBtYXhSZWNvbm5lY3RBdHRlbXB0czogLTEsXG4gICAgICAgIC8vIOW/g+i3s+a2iOaBr+WGheWuuVxuICAgICAgICBoZWFydGJlYXRNZXNzYWdlOiBKU09OLnN0cmluZ2lmeSh7IHRvOiAnaGVhcnRiZWF0JyB9KSxcbiAgICAgICAgLy8g5raI5oGv5Zue6LCD5Ye95pWwXG4gICAgICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICAgICAgLy8g6L+e5o6l5omT5byA5Zue6LCDXG4gICAgICAgIG9uT3BlbjogbnVsbCxcbiAgICAgICAgLy8g6L+e5o6l5YWz6Zet5Zue6LCDXG4gICAgICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgICAgIC8vIOi/nuaOpemUmeivr+Wbnuiwg1xuICAgICAgICBvbkVycm9yOiBudWxsLFxuICAgICAgICAvLyDph43ov57lm57osINcbiAgICAgICAgb25SZWNvbm5lY3Q6IG51bGxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgICBcbiAgICAvLyDlhoXpg6jnirbmgIFcbiAgICB0aGlzLnNvY2tldFRhc2sgPSBudWxsOyAgICAgICAgLy8gV2ViU29ja2V05a6e5L6LXG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlOyAgICAgIC8vIOi/nuaOpeeKtuaAgVxuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7ICAgICAvLyDmmK/lkKbmraPlnKjov57mjqXkuK1cbiAgICB0aGlzLnJlY29ubmVjdEF0dGVtcHRzID0gMDsgICAgLy8g6YeN6L+e5bCd6K+V5qyh5pWwXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IG51bGw7ICAgIC8vIOW/g+i3s+WumuaXtuWZqFxuICAgIHRoaXMucmVjb25uZWN0VGltZXIgPSBudWxsOyAgICAvLyDph43ov57lrprml7blmahcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZSA9IFtdOyAgICAgICAgLy8g5raI5oGv6Zif5YiXXG4gICAgdGhpcy5pc01hbnVhbENsb3NlID0gZmFsc2U7ICAgIC8vIOaYr+WQpuaJi+WKqOWFs+mXrVxuICB9XG4gIFxuICAvKipcbiAgICog5bu656uLV2ViU29ja2V06L+e5o6lXG4gICAqL1xuICBjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGluZykgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNvY2tldFRhc2sgPSB1bmkuY29ubmVjdFNvY2tldCh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgaGVhZGVyOiB0aGlzLm9wdGlvbnMuaGVhZGVyIHx8IHt9LFxuICAgICAgcHJvdG9jb2xzOiB0aGlzLm9wdGlvbnMucHJvdG9jb2xzIHx8IFtdLFxuICAgICAgc3VjY2VzczogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V06L+e5o6l5Yib5bu65oiQ5YqfJyk7XG4gICAgICB9LFxuICAgICAgZmFpbDogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOi/nuaOpeWIm+W7uuWksei0pScsIGVycm9yKTtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIOebkeWQrFdlYlNvY2tldOi/nuaOpeaJk+W8gOS6i+S7tlxuICAgIHRoaXMuc29ja2V0VGFzay5vbk9wZW4oKHJlcykgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeW3suaJk+W8gCcsIHJlcyk7XG4gICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPSAwO1xuICAgICAgXG4gICAgICAvLyDmuIXpmaTph43ov57lrprml7blmahcbiAgICAgIGlmICh0aGlzLnJlY29ubmVjdFRpbWVyKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdFRpbWVyKTtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IG51bGw7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIOW8gOWni+W/g+i3s+ajgOa1i1xuICAgICAgdGhpcy5zdGFydEhlYXJ0YmVhdCgpO1xuICAgICAgXG4gICAgICAvLyDlj5HpgIHpmJ/liJfkuK3nmoTmtojmga9cbiAgICAgIHRoaXMuZmx1c2hNZXNzYWdlUXVldWUoKTtcbiAgICAgIFxuICAgICAgLy8g6LCD55So5Zue6LCD5Ye95pWwXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vbk9wZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9uT3BlbihyZXMpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIOebkeWQrFdlYlNvY2tldOaOpeaUtuWIsOacjeWKoeWZqOeahOa2iOaBr+S6i+S7tlxuICAgIHRoaXMuc29ja2V0VGFzay5vbk1lc3NhZ2UoKHJlcykgPT4geyBcbiAgICAgIC8vIOiwg+eUqOWbnuiwg+WHveaVsFxuICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMub25NZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbk1lc3NhZ2UocmVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyDnm5HlkKxXZWJTb2NrZXTplJnor6/kuovku7ZcbiAgICB0aGlzLnNvY2tldFRhc2sub25FcnJvcigoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOWPkeeUn+mUmeivrycsIGVycm9yKTtcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgIFxuICAgICAgLy8g6LCD55So5Zue6LCD5Ye95pWwXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vbkVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8g5bCd6K+V6YeN6L+eXG4gICAgICBpZiAoIXRoaXMuaXNNYW51YWxDbG9zZSkge1xuICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIOebkeWQrFdlYlNvY2tldOWFs+mXreS6i+S7tlxuICAgIHRoaXMuc29ja2V0VGFzay5vbkNsb3NlKChyZXMpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdXZWJTb2NrZXTov57mjqXlt7LlhbPpl60nLCByZXMpO1xuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvLyDlgZzmraLlv4Pot7Pmo4DmtYtcbiAgICAgIHRoaXMuc3RvcEhlYXJ0YmVhdCgpO1xuICAgICAgXG4gICAgICAvLyDosIPnlKjlm57osIPlh73mlbBcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2xvc2UocmVzKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8g5bCd6K+V6YeN6L+eXG4gICAgICBpZiAoIXRoaXMuaXNNYW51YWxDbG9zZSkge1xuICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICAvKipcbiAgICog6YeN5paw6L+e5o6lXG4gICAqL1xuICByZWNvbm5lY3QoKSB7XG4gICAgLy8g5aaC5p6c5piv5omL5Yqo5YWz6Zet5oiW5bey6L6+5Yiw5pyA5aSn6YeN6L+e5qyh5pWw77yM5YiZ5LiN5YaN6YeN6L+eXG4gICAgaWYgKFxuICAgICAgdGhpcy5pc01hbnVhbENsb3NlIHx8XG4gICAgICAodGhpcy5vcHRpb25zLm1heFJlY29ubmVjdEF0dGVtcHRzICE9PSAtMSAmJlxuICAgICAgICB0aGlzLnJlY29ubmVjdEF0dGVtcHRzID49IHRoaXMub3B0aW9ucy5tYXhSZWNvbm5lY3RBdHRlbXB0cylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8g5riF6Zmk5LmL5YmN55qE6YeN6L+e5a6a5pe25ZmoXG4gICAgaWYgKHRoaXMucmVjb25uZWN0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdFRpbWVyKTtcbiAgICB9XG4gICAgXG4gICAgLy8g5aKe5Yqg6YeN6L+e5qyh5pWwXG4gICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cysrO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKGBXZWJTb2NrZXTlsJ3or5XnrKwke3RoaXMucmVjb25uZWN0QXR0ZW1wdHN95qyh6YeN6L+eLi4uYCk7XG4gICAgXG4gICAgLy8g6K6+572u6YeN6L+e5a6a5pe25ZmoXG4gICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0KCk7XG4gICAgfSwgdGhpcy5vcHRpb25zLnJlY29ubmVjdEludGVydmFsKTtcbiAgICBcbiAgICAvLyDosIPnlKjlm57osIPlh73mlbBcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vblJlY29ubmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUmVjb25uZWN0KHtcbiAgICAgICAgYXR0ZW1wdHM6IHRoaXMucmVjb25uZWN0QXR0ZW1wdHMsXG4gICAgICAgIG1heEF0dGVtcHRzOiB0aGlzLm9wdGlvbnMubWF4UmVjb25uZWN0QXR0ZW1wdHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIOW8gOWni+W/g+i3s+ajgOa1i1xuICAgKi9cbiAgc3RhcnRIZWFydGJlYXQoKSB7XG4gICAgLy8g5riF6Zmk5LmL5YmN55qE5b+D6Lez5a6a5pe25ZmoXG4gICAgdGhpcy5zdG9wSGVhcnRiZWF0KCk7XG4gICAgXG4gICAgLy8g6K6+572u5paw55qE5b+D6Lez5a6a5pe25ZmoXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdXZWJTb2NrZXTlj5HpgIHlv4Pot7MnKTtcbiAgICAgICAgdGhpcy5zZW5kKHRoaXMub3B0aW9ucy5oZWFydGJlYXRNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9LCB0aGlzLm9wdGlvbnMuaGVhcnRiZWF0SW50ZXJ2YWwpO1xuICB9XG4gIFxuICAvKipcbiAgICog5YGc5q2i5b+D6Lez5qOA5rWLXG4gICAqL1xuICBzdG9wSGVhcnRiZWF0KCkge1xuICAgIGlmICh0aGlzLmhlYXJ0YmVhdFRpbWVyKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xuICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICog5Y+R6YCB5raI5oGvXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZGF0YSDmtojmga/lhoXlrrlcbiAgICogQHJldHVybnMge1Byb21pc2V9IOWPkemAgee7k+aenFxuICAgKi9cbiAgc2VuZChkYXRhKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIOWmguaenOa2iOaBr+aYr+Wvueixoe+8jOWImei9rOS4ukpTT07lrZfnrKbkuLJcbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyDlpoLmnpzov57mjqXlt7LmiZPlvIDvvIznm7TmjqXlj5HpgIFcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkICYmIHRoaXMuc29ja2V0VGFzaykge1xuICAgICAgICB0aGlzLnNvY2tldFRhc2suc2VuZCh7XG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V05raI5oGv5Y+R6YCB5oiQ5YqfJywgZGF0YSk7XG4gICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWlsOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOa2iOaBr+WPkemAgeWksei0pScsIGVycm9yKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWQpuWImeWKoOWFpea2iOaBr+mYn+WIl1xuICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V06L+e5o6l5pyq5omT5byA77yM5raI5oGv5Yqg5YWl6Zif5YiXJywgZGF0YSk7XG4gICAgICAgIHRoaXMubWVzc2FnZVF1ZXVlLnB1c2goe1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICByZWplY3RcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyDlpoLmnpzmnKrov57mjqXvvIzliJnlsJ3or5Xov57mjqVcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkICYmICF0aGlzLmlzQ29ubmVjdGluZykge1xuICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiDlj5HpgIHpmJ/liJfkuK3nmoTmtojmga9cbiAgICovXG4gIGZsdXNoTWVzc2FnZVF1ZXVlKCkge1xuICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBcbiAgICBjb25zb2xlLmxvZyhgV2ViU29ja2V05Y+R6YCB6Zif5YiX5Lit55qEJHt0aGlzLm1lc3NhZ2VRdWV1ZS5sZW5ndGh95p2h5raI5oGvYCk7XG4gICAgXG4gICAgLy8g5aSN5Yi26Zif5YiX5bm25riF56m65Y6f6Zif5YiXXG4gICAgY29uc3QgcXVldWUgPSBbLi4udGhpcy5tZXNzYWdlUXVldWVdO1xuICAgIHRoaXMubWVzc2FnZVF1ZXVlID0gW107XG4gICAgXG4gICAgLy8g5Y+R6YCB6Zif5YiX5Lit55qE5raI5oGvXG4gICAgcXVldWUuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIHRoaXMuc29ja2V0VGFzay5zZW5kKHtcbiAgICAgICAgZGF0YTogaXRlbS5kYXRhLFxuICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOmYn+WIl+a2iOaBr+WPkemAgeaIkOWKnycsIGl0ZW0uZGF0YSk7XG4gICAgICAgICAgaXRlbS5yZXNvbHZlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGZhaWw6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOmYn+WIl+a2iOaBr+WPkemAgeWksei0pScsIGVycm9yKTtcbiAgICAgICAgICBpdGVtLnJlamVjdChlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIFxuICAvKipcbiAgICog5YWz6ZetV2ViU29ja2V06L+e5o6lXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzTWFudWFsQ2xvc2UgPSB0cnVlO1xuICAgIFxuICAgIC8vIOWBnOatouW/g+i3s+ajgOa1i1xuICAgIHRoaXMuc3RvcEhlYXJ0YmVhdCgpO1xuICAgIFxuICAgIC8vIOa4hemZpOmHjei/nuWumuaXtuWZqFxuICAgIGlmICh0aGlzLnJlY29ubmVjdFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWNvbm5lY3RUaW1lcik7XG4gICAgICB0aGlzLnJlY29ubmVjdFRpbWVyID0gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8g5YWz6Zet6L+e5o6lXG4gICAgaWYgKHRoaXMuc29ja2V0VGFzayAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLnNvY2tldFRhc2suY2xvc2Uoe1xuICAgICAgICBjb2RlOiAxMDAwLFxuICAgICAgICByZWFzb246ICdNYW51YWwgY2xvc2UnLFxuICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeW3suaJi+WKqOWFs+mXrScpO1xuICAgICAgICB9LFxuICAgICAgICBmYWlsOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXTlhbPpl63lpLHotKUnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIOmHjee9rui/nuaOpeeKtuaAge+8jOWFgeiuuOmHjeaWsOi/nuaOpVxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5pc01hbnVhbENsb3NlID0gZmFsc2U7XG4gICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9IDA7XG4gICAgXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLmNvbm5lY3QoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgV2ViU29ja2V0VXRpbDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///122\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\n/**\r\n * UniApp WebSocket灏佽绫伙紙灞�閮ㄤ娇鐢ㄧ増鏈級\r\n * 鍔熻兘锛歕r\n * 1. 鑷姩閲嶈繛\r\n * 2. 蹇冭烦妫�娴媆r\n * 3. 娑堟伅鍙戦�侀槦鍒梊r\n */\nvar WebSocketUtil = /*#__PURE__*/function () {\n function WebSocketUtil(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _classCallCheck2.default)(this, WebSocketUtil);\n // WebSocket鏈嶅姟鍦板潃\n this.url = url;\n // 閰嶇疆閫夐」\n this.options = Object.assign({\n // 蹇冭烦妫�娴嬮棿闅旓紙姣锛塡n heartbeatInterval: 30000,\n // 閲嶈繛闂撮殧锛堟绉掞級\n reconnectInterval: 3000,\n // 鏈�澶ч噸杩炴鏁帮紝-1琛ㄧず鏃犻檺閲嶈繛\n maxReconnectAttempts: -1,\n // 蹇冭烦娑堟伅鍐呭\n heartbeatMessage: JSON.stringify({\n to: 'heartbeat'\n }),\n // 娑堟伅鍥炶皟鍑芥暟\n onMessage: null,\n // 杩炴帴鎵撳紑鍥炶皟\n onOpen: null,\n // 杩炴帴鍏抽棴鍥炶皟\n onClose: null,\n // 杩炴帴閿欒鍥炶皟\n onError: null,\n // 閲嶈繛鍥炶皟\n onReconnect: null\n }, options);\n\n // 鍐呴儴鐘舵�乗n this.socketTask = null; // WebSocket瀹炰緥\n this.isConnected = false; // 杩炴帴鐘舵�乗n this.isConnecting = false; // 鏄惁姝e湪杩炴帴涓璡n this.reconnectAttempts = 0; // 閲嶈繛灏濊瘯娆℃暟\n this.heartbeatTimer = null; // 蹇冭烦瀹氭椂鍣╘n this.reconnectTimer = null; // 閲嶈繛瀹氭椂鍣╘n this.messageQueue = []; // 娑堟伅闃熷垪\n this.isManualClose = false; // 鏄惁鎵嬪姩鍏抽棴\n }\n\n /**\r\n * 寤虹珛WebSocket杩炴帴\r\n */\n (0, _createClass2.default)(WebSocketUtil, [{\n key: \"connect\",\n value: function connect() {\n var _this = this;\n if (this.isConnecting) return;\n this.isConnecting = true;\n this.socketTask = uni.connectSocket({\n url: this.url,\n header: this.options.header || {},\n protocols: this.options.protocols || [],\n success: function success() {\n __f__(\"log\", 'WebSocket杩炴帴鍒涘缓鎴愬姛', \" at pages/home/uniWebSocket.js:60\");\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket杩炴帴鍒涘缓澶辫触', error, \" at pages/home/uniWebSocket.js:63\");\n _this.reconnect();\n },\n complete: function complete() {\n _this.isConnecting = false;\n }\n });\n\n // 鐩戝惉WebSocket杩炴帴鎵撳紑浜嬩欢\n this.socketTask.onOpen(function (res) {\n __f__(\"log\", 'WebSocket杩炴帴宸叉墦寮�', res, \" at pages/home/uniWebSocket.js:73\");\n _this.isConnected = true;\n _this.reconnectAttempts = 0;\n\n // 娓呴櫎閲嶈繛瀹氭椂鍣╘n if (_this.reconnectTimer) {\n clearTimeout(_this.reconnectTimer);\n _this.reconnectTimer = null;\n }\n\n // 寮�濮嬪績璺虫娴媆n _this.startHeartbeat();\n\n // 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋n _this.flushMessageQueue();\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onOpen === 'function') {\n _this.options.onOpen(res);\n }\n });\n\n // 鐩戝惉WebSocket鎺ユ敹鍒版湇鍔″櫒鐨勬秷鎭簨浠禱n this.socketTask.onMessage(function (res) {\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onMessage === 'function') {\n _this.options.onMessage(res);\n }\n });\n\n // 鐩戝惉WebSocket閿欒浜嬩欢\n this.socketTask.onError(function (error) {\n __f__(\"error\", 'WebSocket鍙戠敓閿欒', error, \" at pages/home/uniWebSocket.js:105\");\n _this.isConnected = false;\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onError === 'function') {\n _this.options.onError(error);\n }\n\n // 灏濊瘯閲嶈繛\n if (!_this.isManualClose) {\n _this.reconnect();\n }\n });\n\n // 鐩戝惉WebSocket鍏抽棴浜嬩欢\n this.socketTask.onClose(function (res) {\n __f__(\"log\", 'WebSocket杩炴帴宸插叧闂�', res, \" at pages/home/uniWebSocket.js:121\");\n _this.isConnected = false;\n\n // 鍋滄蹇冭烦妫�娴媆n _this.stopHeartbeat();\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof _this.options.onClose === 'function') {\n _this.options.onClose(res);\n }\n\n // 灏濊瘯閲嶈繛\n if (!_this.isManualClose) {\n _this.reconnect();\n }\n });\n }\n\n /**\r\n * 閲嶆柊杩炴帴\r\n */\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n var _this2 = this;\n // 濡傛灉鏄墜鍔ㄥ叧闂垨宸茶揪鍒版渶澶ч噸杩炴鏁帮紝鍒欎笉鍐嶉噸杩瀄n if (this.isManualClose || this.options.maxReconnectAttempts !== -1 && this.reconnectAttempts >= this.options.maxReconnectAttempts) {\n return;\n }\n\n // 娓呴櫎涔嬪墠鐨勯噸杩炲畾鏃跺櫒\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n }\n\n // 澧炲姞閲嶈繛娆℃暟\n this.reconnectAttempts++;\n __f__(\"log\", \"WebSocket\\u5C1D\\u8BD5\\u7B2C\".concat(this.reconnectAttempts, \"\\u6B21\\u91CD\\u8FDE...\"), \" at pages/home/uniWebSocket.js:160\");\n\n // 璁剧疆閲嶈繛瀹氭椂鍣╘n this.reconnectTimer = setTimeout(function () {\n _this2.connect();\n }, this.options.reconnectInterval);\n\n // 璋冪敤鍥炶皟鍑芥暟\n if (typeof this.options.onReconnect === 'function') {\n this.options.onReconnect({\n attempts: this.reconnectAttempts,\n maxAttempts: this.options.maxReconnectAttempts\n });\n }\n }\n\n /**\r\n * 寮�濮嬪績璺虫娴媆r\n */\n }, {\n key: \"startHeartbeat\",\n value: function startHeartbeat() {\n var _this3 = this;\n // 娓呴櫎涔嬪墠鐨勫績璺冲畾鏃跺櫒\n this.stopHeartbeat();\n\n // 璁剧疆鏂扮殑蹇冭烦瀹氭椂鍣紝澧炲姞鍒ゆ柇鏉′欢閬垮厤涓嶅繀瑕佺殑蹇冭烦\n this.heartbeatTimer = setInterval(function () {\n if (_this3.isConnected && _this3.socketTask && _this3.socketTask.readyState === 1) {\n __f__(\"log\", 'WebSocket鍙戦�佸績璺�', \" at pages/home/uniWebSocket.js:186\");\n _this3.send(_this3.options.heartbeatMessage);\n }\n }, this.options.heartbeatInterval);\n }\n\n /**\r\n * 鍋滄蹇冭烦妫�娴媆r\n */\n }, {\n key: \"stopHeartbeat\",\n value: function stopHeartbeat() {\n if (this.heartbeatTimer) {\n clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = null;\n }\n }\n\n /**\r\n * 鍙戦�佹秷鎭痋r\n * @param {String|Object} data 娑堟伅鍐呭\r\n * @returns {Promise} 鍙戦�佺粨鏋淺r\n */\n }, {\n key: \"send\",\n value: function send(data) {\n var _this4 = this;\n return new Promise(function (resolve, reject) {\n // 濡傛灉娑堟伅鏄璞★紝鍒欒浆涓篔SON瀛楃涓瞈n if ((0, _typeof2.default)(data) === 'object') {\n data = JSON.stringify(data);\n }\n\n // 濡傛灉杩炴帴宸叉墦寮�锛岀洿鎺ュ彂閫乗n if (_this4.isConnected && _this4.socketTask) {\n _this4.socketTask.send({\n data: data,\n success: function success(res) {\n __f__(\"log\", 'WebSocket娑堟伅鍙戦�佹垚鍔�', data, \" at pages/home/uniWebSocket.js:219\");\n resolve(res);\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket娑堟伅鍙戦�佸け璐�', error, \" at pages/home/uniWebSocket.js:223\");\n reject(error);\n }\n });\n } else {\n // 鍚﹀垯鍔犲叆娑堟伅闃熷垪\n __f__(\"log\", 'WebSocket杩炴帴鏈墦寮�锛屾秷鎭姞鍏ラ槦鍒�', data, \" at pages/home/uniWebSocket.js:229\");\n _this4.messageQueue.push({\n data: data,\n resolve: resolve,\n reject: reject\n });\n\n // 濡傛灉鏈繛鎺ワ紝鍒欏皾璇曡繛鎺n if (!_this4.isConnected && !_this4.isConnecting) {\n _this4.connect();\n }\n }\n });\n }\n\n /**\r\n * 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋r\n */\n }, {\n key: \"flushMessageQueue\",\n value: function flushMessageQueue() {\n var _this5 = this;\n if (this.messageQueue.length === 0) return;\n __f__(\"log\", \"WebSocket\\u53D1\\u9001\\u961F\\u5217\\u4E2D\\u7684\".concat(this.messageQueue.length, \"\\u6761\\u6D88\\u606F\"), \" at pages/home/uniWebSocket.js:250\");\n\n // 澶嶅埗闃熷垪骞舵竻绌哄師闃熷垪\n var queue = (0, _toConsumableArray2.default)(this.messageQueue);\n this.messageQueue = [];\n\n // 鍙戦�侀槦鍒椾腑鐨勬秷鎭痋n queue.forEach(function (item) {\n _this5.socketTask.send({\n data: item.data,\n success: function success(res) {\n __f__(\"log\", 'WebSocket闃熷垪娑堟伅鍙戦�佹垚鍔�', item.data, \" at pages/home/uniWebSocket.js:261\");\n item.resolve(res);\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket闃熷垪娑堟伅鍙戦�佸け璐�', error, \" at pages/home/uniWebSocket.js:265\");\n item.reject(error);\n }\n });\n });\n }\n\n /**\r\n * 鍏抽棴WebSocket杩炴帴\r\n */\n }, {\n key: \"close\",\n value: function close() {\n this.isManualClose = true;\n\n // 鍋滄蹇冭烦妫�娴媆n this.stopHeartbeat();\n\n // 娓呴櫎閲嶈繛瀹氭椂鍣╘n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n\n // 鍏抽棴杩炴帴\n if (this.socketTask && this.isConnected) {\n this.socketTask.close({\n code: 1000,\n reason: 'Manual close',\n success: function success() {\n __f__(\"log\", 'WebSocket杩炴帴宸叉墜鍔ㄥ叧闂�', \" at pages/home/uniWebSocket.js:293\");\n },\n fail: function fail(error) {\n __f__(\"error\", 'WebSocket鍏抽棴澶辫触', error, \" at pages/home/uniWebSocket.js:296\");\n }\n });\n }\n }\n\n /**\r\n * 閲嶇疆杩炴帴鐘舵�侊紝鍏佽閲嶆柊杩炴帴\r\n */\n }, {\n key: \"reset\",\n value: function reset() {\n this.isManualClose = false;\n this.reconnectAttempts = 0;\n if (!this.isConnected) {\n this.connect();\n }\n }\n }]);\n return WebSocketUtil;\n}();\nvar _default = WebSocketUtil;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS91bmlXZWJTb2NrZXQuanMiXSwibmFtZXMiOlsiV2ViU29ja2V0VXRpbCIsInVybCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJoZWFydGJlYXRJbnRlcnZhbCIsInJlY29ubmVjdEludGVydmFsIiwibWF4UmVjb25uZWN0QXR0ZW1wdHMiLCJoZWFydGJlYXRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvIiwib25NZXNzYWdlIiwib25PcGVuIiwib25DbG9zZSIsIm9uRXJyb3IiLCJvblJlY29ubmVjdCIsInNvY2tldFRhc2siLCJpc0Nvbm5lY3RlZCIsImlzQ29ubmVjdGluZyIsInJlY29ubmVjdEF0dGVtcHRzIiwiaGVhcnRiZWF0VGltZXIiLCJyZWNvbm5lY3RUaW1lciIsIm1lc3NhZ2VRdWV1ZSIsImlzTWFudWFsQ2xvc2UiLCJ1bmkiLCJjb25uZWN0U29ja2V0IiwiaGVhZGVyIiwicHJvdG9jb2xzIiwic3VjY2VzcyIsImZhaWwiLCJlcnJvciIsInJlY29ubmVjdCIsImNvbXBsZXRlIiwicmVzIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRIZWFydGJlYXQiLCJmbHVzaE1lc3NhZ2VRdWV1ZSIsInN0b3BIZWFydGJlYXQiLCJzZXRUaW1lb3V0IiwiY29ubmVjdCIsImF0dGVtcHRzIiwibWF4QXR0ZW1wdHMiLCJzZXRJbnRlcnZhbCIsInJlYWR5U3RhdGUiLCJzZW5kIiwiY2xlYXJJbnRlcnZhbCIsImRhdGEiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInB1c2giLCJsZW5ndGgiLCJxdWV1ZSIsImZvckVhY2giLCJpdGVtIiwiY2xvc2UiLCJjb2RlIiwicmVhc29uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkEsSUFPTUEsYUFBYTtFQUNqQix1QkFBWUMsR0FBRyxFQUFnQjtJQUFBLElBQWRDLE9BQU8sdUVBQUcsQ0FB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TixJQUFJLENBQUNQLGFBQWEsR0FBRyxJQUFJOztNQUV6QjtNQUNBLElBQUksQ0FBQ2MsYUFBYSxFQUFFOztNQUVwQjtNQUNBLElBQUksSUFBSSxDQUFDaEIsY0FBYyxFQUFFO1FBQ3ZCYSxZQUFZLENBQUMsSUFBSSxDQUFDYixjQUFjLENBQUM7UUFDakMsSUFBSSxDQUFDQSxjQUFjLEdBQUcsSUFBSTtNQUM1Qjs7TUFFQTtNQUNBLElBQUksSUFBSSxDQUFDTCxVQUFVLElBQUksSUFBSSxDQUFDQyxXQUFXLEVBQUU7UUFDdkMsSUFBSSxDQUFDRCxVQUFVLENBQUN1QyxLQUFLLENBQUM7VUFDcEJDLElBQUksRUFBRSxJQUFJO1VBQ1ZDLE1BQU0sRUFBRSxjQUFjO1VBQ3RCN0IsT0FBTyxFQUFFLG1CQUFNO1lBQ2IsYUFBWSxrQkFBa0I7VUFDaEMsQ0FBQztVQUNEQyxJQUFJLEVBQUUsY0FBQ0MsS0FBSyxFQUFLO1lBQ2YsZUFBYyxlQUFlLEVBQUVBLEtBQUs7VUFDdEM7UUFDRixDQUFDLENBQUM7TUFDSjtJQUNGOztJQUVBO0FBQ0Y7QUFDQTtFQUZFO0lBQUE7SUFBQSxPQUdBLGlCQUFRO01BQ04sSUFBSSxDQUFDUCxhQUFhLEdBQUcsS0FBSztNQUMxQixJQUFJLENBQUNKLGlCQUFpQixHQUFHLENBQUM7TUFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQ0YsV0FBVyxFQUFFO1FBQ3JCLElBQUksQ0FBQ3NCLE9BQU8sRUFBRTtNQUNoQjtJQUNGO0VBQUM7RUFBQTtBQUFBO0FBQUEsZUFHWXhDLGFBQWE7QUFBQSwyQiIsImZpbGUiOiIxMjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVW5pQXBwIFdlYlNvY2tldOWwgeijheexu++8iOWxgOmDqOS9v+eUqOeJiOacrO+8iVxyXG4gKiDlip/og73vvJpcclxuICogMS4g6Ieq5Yqo6YeN6L+eXHJcbiAqIDIuIOW/g+i3s+ajgOa1i1xyXG4gKiAzLiDmtojmga/lj5HpgIHpmJ/liJdcclxuICovXHJcbmNsYXNzIFdlYlNvY2tldFV0aWwge1xyXG4gIGNvbnN0cnVjdG9yKHVybCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAvLyBXZWJTb2NrZXTmnI3liqHlnLDlnYBcclxuICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgLy8g6YWN572u6YCJ6aG5XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7XHJcbiAgICAgICAgLy8g5b+D6Lez5qOA5rWL6Ze06ZqU77yI5q+r56eS77yJXHJcbiAgICAgICAgaGVhcnRiZWF0SW50ZXJ2YWw6IDMwMDAwLFxyXG4gICAgICAgIC8vIOmHjei/numXtOmalO+8iOavq+enku+8iVxyXG4gICAgICAgIHJlY29ubmVjdEludGVydmFsOiAzMDAwLFxyXG4gICAgICAgIC8vIOacgOWkp+mHjei/nuasoeaVsO+8jC0x6KGo56S65peg6ZmQ6YeN6L+eXHJcbiAgICAgICAgbWF4UmVjb25uZWN0QXR0ZW1wdHM6IC0xLFxyXG4gICAgICAgIC8vIOW/g+i3s+a2iOaBr+WGheWuuVxyXG4gICAgICAgIGhlYXJ0YmVhdE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHsgdG86ICdoZWFydGJlYXQnIH0pLFxyXG4gICAgICAgIC8vIOa2iOaBr+Wbnuiwg+WHveaVsFxyXG4gICAgICAgIG9uTWVzc2FnZTogbnVsbCxcclxuICAgICAgICAvLyDov57mjqXmiZPlvIDlm57osINcclxuICAgICAgICBvbk9wZW46IG51bGwsXHJcbiAgICAgICAgLy8g6L+e5o6l5YWz6Zet5Zue6LCDXHJcbiAgICAgICAgb25DbG9zZTogbnVsbCxcclxuICAgICAgICAvLyDov57mjqXplJnor6/lm57osINcclxuICAgICAgICBvbkVycm9yOiBudWxsLFxyXG4gICAgICAgIC8vIOmHjei/nuWbnuiwg1xyXG4gICAgICAgIG9uUmVjb25uZWN0OiBudWxsXHJcbiAgICAgIH0sXHJcbiAgICAgIG9wdGlvbnNcclxuICAgICk7XHJcbiAgICBcclxuICAgIC8vIOWGhemDqOeKtuaAgVxyXG4gICAgdGhpcy5zb2NrZXRUYXNrID0gbnVsbDsgICAgICAgIC8vIFdlYlNvY2tldOWunuS+i1xyXG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlOyAgICAgIC8vIOi/nuaOpeeKtuaAgVxyXG4gICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTsgICAgIC8vIOaYr+WQpuato+WcqOi/nuaOpeS4rVxyXG4gICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9IDA7ICAgIC8vIOmHjei/nuWwneivleasoeaVsFxyXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IG51bGw7ICAgIC8vIOW/g+i3s+WumuaXtuWZqFxyXG4gICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IG51bGw7ICAgIC8vIOmHjei/nuWumuaXtuWZqFxyXG4gICAgdGhpcy5tZXNzYWdlUXVldWUgPSBbXTsgICAgICAgIC8vIOa2iOaBr+mYn+WIl1xyXG4gICAgdGhpcy5pc01hbnVhbENsb3NlID0gZmFsc2U7ICAgIC8vIOaYr+WQpuaJi+WKqOWFs+mXrVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDlu7rnq4tXZWJTb2NrZXTov57mjqVcclxuICAgKi9cclxuICBjb25uZWN0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNDb25uZWN0aW5nKSByZXR1cm47XHJcbiAgICBcclxuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc29ja2V0VGFzayA9IHVuaS5jb25uZWN0U29ja2V0KHtcclxuICAgICAgdXJsOiB0aGlzLnVybCxcclxuICAgICAgaGVhZGVyOiB0aGlzLm9wdGlvbnMuaGVhZGVyIHx8IHt9LFxyXG4gICAgICBwcm90b2NvbHM6IHRoaXMub3B0aW9ucy5wcm90b2NvbHMgfHwgW10sXHJcbiAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V06L+e5o6l5Yib5bu65oiQ5YqfJyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGZhaWw6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOi/nuaOpeWIm+W7uuWksei0pScsIGVycm9yKTtcclxuICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvLyDnm5HlkKxXZWJTb2NrZXTov57mjqXmiZPlvIDkuovku7ZcclxuICAgIHRoaXMuc29ja2V0VGFzay5vbk9wZW4oKHJlcykgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V06L+e5o6l5bey5omT5byAJywgcmVzKTtcclxuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPSAwO1xyXG4gICAgICBcclxuICAgICAgLy8g5riF6Zmk6YeN6L+e5a6a5pe25ZmoXHJcbiAgICAgIGlmICh0aGlzLnJlY29ubmVjdFRpbWVyKSB7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0VGltZXIpO1xyXG4gICAgICAgIHRoaXMucmVjb25uZWN0VGltZXIgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyDlvIDlp4vlv4Pot7Pmo4DmtYtcclxuICAgICAgdGhpcy5zdGFydEhlYXJ0YmVhdCgpO1xyXG4gICAgICBcclxuICAgICAgLy8g5Y+R6YCB6Zif5YiX5Lit55qE5raI5oGvXHJcbiAgICAgIHRoaXMuZmx1c2hNZXNzYWdlUXVldWUoKTtcclxuICAgICAgXHJcbiAgICAgIC8vIOiwg+eUqOWbnuiwg+WHveaVsFxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vbk9wZW4gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMub25PcGVuKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvLyDnm5HlkKxXZWJTb2NrZXTmjqXmlLbliLDmnI3liqHlmajnmoTmtojmga/kuovku7ZcclxuICAgIHRoaXMuc29ja2V0VGFzay5vbk1lc3NhZ2UoKHJlcykgPT4geyBcclxuICAgICAgLy8g6LCD55So5Zue6LCD5Ye95pWwXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uTWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5vbk1lc3NhZ2UocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vIOebkeWQrFdlYlNvY2tldOmUmeivr+S6i+S7tlxyXG4gICAgdGhpcy5zb2NrZXRUYXNrLm9uRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldOWPkeeUn+mUmeivrycsIGVycm9yKTtcclxuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xyXG4gICAgICBcclxuICAgICAgLy8g6LCD55So5Zue6LCD5Ye95pWwXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMub25FcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIOWwneivlemHjei/nlxyXG4gICAgICBpZiAoIXRoaXMuaXNNYW51YWxDbG9zZSkge1xyXG4gICAgICAgIHRoaXMucmVjb25uZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvLyDnm5HlkKxXZWJTb2NrZXTlhbPpl63kuovku7ZcclxuICAgIHRoaXMuc29ja2V0VGFzay5vbkNsb3NlKChyZXMpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeW3suWFs+mXrScsIHJlcyk7XHJcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgXHJcbiAgICAgIC8vIOWBnOatouW/g+i3s+ajgOa1i1xyXG4gICAgICB0aGlzLnN0b3BIZWFydGJlYXQoKTtcclxuICAgICAgXHJcbiAgICAgIC8vIOiwg+eUqOWbnuiwg+WHveaVsFxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vbkNsb3NlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2xvc2UocmVzKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLy8g5bCd6K+V6YeN6L+eXHJcbiAgICAgIGlmICghdGhpcy5pc01hbnVhbENsb3NlKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIOmHjeaWsOi/nuaOpVxyXG4gICAqL1xyXG4gIHJlY29ubmVjdCgpIHtcclxuICAgIC8vIOWmguaenOaYr+aJi+WKqOWFs+mXreaIluW3sui+vuWIsOacgOWkp+mHjei/nuasoeaVsO+8jOWImeS4jeWGjemHjei/nlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmlzTWFudWFsQ2xvc2UgfHxcclxuICAgICAgKHRoaXMub3B0aW9ucy5tYXhSZWNvbm5lY3RBdHRlbXB0cyAhPT0gLTEgJiZcclxuICAgICAgICB0aGlzLnJlY29ubmVjdEF0dGVtcHRzID49IHRoaXMub3B0aW9ucy5tYXhSZWNvbm5lY3RBdHRlbXB0cylcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIOa4hemZpOS5i+WJjeeahOmHjei/nuWumuaXtuWZqFxyXG4gICAgaWYgKHRoaXMucmVjb25uZWN0VGltZXIpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0VGltZXIpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyDlop7liqDph43ov57mrKHmlbBcclxuICAgIHRoaXMucmVjb25uZWN0QXR0ZW1wdHMrKztcclxuICAgIFxyXG4gICAgY29uc29sZS5sb2coYFdlYlNvY2tldOWwneivleesrCR7dGhpcy5yZWNvbm5lY3RBdHRlbXB0c33mrKHph43ov54uLi5gKTtcclxuICAgIFxyXG4gICAgLy8g6K6+572u6YeN6L+e5a6a5pe25ZmoXHJcbiAgICB0aGlzLnJlY29ubmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgfSwgdGhpcy5vcHRpb25zLnJlY29ubmVjdEludGVydmFsKTtcclxuICAgIFxyXG4gICAgLy8g6LCD55So5Zue6LCD5Ye95pWwXHJcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5vblJlY29ubmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLm9wdGlvbnMub25SZWNvbm5lY3Qoe1xyXG4gICAgICAgIGF0dGVtcHRzOiB0aGlzLnJlY29ubmVjdEF0dGVtcHRzLFxyXG4gICAgICAgIG1heEF0dGVtcHRzOiB0aGlzLm9wdGlvbnMubWF4UmVjb25uZWN0QXR0ZW1wdHNcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIOW8gOWni+W/g+i3s+ajgOa1i1xyXG4gICAqL1xyXG4gIHN0YXJ0SGVhcnRiZWF0KCkge1xyXG4gICAgLy8g5riF6Zmk5LmL5YmN55qE5b+D6Lez5a6a5pe25ZmoXHJcbiAgICB0aGlzLnN0b3BIZWFydGJlYXQoKTtcclxuICAgIFxyXG4gICAgLy8g6K6+572u5paw55qE5b+D6Lez5a6a5pe25Zmo77yM5aKe5Yqg5Yik5pat5p2h5Lu26YG/5YWN5LiN5b+F6KaB55qE5b+D6LezXHJcbiAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCAmJiB0aGlzLnNvY2tldFRhc2sgJiYgdGhpcy5zb2NrZXRUYXNrLnJlYWR5U3RhdGUgPT09IDEpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V05Y+R6YCB5b+D6LezJyk7XHJcbiAgICAgICAgdGhpcy5zZW5kKHRoaXMub3B0aW9ucy5oZWFydGJlYXRNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSwgdGhpcy5vcHRpb25zLmhlYXJ0YmVhdEludGVydmFsKTtcclxufVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIOWBnOatouW/g+i3s+ajgOa1i1xyXG4gICAqL1xyXG4gIHN0b3BIZWFydGJlYXQoKSB7XHJcbiAgICBpZiAodGhpcy5oZWFydGJlYXRUaW1lcikge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpO1xyXG4gICAgICB0aGlzLmhlYXJ0YmVhdFRpbWVyID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5Y+R6YCB5raI5oGvXHJcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBkYXRhIOa2iOaBr+WGheWuuVxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSDlj5HpgIHnu5PmnpxcclxuICAgKi9cclxuICBzZW5kKGRhdGEpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIC8vIOWmguaenOa2iOaBr+aYr+Wvueixoe+8jOWImei9rOS4ukpTT07lrZfnrKbkuLJcclxuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIGRhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLy8g5aaC5p6c6L+e5o6l5bey5omT5byA77yM55u05o6l5Y+R6YCBXHJcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkICYmIHRoaXMuc29ja2V0VGFzaykge1xyXG4gICAgICAgIHRoaXMuc29ja2V0VGFzay5zZW5kKHtcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWJTb2NrZXTmtojmga/lj5HpgIHmiJDlip8nLCBkYXRhKTtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGZhaWw6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXTmtojmga/lj5HpgIHlpLHotKUnLCBlcnJvcik7XHJcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5ZCm5YiZ5Yqg5YWl5raI5oGv6Zif5YiXXHJcbiAgICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeacquaJk+W8gO+8jOa2iOaBr+WKoOWFpemYn+WIlycsIGRhdGEpO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVF1ZXVlLnB1c2goe1xyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIHJlc29sdmUsXHJcbiAgICAgICAgICByZWplY3RcclxuICAgICAgICB9KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyDlpoLmnpzmnKrov57mjqXvvIzliJnlsJ3or5Xov57mjqVcclxuICAgICAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQgJiYgIXRoaXMuaXNDb25uZWN0aW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDlj5HpgIHpmJ/liJfkuK3nmoTmtojmga9cclxuICAgKi9cclxuICBmbHVzaE1lc3NhZ2VRdWV1ZSgpIHtcclxuICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIFxyXG4gICAgY29uc29sZS5sb2coYFdlYlNvY2tldOWPkemAgemYn+WIl+S4reeahCR7dGhpcy5tZXNzYWdlUXVldWUubGVuZ3Rofeadoea2iOaBr2ApO1xyXG4gICAgXHJcbiAgICAvLyDlpI3liLbpmJ/liJflubbmuIXnqbrljp/pmJ/liJdcclxuICAgIGNvbnN0IHF1ZXVlID0gWy4uLnRoaXMubWVzc2FnZVF1ZXVlXTtcclxuICAgIHRoaXMubWVzc2FnZVF1ZXVlID0gW107XHJcbiAgICBcclxuICAgIC8vIOWPkemAgemYn+WIl+S4reeahOa2iOaBr1xyXG4gICAgcXVldWUuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgdGhpcy5zb2NrZXRUYXNrLnNlbmQoe1xyXG4gICAgICAgIGRhdGE6IGl0ZW0uZGF0YSxcclxuICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V06Zif5YiX5raI5oGv5Y+R6YCB5oiQ5YqfJywgaXRlbS5kYXRhKTtcclxuICAgICAgICAgIGl0ZW0ucmVzb2x2ZShyZXMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmFpbDogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXTpmJ/liJfmtojmga/lj5HpgIHlpLHotKUnLCBlcnJvcik7XHJcbiAgICAgICAgICBpdGVtLnJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDlhbPpl61XZWJTb2NrZXTov57mjqVcclxuICAgKi9cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNNYW51YWxDbG9zZSA9IHRydWU7XHJcbiAgICBcclxuICAgIC8vIOWBnOatouW/g+i3s+ajgOa1i1xyXG4gICAgdGhpcy5zdG9wSGVhcnRiZWF0KCk7XHJcbiAgICBcclxuICAgIC8vIOa4hemZpOmHjei/nuWumuaXtuWZqFxyXG4gICAgaWYgKHRoaXMucmVjb25uZWN0VGltZXIpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0VGltZXIpO1xyXG4gICAgICB0aGlzLnJlY29ubmVjdFRpbWVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8g5YWz6Zet6L+e5o6lXHJcbiAgICBpZiAodGhpcy5zb2NrZXRUYXNrICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zb2NrZXRUYXNrLmNsb3NlKHtcclxuICAgICAgICBjb2RlOiAxMDAwLFxyXG4gICAgICAgIHJlYXNvbjogJ01hbnVhbCBjbG9zZScsXHJcbiAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldOi/nuaOpeW3suaJi+WKqOWFs+mXrScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmFpbDogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXTlhbPpl63lpLHotKUnLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeN572u6L+e5o6l54q25oCB77yM5YWB6K646YeN5paw6L+e5o6lXHJcbiAgICovXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlzTWFudWFsQ2xvc2UgPSBmYWxzZTtcclxuICAgIHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPSAwO1xyXG4gICAgXHJcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcclxuICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBXZWJTb2NrZXRVdGlsOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///122\n"); /***/ }), /* 123 */ @@ -14330,7 +14298,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n data: '',\n url: 'http://10.10.10.120:9090/wcs/h5/index.html'\n };\n },\n onShow: function onShow() {\n var that = this;\n uni.getStorage({\n key: \"data\",\n success: function success(e) {\n that.data = e.data;\n }\n });\n // 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n },\n\n methods: {\n setUrl: function setUrl() {\n if (this.url != '') {\n uni.setStorage({\n key: \"data\",\n data: this.url\n });\n this.data = this.url;\n }\n },\n clearUrl: function clearUrl() {\n this.data = \"\";\n this.url = \"http://10.10.10.120:9090/wcs/h5/index.html\";\n uni.removeStorage({\n key: \"data\"\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvdGVzdC90ZXN0LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidXJsIiwib25TaG93IiwidGhhdCIsInVuaSIsImdldFN0b3JhZ2UiLCJrZXkiLCJzdWNjZXNzIiwiZSIsIm1ldGhvZHMiLCJzZXRVcmwiLCJzZXRTdG9yYWdlIiwiY2xlYXJVcmwiLCJyZW1vdmVTdG9yYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxlQUVlO0VBQ2RBLElBQUksa0JBQUc7SUFDTixPQUFPO01BQ05BLElBQUksRUFBRSxFQUFFO01BQ1JDLEdBQUcsRUFBRTtJQUNOLENBQUM7RUFDRixDQUFDO0VBQ0RDLE1BQU0sb0JBQUc7SUFDUixJQUFJQyxJQUFJLEdBQUcsSUFBSTtJQUNmQyxHQUFHLENBQUNDLFVBQVUsQ0FBQztNQUNkQyxHQUFHLEVBQUUsTUFBTTtNQUNYQyxPQUFPLG1CQUFDQyxDQUFDLEVBQUU7UUFDVkwsSUFBSSxDQUFDSCxJQUFJLEdBQUdRLENBQUMsQ0FBQ1IsSUFBSTtNQUNuQjtJQUNELENBQUMsQ0FBQztJQUNGO0VBQ0QsQ0FBQzs7RUFDRFMsT0FBTyxFQUFFO0lBQ1JDLE1BQU0sb0JBQUc7TUFDUixJQUFHLElBQUksQ0FBQ1QsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUNsQkcsR0FBRyxDQUFDTyxVQUFVLENBQUM7VUFDZEwsR0FBRyxFQUFFLE1BQU07VUFDWE4sSUFBSSxFQUFFLElBQUksQ0FBQ0M7UUFDWixDQUFDLENBQUM7UUFDRixJQUFJLENBQUNELElBQUksR0FBRyxJQUFJLENBQUNDLEdBQUc7TUFDckI7SUFDRCxDQUFDO0lBQ0RXLFFBQVEsc0JBQUc7TUFDVixJQUFJLENBQUNaLElBQUksR0FBRyxFQUFFO01BQ2QsSUFBSSxDQUFDQyxHQUFHLEdBQUcsNENBQTRDO01BQ3ZERyxHQUFHLENBQUNTLGFBQWEsQ0FBQztRQUNqQlAsR0FBRyxFQUFFO01BQ04sQ0FBQyxDQUFDO0lBQ0g7RUFDRDtBQUNELENBQUM7QUFBQSIsImZpbGUiOiIxMjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogJycsXG5cdFx0XHR1cmw6ICdodHRwOi8vMTAuMTAuMTAuMTIwOjkwOTAvd2NzL2g1L2luZGV4Lmh0bWwnXG5cdFx0fVxuXHR9LFxuXHRvblNob3coKSB7XG5cdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0dW5pLmdldFN0b3JhZ2Uoe1xuXHRcdFx0a2V5OiBcImRhdGFcIixcblx0XHRcdHN1Y2Nlc3MoZSkge1xuXHRcdFx0XHR0aGF0LmRhdGEgPSBlLmRhdGFcblx0XHRcdH1cblx0XHR9KVxuXHRcdC8vIOmakOiXj+aXtumXtCznlLXph48s5L+h5Y+3562JXG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHRzZXRVcmwoKSB7XG5cdFx0XHRpZih0aGlzLnVybCAhPSAnJykge1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZSh7XG5cdFx0XHRcdFx0a2V5OiBcImRhdGFcIixcblx0XHRcdFx0XHRkYXRhOiB0aGlzLnVybFxuXHRcdFx0XHR9KVxuXHRcdFx0XHR0aGlzLmRhdGEgPSB0aGlzLnVybDtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNsZWFyVXJsKCkge1xuXHRcdFx0dGhpcy5kYXRhID0gXCJcIlxuXHRcdFx0dGhpcy51cmwgPSBcImh0dHA6Ly8xMC4xMC4xMC4xMjA6OTA5MC93Y3MvaDUvaW5kZXguaHRtbFwiXG5cdFx0XHR1bmkucmVtb3ZlU3RvcmFnZSh7XG5cdFx0XHRcdGtleTogXCJkYXRhXCJcblx0XHRcdH0pXG5cdFx0fVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///127\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n data: '',\n url: 'http://10.10.10.120:9090/wcs/h5/index.html'\n };\n },\n onShow: function onShow() {\n var that = this;\n uni.getStorage({\n key: \"data\",\n success: function success(e) {\n that.data = e.data;\n }\n });\n // 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n },\n\n methods: {\n setUrl: function setUrl() {\n if (this.url != '') {\n uni.setStorage({\n key: \"data\",\n data: this.url\n });\n this.data = this.url;\n }\n },\n clearUrl: function clearUrl() {\n this.data = \"\";\n this.url = \"http://10.10.10.120:9090/wcs/h5/index.html\";\n uni.removeStorage({\n key: \"data\"\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvdGVzdC90ZXN0LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidXJsIiwib25TaG93IiwidW5pIiwia2V5Iiwic3VjY2VzcyIsInRoYXQiLCJtZXRob2RzIiwic2V0VXJsIiwiY2xlYXJVcmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQWFBO0VBQ0FBO0lBQ0E7TUFDQUE7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQUM7TUFDQTtRQUNBTDtVQUNBQztVQUNBSjtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FTO01BQ0E7TUFDQTtNQUNBTjtRQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3PlxyXG5cdFx0PGJ1dHRvbiBjbGFzcz1cImNsZWFyXCIgQGNsaWNrPVwiY2xlYXJVcmxcIj5DbGVhcjwvYnV0dG9uPlxyXG5cdFx0PHdlYi12aWV3IHYtaWY9XCJkYXRhICE9ICcnXCIgOnNyYz1cImRhdGFcIj48L3dlYi12aWV3PlxyXG5cdFx0XHJcblx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi10b3A6IDEwMHB4O1wiIHYtaWY9XCJkYXRhID09ICcnXCI+XHJcblx0XHRcdDxpbnB1dCB2LW1vZGVsPVwidXJsXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIui+k+WFpVVSTFwiPlxyXG5cdFx0XHQ8YnV0dG9uIEBjbGljaz1cInNldFVybFwiPuiuvue9rjwvYnV0dG9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRkYXRhOiAnJyxcclxuXHRcdFx0XHR1cmw6ICdodHRwOi8vMTAuMTAuMTAuMTIwOjkwOTAvd2NzL2g1L2luZGV4Lmh0bWwnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHR1bmkuZ2V0U3RvcmFnZSh7XHJcblx0XHRcdFx0a2V5OiBcImRhdGFcIixcclxuXHRcdFx0XHRzdWNjZXNzKGUpIHtcclxuXHRcdFx0XHRcdHRoYXQuZGF0YSA9IGUuZGF0YVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdFx0Ly8g6ZqQ6JeP5pe26Ze0LOeUtemHjyzkv6Hlj7fnrYlcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdHNldFVybCgpIHtcclxuXHRcdFx0XHRpZih0aGlzLnVybCAhPSAnJykge1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRrZXk6IFwiZGF0YVwiLFxyXG5cdFx0XHRcdFx0XHRkYXRhOiB0aGlzLnVybFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHRoaXMuZGF0YSA9IHRoaXMudXJsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xlYXJVcmwoKSB7XHJcblx0XHRcdFx0dGhpcy5kYXRhID0gXCJcIlxyXG5cdFx0XHRcdHRoaXMudXJsID0gXCJodHRwOi8vMTAuMTAuMTAuMTIwOjkwOTAvd2NzL2g1L2luZGV4Lmh0bWxcIlxyXG5cdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlKHtcclxuXHRcdFx0XHRcdGtleTogXCJkYXRhXCJcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQuY2xlYXIge1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHotaW5kZXg6IDk5OTk7XHJcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNsZWFyOmhvdmVyIHtcclxuXHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///127\n"); /***/ }), /* 128 */ @@ -15972,7 +15940,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 119));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 118));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 = {\n data: function data() {\n return {\n commonUrl: null,\n // 閫氱敤url\n show: true,\n modeClass: 'fade',\n styles: {},\n baseIP: '',\n baseLedId: '',\n basePort: '',\n crnId: '',\n value: '',\n xDistance: 0,\n yDistance: 0,\n xDuration: 0,\n yDuration: 0,\n used: 317,\n usedPr: 90,\n stockCount: 0,\n emptyCount: 0,\n noneCount: 0,\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n chartsDataLine1: {},\n chartsDataPie2: {},\n ringOpts: {},\n year: 2022,\n month: 4,\n day: 14,\n hours: 13,\n minutes: 38,\n seconds: 13,\n week: '鏄熸湡鍥�',\n ani: '',\n // move: 'upMove 1.5s 1;',\n move: false,\n topMove: 'topUp',\n floorMove: '',\n version: '',\n // newspaper:'鎷f枡鍑哄簱锛�4426)\\n婧愬簱浣嶏細1200101\\n鐩爣绔欙細186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '',\n errorPaper: '',\n title: '',\n staNo: '',\n matnr: '',\n maknx: '',\n specs: '',\n count: '',\n orderNo: null,\n doneOfTray: '',\n totalOfTray: '',\n doneOfUnit: '',\n totalOfUnit: '',\n errorMsg: null,\n width: 'full-width',\n errorShow: '',\n pakinShow: '',\n pakinGun: '',\n orderShow: false,\n swiper: 'swiper-here',\n autoplay: true,\n // 鑷姩寰幆\n interval: 1000,\n // 璋冪敤鏃堕暱\n duration: 8000,\n // 绉诲姩閫熷害\n matList: [],\n // 璁㈠崟鍒楄〃\n ejectShow: false\n };\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n this.getUrl();\n },\n onLoad: function onLoad() {},\n onReady: function onReady() {\n var _this = this;\n setInterval(function () {\n // 鑾峰緱鍒濆鏁版嵁\n _this.initlineChart();\n _this.initPieChart();\n // 涓婚〉淇℃伅\n _this.getServerData();\n _this.getOther();\n // 鍏朵粬淇℃伅\n _this.getDate();\n _this.getPakin();\n _this.getError();\n // this.getYYY();\n // this.getEEE();\n _this.animation();\n _this.getUrl();\n }, 1000);\n },\n methods: {\n // 鑾峰彇url\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;\n this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));\n },\n // 鑾峰彇閿欒淇℃伅\n getYYY: function getYYY() {\n var that = this;\n var result = _data.default.dataEEE;\n // 娴嬭瘯鐢� 鈫揬n var res = result.data;\n // 娴嬭瘯鐢� 鈫慭n // 杩斿洖缁撴灉鏈夊�� 涓斿�间笉绛変簬绌哄�� 灏辨槸鏈夐敊璇俊鎭渶瑕佸睍绀篭n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 鏄剧ず\n } else {\n that.errorPaper = '';\n that.errorShow = false;\n if (that.pakinShow) {\n return;\n } else {\n that.move = true; // 闅愯棌\n }\n }\n },\n getEEE: function getEEE() {\n var that = this;\n var newsData = '';\n var str = '';\n var result = _data.default.dataYYY;\n // 娴嬭瘯鐢� 鈫揬n var res = result.data;\n // 娴嬭瘯鐢� 鈫慭n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.title = '妫�鏂欏嚭搴�';\n }\n that.staNo = '鐩爣绔�:' + res.data[0].staNo;\n that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;\n that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;\n that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;\n that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;\n that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;\n that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;\n if (that.errorShow) {\n return;\n } else {\n that.newspaper = newsData;\n that.move = false;\n }\n } else {\n that.move = true;\n }\n },\n // 鑾峰彇閿欒淇℃伅\n getError: function getError() {\n var that = this;\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 鏄剧ず\n } else {\n that.errorShow = false;\n // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 闅愯棌\n // }\n }\n }\n });\n },\n getPakin: function getPakin() {\n var that = this;\n that.matList = []; // 娓呯┖鏉$爜鍒楄〃\n var newsData = '';\n var str = '';\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (that.errorShow) {\n return; // 鏈夐敊璇俊鎭痋n }\n\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.title = '妫�鏂欏嚭搴�';\n } else that.title = res.data[0].title;\n that.staNo = '鐩爣绔�:' + res.data[0].staNo;\n that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;\n that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;\n that.specs = '瑙勬牸锛�' + res.data[0].matDtos[0].specs;\n that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;\n that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;\n that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;\n that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;\n that.newspaper = newsData;\n that.move = false;\n } else {\n that.move = true;\n }\n }\n });\n },\n animation: function animation() {\n if (this.move) {\n this.topMove = 'topUp';\n this.floorMove = 'floorUp';\n } else {\n this.topMove = 'topDown';\n this.floorMove = 'floorDown';\n }\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(); // 鑾峰彇褰撳墠鏃堕棿\n date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 鎶樼嚎鍥� *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n __f__(\"log\", result, \" at pages/index/index.vue:586\");\n if (res.code === 200) {\n 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)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 楗煎浘 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.stockCount = res.data.stockCunt;\n that.emptyCount = res.data.emptyCount;\n that.noneCount = res.data.noneCount;\n that.used = res.data.used;\n that.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: 1\n },\n success: function success(result) {\n __f__(\"log\", result, \" at pages/index/index.vue:626\");\n var res = result.data;\n if (res.code === 200) {\n that.xDistance = res.data.xDistance;\n that.yDistance = res.data.yDistance;\n that.xDuration = res.data.xDuration;\n that.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\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:662\");\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:\n this.week = \"鏄熸湡鏃";\n break;\n case 1:\n this.week = \"鏄熸湡涓�\";\n break;\n case 2:\n this.week = \"鏄熸湡浜孿";\n break;\n case 3:\n this.week = \"鏄熸湡涓塡";\n break;\n case 4:\n this.week = \"鏄熸湡鍥沑";\n break;\n case 5:\n this.week = \"鏄熸湡浜擻";\n break;\n default:\n this.week = \"鏄熸湡鍏璡";\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJvcmRlck5vIiwiZG9uZU9mVHJheSIsInRvdGFsT2ZUcmF5IiwiZG9uZU9mVW5pdCIsInRvdGFsT2ZVbml0IiwiZXJyb3JNc2ciLCJ3aWR0aCIsImVycm9yU2hvdyIsInBha2luU2hvdyIsInBha2luR3VuIiwib3JkZXJTaG93Iiwic3dpcGVyIiwiYXV0b3BsYXkiLCJpbnRlcnZhbCIsImR1cmF0aW9uIiwibWF0TGlzdCIsImVqZWN0U2hvdyIsIm1vdW50ZWQiLCJ0aGF0IiwiQmFzZUlQIiwidW5pIiwiZ2V0U3RvcmFnZVN5bmMiLCJCYXNlTGVkSWQiLCJCYXNlUG9ydCIsIkJhc2VDcm5JZCIsImJhc2VDcm5JZCIsImdldFVybCIsIm9uTG9hZCIsIm9uUmVhZHkiLCJzZXRJbnRlcnZhbCIsImluaXRsaW5lQ2hhcnQiLCJpbml0UGllQ2hhcnQiLCJnZXRTZXJ2ZXJEYXRhIiwiZ2V0T3RoZXIiLCJnZXREYXRlIiwiZ2V0UGFraW4iLCJnZXRFcnJvciIsImFuaW1hdGlvbiIsIm1ldGhvZHMiLCJiYXNlSHR0cCIsImJhc2VVcmwiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJkZW1vZGF0YSIsIkxpbmUiLCJnZXRZWVkiLCJyZXN1bHQiLCJ5Y3FkYXRhIiwiZGF0YUVFRSIsInJlcyIsImdldEVFRSIsIm5ld3NEYXRhIiwic3RyIiwiZGF0YVlZWSIsImlvVHlwZSIsIm1hdER0b3MiLCJyZXF1ZXN0IiwidXJsIiwibGVkSWQiLCJtZXRob2QiLCJzdWNjZXNzIiwiZ2V0RGF0ZUZvcm1hdCIsImRhdGUiLCJEYXRlIiwic2V0RGF0ZSIsIm0iLCJnZXRNb250aCIsImQiLCJuZXdEYXRlIiwiY29kZSIsImNhdGVnb3JpZXMiLCJzZXJpZXMiLCJyb3dzIiwiUGllIiwicGllIiwic3RvY2tDdW50IiwiZWplY3RlZCIsImVqZWN0Q29uZmlybSIsInNldFN0b3JhZ2VTeW5jIiwiZWplY3RDbG9zZSIsImNvbXBsZXRlIiwiZSIsImR0IiwiZ2V0RnVsbFllYXIiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwid2Vla3MiLCJnZXREYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUEyU0M7QUFDQTtBQTVTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QSxJQUFJLEdBQUcsS0FBSztVQUFFO1FBQzNCLEtBQUssQ0FBQztVQUFFLElBQUksQ0FBQ0EsSUFBSSxHQUFHLEtBQUs7VUFBRTtRQUMzQixLQUFLLENBQUM7VUFBRSxJQUFJLENBQUNBLElBQUksR0FBRyxLQUFLO1VBQUU7UUFDM0I7VUFBVSxJQUFJLENBQUNBLElBQUksR0FBRyxLQUFLO01BQUM7SUFFOUI7RUFDRDtBQUNELENBQUM7QUFBQSwyQiIsImZpbGUiOiIxNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcblx0aW1wb3J0IGRlbW9kYXRhIGZyb20gJ0AvbW9ja2RhdGEvZGVtb2RhdGEuanNvbic7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxuXHRcdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0XHRtb2RlQ2xhc3M6ICdmYWRlJyxcblx0XHRcdFx0c3R5bGVzOiB7fSxcblx0XHRcdFx0YmFzZUlQOicnLFxuXHRcdFx0XHRiYXNlTGVkSWQ6JycsXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxuXHRcdFx0XHRjcm5JZDonJyxcblx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXG5cdFx0XHRcdHlEaXN0YW5jZTowLFxuXHRcdFx0XHR4RHVyYXRpb246MCxcblx0XHRcdFx0eUR1cmF0aW9uOjAsXG5cdFx0XHRcdHVzZWQ6MzE3LFxuXHRcdFx0XHR1c2VkUHI6IDkwLFxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXG5cdFx0XHRcdGVtcHR5Q291bnQ6MCxcblx0XHRcdFx0bm9uZUNvdW50OjAsXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xuXHRcdFx0XHRcdFx0XCJjYXRlZ29yaWVzXCI6IFtdLFxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwiUGllXCI6IHtcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdFx0XHRcdFx0fV1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxuXHRcdFx0XHR5ZWFyOjIwMjIsXG5cdFx0XHRcdG1vbnRoOjQsXG5cdFx0XHRcdGRheToxNCxcblx0XHRcdFx0aG91cnM6MTMsXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXG5cdFx0XHRcdHNlY29uZHM6MTMsXG5cdFx0XHRcdHdlZWs6J+aYn+acn+WbmycsXG5cdFx0XHRcdGFuaTonJyxcblx0XHRcdFx0Ly8gbW92ZTogJ3VwTW92ZSAxLjVzIDE7Jyxcblx0XHRcdFx0bW92ZTpmYWxzZSxcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxuXHRcdFx0XHRmbG9vck1vdmU6JycsXG5cdFx0XHRcdHZlcnNpb246JycsXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcblx0XHRcdFx0bmV3c3BhcGVyOicnLFxuXHRcdFx0XHRlcnJvclBhcGVyOicnLFxuXHRcdFx0XHR0aXRsZTonJyxcblx0XHRcdFx0c3RhTm86JycsXG5cdFx0XHRcdG1hdG5yOicnLFxuXHRcdFx0XHRtYWtueDonJyxcblx0XHRcdFx0c3BlY3M6JycsXG5cdFx0XHRcdGNvdW50OicnLFxuXHRcdFx0XHRvcmRlck5vOm51bGwsXG5cdFx0XHRcdGRvbmVPZlRyYXk6JycsXG5cdFx0XHRcdHRvdGFsT2ZUcmF5OicnLFxuXHRcdFx0XHRkb25lT2ZVbml0OicnLFxuXHRcdFx0XHR0b3RhbE9mVW5pdDonJyxcblx0XHRcdFx0ZXJyb3JNc2c6bnVsbCxcblx0XHRcdFx0d2lkdGg6J2Z1bGwtd2lkdGgnLFxuXHRcdFx0XHRlcnJvclNob3c6JycsXG5cdFx0XHRcdHBha2luU2hvdzonJyxcblx0XHRcdFx0cGFraW5HdW46JycsXG5cdFx0XHRcdG9yZGVyU2hvdzpmYWxzZSxcblx0XHRcdFx0c3dpcGVyOidzd2lwZXItaGVyZScsXG5cdFx0XHRcdGF1dG9wbGF5OnRydWUsIC8vIOiHquWKqOW+queOr1xuXHRcdFx0XHRpbnRlcnZhbDoxMDAwLCAvLyDosIPnlKjml7bplb9cblx0XHRcdFx0ZHVyYXRpb246ODAwMCwgLy8g56e75Yqo6YCf5bqmXG5cdFx0XHRcdG1hdExpc3Q6W10sIC8vIOiuouWNleWIl+ihqFxuXHRcdFx0XHRlamVjdFNob3c6IGZhbHNlLFxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1vdW50ZWQoKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XG5cdFx0XHRjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XG5cdFx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xuXHRcdFx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxuXHRcdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxuXHRcdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcblx0XHRcdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcblx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHR9LFxuXHRcdG9uTG9hZCgpIHtcblx0XHRcdFxuXHRcdH0sXG5cdFx0b25SZWFkeSgpIHtcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0Ly8g6I635b6X5Yid5aeL5pWw5o2uXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpO1xuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xuXHRcdFx0XHQvLyDkuLvpobXkv6Hmga9cblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKCk7XG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcblx0XHRcdFx0Ly8g5YW25LuW5L+h5oGvXG5cdFx0XHRcdHRoaXMuZ2V0RGF0ZSgpO1xuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XG5cdFx0XHRcdHRoaXMuZ2V0RXJyb3IoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRZWVkoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcblx0XHRcdFx0dGhpcy5hbmltYXRpb24oKVxuXHRcdFx0XHR0aGlzLmdldFVybCgpXG5cdFx0XHR9LDEwMDApXG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHQvLyDojrflj5Z1cmxcblx0XHRcdGdldFVybCgpIHtcblx0XHRcdFx0dGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyB0aGlzLmJhc2VVcmxcblx0XHRcdFx0dGhpcy5jaGFydHNEYXRhTGluZTEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlbW9kYXRhLkxpbmUpKVxuXHRcdFx0fSxcblx0XHRcdC8vIOiOt+WPlumUmeivr+S/oeaBr1xuXHRcdFx0Z2V0WVlZKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YUVFRVxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcblx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yUGFwZXIgPSAnJ1xuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXRFRUUgKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcblx0XHRcdFx0dmFyIHN0ciA9ICcnXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFZWVlcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcblx0XHRcdFx0bGV0XHRyZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cblx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSAn5ZWG5ZOB57yW5Y+377yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcblx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cblx0XHRcdGdldEVycm9yKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGVkL2Vycm9yXCIsXG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0cmVzID0gcmVzdWx0LmRhdGEgXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0Ly8gaWYgKHRoYXQucGFraW5TaG93KSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBcdC8vIHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXG5cdFx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGdldFBha2luICgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubWF0TGlzdCA9IFtdIC8vIOa4heepuuadoeeggeWIl+ihqFxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xuXHRcdFx0XHR2YXIgc3RyID0gJydcblx0XHRcdFx0bGV0IHJlcyBcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuOyAgLy8g5pyJ6ZSZ6K+v5L+h5oGvXG5cdFx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdFx0aWYocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHJlcy5kYXRhWzBdLnRpdGxlXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXG5cdFx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdFx0dGhhdC5zcGVjcyA9ICfop4TmoLzvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNvdW50ID0gJ+WHuuW6k+aVsOmHj++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gXCLorqLljZXlj7fvvJpcIiArIHJlcy5kYXRhWzBdLm9yZGVyTm9cblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IHRydWVcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdmdWxsLXdpZHRoJ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVHJheSA9ICfmiZjnm5jmgLvmlbDph4/vvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlRyYXlcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZVbml0ID0gJ+W3suWHuueuseaVsO+8micgKyByZXMuZGF0YVswXS5kb25lT2ZVbml0XG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRcdHRoYXQubmV3c3BhcGVyID0gbmV3c0RhdGFcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdH1lbHNlIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0YW5pbWF0aW9uKCkge1xuXHRcdFx0XHRpZiAodGhpcy5tb3ZlKSB7IFxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BVcCdcblx0XHRcdFx0XHR0aGlzLmZsb29yTW92ZSA9ICdmbG9vclVwJ1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BEb3duJ1xuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yRG93bidcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGdldERhdGVGb3JtYXQodmFsdWUpIHtcblx0XHRcdFx0dmFyIGRhdGUgPSBuZXcgRGF0ZSgpOy8vIOiOt+WPluW9k+WJjeaXtumXtFxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxuXHRcdFx0XHR2YXIgbSA9IGRhdGUuZ2V0TW9udGgoKSArIDFcblx0XHRcdFx0dmFyIGQgPSBkYXRlLmdldERhdGUoKVxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXG5cdFx0XHRcdHJldHVybiBuZXdEYXRlXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0bGluZUNoYXJ0KCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xpbmUvY2hhcnRzXCIsXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5jYXRlZ29yaWVzID0gW1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksdGhhdC5nZXREYXRlRm9ybWF0KC0yKSx0aGF0LmdldERhdGVGb3JtYXQoLTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxdXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IHJlcy5kYXRhLnJvd3Ncblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDppbzlm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0UGllQ2hhcnQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gcmVzLmRhdGEucGllXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQubm9uZUNvdW50ID0gcmVzLmRhdGEubm9uZUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQudXNlZCA9IHJlcy5kYXRhLnVzZWRcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0T3RoZXIoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0Ly8gaHR0cDovLzEwLjEwLjAuMjIyOjkwOTAvamt3Y3MvbW9uaXRvci9sZWQ/bGVkSWQ9MTg2XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHRjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC55RGlzdGFuY2UgPSByZXMuZGF0YS55RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRlamVjdGVkICgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXG5cdFx0XHRlamVjdENvbmZpcm0oKSB7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUlwJywgdGhpcy5iYXNlSVApO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcsdGhpcy5iYXNlUG9ydCk7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyx0aGlzLmJhc2VDcm5JZCk7XG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxuXHRcdFx0ZWplY3RDbG9zZSgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGdldFNlcnZlckRhdGEoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXG5cdFx0XHR9LFxuXHRcdFx0Y29tcGxldGUoZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xuXHRcdFx0fSxcblx0XHRcdGdldERhdGUoKSB7XG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdHRoaXMueWVhciA9IGR0LmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdHRoaXMubW9udGggPSAoZHQuZ2V0TW9udGgoKSsxKSA8IDEwID8gJzAnKyAoZHQuZ2V0TW9udGgoKSsxKSA6IChkdC5nZXRNb250aCgpKzEpO1xuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcblx0XHRcdFx0dGhpcy5ob3VycyA9IGR0LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGR0LmdldEhvdXJzKCkgOiBkdC5nZXRIb3VycygpO1xuXHRcdFx0XHR0aGlzLm1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGR0LmdldE1pbnV0ZXMoKSA6IGR0LmdldE1pbnV0ZXMoKTtcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxuXHRcdFx0XHR0aGlzLndlZWtzID0gZHQuZ2V0RGF5KCk7IFxuXHRcdFx0XHRzd2l0Y2ggKHRoaXMud2Vla3MpIHtcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgMTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAyOiB0aGlzLndlZWsgPSBcIuaYn+acn+S6jFwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgNDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSA1OiB0aGlzLndlZWsgPSBcIuaYn+acn+S6lFwiOyBicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///141\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 119));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 118));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 = {\n data: function data() {\n return {\n commonUrl: null,\n // 閫氱敤url\n show: true,\n modeClass: 'fade',\n styles: {},\n baseIP: '',\n baseLedId: '',\n basePort: '',\n crnId: '',\n value: '',\n xDistance: 0,\n yDistance: 0,\n xDuration: 0,\n yDuration: 0,\n used: 317,\n usedPr: 90,\n stockCount: 0,\n emptyCount: 0,\n noneCount: 0,\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n chartsDataLine1: {},\n chartsDataPie2: {},\n ringOpts: {},\n year: 2022,\n month: 4,\n day: 14,\n hours: 13,\n minutes: 38,\n seconds: 13,\n week: '鏄熸湡鍥�',\n ani: '',\n // move: 'upMove 1.5s 1;',\n move: false,\n topMove: 'topUp',\n floorMove: '',\n version: '',\n // newspaper:'鎷f枡鍑哄簱锛�4426)\\n婧愬簱浣嶏細1200101\\n鐩爣绔欙細186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '',\n errorPaper: '',\n title: '',\n staNo: '',\n matnr: '',\n maknx: '',\n specs: '',\n count: '',\n orderNo: null,\n doneOfTray: '',\n totalOfTray: '',\n doneOfUnit: '',\n totalOfUnit: '',\n errorMsg: null,\n width: 'full-width',\n errorShow: '',\n pakinShow: '',\n pakinGun: '',\n orderShow: false,\n swiper: 'swiper-here',\n autoplay: true,\n // 鑷姩寰幆\n interval: 1000,\n // 璋冪敤鏃堕暱\n duration: 8000,\n // 绉诲姩閫熷害\n matList: [],\n // 璁㈠崟鍒楄〃\n ejectShow: false\n };\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n this.getUrl();\n },\n onLoad: function onLoad() {},\n onReady: function onReady() {\n var _this = this;\n setInterval(function () {\n // 鑾峰緱鍒濆鏁版嵁\n _this.initlineChart();\n _this.initPieChart();\n // 涓婚〉淇℃伅\n _this.getServerData();\n _this.getOther();\n // 鍏朵粬淇℃伅\n _this.getDate();\n _this.getPakin();\n _this.getError();\n // this.getYYY();\n // this.getEEE();\n _this.animation();\n _this.getUrl();\n }, 1000);\n },\n methods: {\n // 鑾峰彇url\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;\n this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));\n },\n // 鑾峰彇閿欒淇℃伅\n getYYY: function getYYY() {\n var that = this;\n var result = _data.default.dataEEE;\n // 娴嬭瘯鐢� 鈫揬n var res = result.data;\n // 娴嬭瘯鐢� 鈫慭n // 杩斿洖缁撴灉鏈夊�� 涓斿�间笉绛変簬绌哄�� 灏辨槸鏈夐敊璇俊鎭渶瑕佸睍绀篭n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 鏄剧ず\n } else {\n that.errorPaper = '';\n that.errorShow = false;\n if (that.pakinShow) {\n return;\n } else {\n that.move = true; // 闅愯棌\n }\n }\n },\n getEEE: function getEEE() {\n var that = this;\n var newsData = '';\n var str = '';\n var result = _data.default.dataYYY;\n // 娴嬭瘯鐢� 鈫揬n var res = result.data;\n // 娴嬭瘯鐢� 鈫慭n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.title = '妫�鏂欏嚭搴�';\n }\n that.staNo = '鐩爣绔�:' + res.data[0].staNo;\n that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;\n that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;\n that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;\n that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;\n that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;\n that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;\n if (that.errorShow) {\n return;\n } else {\n that.newspaper = newsData;\n that.move = false;\n }\n } else {\n that.move = true;\n }\n },\n // 鑾峰彇閿欒淇℃伅\n getError: function getError() {\n var that = this;\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 鏄剧ず\n } else {\n that.errorShow = false;\n // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 闅愯棌\n // }\n }\n }\n });\n },\n getPakin: function getPakin() {\n var that = this;\n that.matList = []; // 娓呯┖鏉$爜鍒楄〃\n var newsData = '';\n var str = '';\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (that.errorShow) {\n return; // 鏈夐敊璇俊鎭痋n }\n\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '鍏ㄦ澘鍑哄簱';\n } else if (res.data[0].ioType === 103) {\n that.title = '妫�鏂欏嚭搴�';\n } else that.title = res.data[0].title;\n that.staNo = '鐩爣绔�:' + res.data[0].staNo;\n that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;\n that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;\n that.specs = '瑙勬牸锛�' + res.data[0].matDtos[0].specs;\n that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;\n that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;\n that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;\n that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;\n that.newspaper = newsData;\n that.move = false;\n } else {\n that.move = true;\n }\n }\n });\n },\n animation: function animation() {\n if (this.move) {\n this.topMove = 'topUp';\n this.floorMove = 'floorUp';\n } else {\n this.topMove = 'topDown';\n this.floorMove = 'floorDown';\n }\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(); // 鑾峰彇褰撳墠鏃堕棿\n date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 鎶樼嚎鍥� *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n __f__(\"log\", result, \" at pages/index/index.vue:586\");\n if (res.code === 200) {\n 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)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 楗煎浘 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.stockCount = res.data.stockCunt;\n that.emptyCount = res.data.emptyCount;\n that.noneCount = res.data.noneCount;\n that.used = res.data.used;\n that.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: 1\n },\n success: function success(result) {\n __f__(\"log\", result, \" at pages/index/index.vue:626\");\n var res = result.data;\n if (res.code === 200) {\n that.xDistance = res.data.xDistance;\n that.yDistance = res.data.yDistance;\n that.xDuration = res.data.xDuration;\n that.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\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:662\");\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:\n this.week = \"鏄熸湡鏃";\n break;\n case 1:\n this.week = \"鏄熸湡涓�\";\n break;\n case 2:\n this.week = \"鏄熸湡浜孿";\n break;\n case 3:\n this.week = \"鏄熸湡涓塡";\n break;\n case 4:\n this.week = \"鏄熸湡鍥沑";\n break;\n case 5:\n this.week = \"鏄熸湡浜擻";\n break;\n default:\n this.week = \"鏄熸湡鍏璡";\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJvcmRlck5vIiwiZG9uZU9mVHJheSIsInRvdGFsT2ZUcmF5IiwiZG9uZU9mVW5pdCIsInRvdGFsT2ZVbml0IiwiZXJyb3JNc2ciLCJ3aWR0aCIsImVycm9yU2hvdyIsInBha2luU2hvdyIsInBha2luR3VuIiwib3JkZXJTaG93Iiwic3dpcGVyIiwiYXV0b3BsYXkiLCJpbnRlcnZhbCIsImR1cmF0aW9uIiwibWF0TGlzdCIsImVqZWN0U2hvdyIsIm1vdW50ZWQiLCJ0aGF0Iiwib25Mb2FkIiwib25SZWFkeSIsInNldEludGVydmFsIiwibWV0aG9kcyIsImdldFVybCIsImdldFlZWSIsImdldEVFRSIsImdldEVycm9yIiwidW5pIiwidXJsIiwibGVkSWQiLCJtZXRob2QiLCJzdWNjZXNzIiwicmVzIiwiZ2V0UGFraW4iLCJhbmltYXRpb24iLCJnZXREYXRlRm9ybWF0IiwiZGF0ZSIsImluaXRsaW5lQ2hhcnQiLCJpbml0UGllQ2hhcnQiLCJnZXRPdGhlciIsImVqZWN0ZWQiLCJlamVjdENvbmZpcm0iLCJlamVjdENsb3NlIiwiZ2V0U2VydmVyRGF0YSIsImNvbXBsZXRlIiwiZ2V0RGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQTJTQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBO1VBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO0lBRUE7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQUM7SUFDQUE7SUFDQUE7SUFDQUE7SUFDQTtFQUNBO0VBQ0FDLDJCQUVBO0VBQ0FDO0lBQUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUVBTjtRQUNBQTtRQUNBQTtNQUNBO1FBQ0FBO1FBQ0FBO1FBQ0E7VUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FPO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0FQO1FBQ0E7VUFDQUE7UUFDQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBO1VBQ0FBO1VBQ0FBO1VBQ0FBO1FBQ0E7VUFDQUE7VUFDQUE7VUFDQUE7UUFDQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBQTtRQUNBO1VBQ0E7UUFDQTtVQUNBQTtVQUNBQTtRQUNBO01BQ0E7UUFDQUE7TUFDQTtJQUdBO0lBQ0E7SUFDQVE7TUFDQTtNQUNBO01BQ0FDO1FBQ0FDO1FBQ0F2RTtVQUNBd0U7UUFDQTtRQUNBQztRQUNBQztVQUNBQztVQUNBO1lBQ0FkO1lBQ0FBO1lBQ0FBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQWU7TUFDQTtNQUNBZjtNQUNBO01BQ0E7TUFDQTtNQUNBUztRQUNBQztRQUNBdkU7VUFDQXdFO1FBQ0E7UUFDQUM7UUFDQUM7VUFDQUM7VUFDQTtZQUNBO1VBQ0E7O1VBQ0E7WUFDQTtjQUNBZDtZQUNBO2NBQ0FBO1lBQ0EsT0FDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQTtjQUNBQTtjQUNBQTtjQUNBQTtZQUNBO2NBQ0FBO2NBQ0FBO2NBQ0FBO1lBQ0E7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7VUFDQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FnQjtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQSwySEFDQUM7TUFDQTtNQUNBVjtRQUNBQztRQUNBRTtRQUNBQztVQUNBO1VBQ0E7VUFDQTtZQUNBYixtQ0FDQUEsa0dBQ0FBLGdHQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0EsMEhBQ0FvQjtNQUNBO01BQ0FYO1FBQ0FDO1FBQ0FFO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBYjtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FxQjtNQUNBO01BQ0FaO1FBQ0E7UUFDQUM7UUFDQXZFO1VBQ0FRO1VBQ0FnRTtRQUNBO1FBQ0FFO1VBQ0E7VUFDQTtVQUNBO1lBQ0FiO1lBQ0FBO1lBQ0FBO1lBQ0FBO1VBQ0EsOEJBRUEsUUFFQTtRQUNBO01BQ0E7SUFDQTtJQUNBc0I7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQWQ7TUFDQUE7TUFDQUE7TUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBZTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtVQUFBO1FBQ0E7VUFBQTtNQUFBO0lBRUE7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8IS0tIOi3s+WKqOS/oeaBr+advyAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZmxvb3Itc2NyZWVuXCIgOmNsYXNzPVwiZmxvb3JNb3ZlXCIgPlxyXG5cdFx0XHQ8IS0tIOWktOmDqCAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0PHRleHQgQGNsaWNrPVwicG9ydCgpXCI+6Ieq5Yqo5LuT5bqTV0NT55uR5o6n5bmz5Y+wPC90ZXh0PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7eWVhcn19LXt7bW9udGh9fS17e2RheX19Jm5ic3B7e2hvdXJzfX06e3ttaW51dGVzfX06e3tzZWNvbmRzfX0mbmJzcHt7d2Vla319PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIiBAY2xpY2s9XCJsZWRJZCgpXCI+PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwibWFpblwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibWFpbi1zaWRlc1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveFwiIHN0eWxlPVwiaGVpZ2h0OiA5MCU7XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiIWVycm9yU2hvd1wiPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0g5YiG5pyJ5peg6K6i5Y2V5YiS5YiG5Lik6YOo5YiGIC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6n5L+h5oGvIC0tPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiXCIgOmNsYXNzPVwid2lkdGhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5YWo5p2/5Ye65bqTIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e3RpdGxlfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOebruagh+ermSAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tzdGFOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDllYblk4HnvJblj7cgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3ttYXRucn19PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5ZWG5ZOB5ZCN56ewIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e21ha254fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWVhuWTgeWQjeensCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tzcGVjc319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlh7rlupPmlbDph48gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7Y291bnR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlO2hlaWdodDogMTAwJTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ZmxvYXQ6IGxlZnQ7XCIgdi1zaG93PVwib3JkZXJTaG93XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOiuouWNleWPtyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tvcmRlck5vfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3suWHuuaJmOebmOaVsCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3tkb25lT2ZUcmF5fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOaJmOebmOaAu+aVsOmHjyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3t0b3RhbE9mVHJheX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlt7Llh7rnrrHmlbAgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7ZG9uZU9mVW5pdH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDmgLvnrrHmlbAgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7dG90YWxPZlVuaXR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCIgdi1zaG93PVwiZXJyb3JTaG93XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJsaW5lLWhlaWdodDogNzAwcHg7Zm9udC1zaXplOiAxNzVycHg7XCI+e3tlcnJvck1zZ319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQ8IS0tIOWFqOadv+WHuuW6kyAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAxMCU7aGVpZ2h0OiAxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OiBsZWZ0O3RleHQtYWxpZ246IGNlbnRlcjtwYWRkaW5nLXRvcDogMTgwcHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+e3t0aXRsZX19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIOa7muWKqOWMuuWfnyAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiA4MCU7aGVpZ2h0OiAxMDAlO2Rpc3BsYXk6IGlubGluZS1ibG9jaztcIj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PCEtLeaYvuekum9yZGVy6K6i5Y2V57yW5Y+3IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgdi1zaG93PVwib3JkZXJTaG93XCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztmb250LXNpemU6IDE0MHJweDtcIiA+e3tvcmRlck5vfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PHN3aXBlciA6Y2xhc3M9XCJzd2lwZXJcIiBjaXJjdWxhcj1cInRydWVcIiB2ZXJ0aWNhbD1cInRydWVcIiBkaXNwbGF5LW11bHRpcGxlLWl0ZW1zPVwiNlwiIDphdXRvcGxheT1cImF1dG9wbGF5XCIgOmludGVydmFsPVwiaW50ZXJ2YWxcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHN3aXBlci1pdGVtIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIG1hdExpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJmb250LXNpemU6IDE2MHJweDtcIj57e2l0ZW19fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvc3dpcGVyLWl0ZW0+XHJcblx0XHRcdFx0XHRcdFx0PC9zd2lwZXI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0g56uZ5Y+w5Y+3IC0tPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwJTtoZWlnaHQ6IDEwMCU7ZGlzcGxheTogaW5saW5lLWJsb2NrO2Zsb2F0OiByaWdodDtwYWRkaW5nLXRvcDogMTgwcHg7XCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+e3tzdGFOb319PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ0b3Atc2NyZWVuXCIgOmNsYXNzPVwidG9wTW92ZVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJwb3J0KClcIj7oh6rliqjku5PlupNXQ1Pnm5HmjqflubPlj7A8L3RleHQ+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3t5ZWFyfX0te3ttb250aH19LXt7ZGF5fX0mbmJzcHt7aG91cnN9fTp7e21pbnV0ZXN9fTp7e3NlY29uZHN9fSZuYnNwe3t3ZWVrfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiIEBjbGljaz1cImxlZElkKClcIj48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluLXNpZGVzXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtbGdcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIGludHJvZHVjZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxoMz7oh6rliqjljJbnq4vkvZPku5PlupM8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPkF1dG9tYXRpYyBTdG9yYWdlYW5kIFJldHJpZXZhbCBTeXN0ZW08L3A+XHJcblx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJpbnRyb2R1Y2UtY29udGVudFwiPiAg5Yip55So56uL5L2T5LuT5bqT6K6+5aSH5Y+v5a6e546w5LuT5bqT6auY5bGC5ZCI55CG5YyW44CB5a2Y5Y+W6Ieq5Yqo5YyW44CB5pON5L2c566A5L6/5YyW77yb6Ieq5Yqo5YyW56uL5L2T5LuT5bqT5piv5b2T5YmN5oqA5pyv5rC05bmz6L6D6auY55qE5b2i5byP44CCXHJcblx0XHRcdFx0XHRcdFx06Ieq5Yqo5YyW56uL5L2T5LuT5bqT55qE5Li75L2T55Sx6LSn5p6244CB5be36YGT5byP5aCG5Z6b6LW36YeN5py644CB5YWl77yI5Ye677yJ5bqT5bel5L2c5Y+w5ZKM6Ieq5Yqo6L+Q6L+b77yI5Ye677yJ5Y+K5pON5L2c5o6n5Yi257O757uf57uE5oiQ44CCXHJcblx0XHRcdFx0XHRcdFx06LSn5p625piv6ZKi57uT5p6E5oiW6ZKi562L5re35Yed5Zyf57uT5p6E55qE5bu6562R54mp5oiW57uT5p6E5L2T77yM6LSn5p625YaF5piv5qCH5YeG5bC65a+455qE6LSn5L2N56m66Ze077yM5be36YGT5aCG5Z6b6LW36YeN5py656m/6KGM5LqO6LSn5p625LmL6Ze055qE5be36YGT5Lit77yM5a6M5oiQ5a2Y44CB5Y+W6LSn55qE5bel5L2c44CC566h55CG5LiK6YeH55So6K6h566X5py65Y+K5p2h5b2i56CB5oqA5pyv44CCPC9wPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW0gY2hhcmdlLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHQ8aDM+5LuT5bqT5pWw5o2uPC9oMz5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj53YXJlaG91c2UgZGF0YTwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJnZS1pbmZvLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjb3VudFwiPnt7eERpc3RhbmNlfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pdFwiPm08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHotbDooYzot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFyZ2UtaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2IxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY291bnRcIj57e3lEaXN0YW5jZX19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaXRcIj5tPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h5Y2H6ZmN6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcmdlLWluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9jMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImNvdW50XCI+e3t4RHVyYXRpb259fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bml0XCI+bTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOaXtumVvyjnp5IpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJnZS1pbmZvLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZDEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjb3VudFwiPnt7eUR1cmF0aW9ufX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pdFwiPm08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHljYfpmY3ml7bplb8o56eSKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbSB1c2UtaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLWxlZnRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxoMz7lupPkvY3kvb/nlKjnjoc8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+RVFVSVBNRU5UIFVTQUdFIFRISVMgTU9OVEg8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLXJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+e3t1c2VkUHJ9fSU8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+5ZCM5q+U5LiK5pyIICsgNSU8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidXNlLW1haW5cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInByb2dyZXNzQmFyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc1wiIDpzdHlsZT1cIid3aWR0aDonKyB1c2VkUHIgKyAnJSdcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8cHJvZ3Jlc3MgcGVyY2VudD1cIjIwXCJhY3RpdmVDb2xvcj1cIiNGRjU3MjJcIiBiYWNrZ3JvdW5kQ29sb3I9XCIjMjMzNzUxXCIgc3Ryb2tlLXdpZHRoPVwiMzBcIj48L3Byb2dyZXNzPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3t1c2VkfX1cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluLXNpZGVzXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtdHBcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIHJpZ2h0LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+5YWl5Ye65bqT57uf6K6hPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPk9SREVSIFNUQVRJU1RJQ1M8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLXJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+MzE8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+5LuK5pel6K6i5Y2V5pWwPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1tYWluXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHRcdCAgPHFpdW4tZGF0YS1jaGFydHMgdHlwZT1cImxpbmVcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YUxpbmUxXCIgOmVjaGFydHNINT1cInRydWVcIiA6ZWNoYXJ0c0FwcD1cInRydWVcIi8+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtbWRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIHJpZ2h0LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+5bqT5a2Y57G75Z6LPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPklOQ09NRSBEQVRFPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPuS7iuWkqTwvaDM+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj5Ub2RheTwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbWFpblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94IHJpbmdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHFpdW4tZGF0YS1jaGFydHMgdHlwZT1cInJpbmdcIiA6b3B0cz1cIntsZWdlbmQ6e3Bvc2l0aW9uOidib3R0b20nfX1cIiA6ZW9wdHM9XCJyaW5nT3B0c1wiIDpjaGFydERhdGE9XCJjaGFydHNEYXRhUGllMlwiIDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIvPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbWFpbi1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9nMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD7lnKjlupM8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+e3tzdG9ja0NvdW50fX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZjEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+56m65bqTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7ZW1wdHlDb3VudH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2UxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0PuemgeeUqDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD57e25vbmVDb3VudH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveCBib3gtYnRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tIDx0ZXh0Pua1meaxn+S4reaJrOeri+W6k+aKgOacr+aciemZkOWFrOWPuDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQ+5b2T5YmN54mI5pys5Y+3PC90ZXh0PiAtLT5cclxuXHRcdFx0XHRcdFx0PHZpZXcgQGNsaWNrPVwiY3JuKClcIj7lmInlloTovrnplIvmnLrmorDogqHku73mnInpmZDlhazlj7g8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwhLS0gPGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9iYXJjb2RlLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPiAtLT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3PlxyXG5cdFx0XHQ8IS0tIOi+k+WFpXVybCAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJ1cmxcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572udXJsXCIgOnZhbHVlPVwiYmFzZUlQXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi56S65L6LOjE5Mi4xNjguMS4xXCIgQGNvbmZpcm09XCJiYXNlVXJsQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDovpPlhaVsZWRJZCAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJsZWRJZFwiIHR5cGU9XCJkaWFsb2dcIj5cclxuXHRcdFx0XHQ8dW5pLXBvcHVwLWRpYWxvZyByZWY9XCJpbnB1dENsb3NlXCIgbW9kZT1cImlucHV0XCIgdGl0bGU9XCLphY3nva5sZWRJZFwiIDp2YWx1ZT1cImJhc2VMZWRJZFwiXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIuekuuS+izoxODhcIiBAY29uZmlybT1cImxlZElkQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDovpPlhaVwb3J0IC0tPlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cInBvcnRcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572u56uv5Y+j5Y+3XCIgOnZhbHVlPVwiYmFzZVBvcnRcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLnpLrkvos6OTA5MFwiIEBjb25maXJtPVwicG9ydENvbmZpcm1cIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g6L6T5YWlY3JuSWQgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwiY3JuSWRcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572u5aCG5Z6b5py6XCIgOnZhbHVlPVwiY3JuSWRcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLnpLrkvos6MVwiIEBjb25maXJtPVwiY3JuQ29uZmlybVwiPjwvdW5pLXBvcHVwLWRpYWxvZz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOiHquWumuS5ieW8ueWHuuWxgiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtbWFza1wiIHYtc2hvdz1cImVqZWN0U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0XCI+XHJcblx0XHRcdFx0PCEtLSDlvLnlh7p0aXRsZSAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LXRpdGxlXCI+5L+u5pS5IC8g6YWN572uPC92aWV3PlxyXG5cdFx0XHRcdDwhLS0gaW5wdXQgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC1pbnB1dFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPmlw77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VJUFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+cG9ydO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlUG9ydFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+bGVkSWTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUxlZElkXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5Dcm5JZO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlQ3JuSWRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIGJ1dHRvbiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LWJ1dHRvblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q2xvc2VcIj7lj5Yg5raIPC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24taXRlbVwiIEBjbGljaz1cImVqZWN0Q29uZmlybVwiPuehriDorqQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHljcWRhdGEgZnJvbSAnQC9wYWdlcy9pbmRleC9kYXRhLmpzb24nO1xyXG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0bW9kZUNsYXNzOiAnZmFkZScsXHJcblx0XHRcdFx0c3R5bGVzOiB7fSxcclxuXHRcdFx0XHRiYXNlSVA6JycsXHJcblx0XHRcdFx0YmFzZUxlZElkOicnLFxyXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxyXG5cdFx0XHRcdGNybklkOicnLFxyXG5cdFx0XHRcdHZhbHVlOiAnJyxcclxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXHJcblx0XHRcdFx0eURpc3RhbmNlOjAsXHJcblx0XHRcdFx0eER1cmF0aW9uOjAsXHJcblx0XHRcdFx0eUR1cmF0aW9uOjAsXHJcblx0XHRcdFx0dXNlZDozMTcsXHJcblx0XHRcdFx0dXNlZFByOiA5MCxcclxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXHJcblx0XHRcdFx0ZW1wdHlDb3VudDowLFxyXG5cdFx0XHRcdG5vbmVDb3VudDowLFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcclxuXHRcdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcclxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcIlBpZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XHJcblx0XHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHRcdH1dXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YUxpbmUxOiB7fSxcclxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXHJcblx0XHRcdFx0cmluZ09wdHM6e30sXHJcblx0XHRcdFx0eWVhcjoyMDIyLFxyXG5cdFx0XHRcdG1vbnRoOjQsXHJcblx0XHRcdFx0ZGF5OjE0LFxyXG5cdFx0XHRcdGhvdXJzOjEzLFxyXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXHJcblx0XHRcdFx0c2Vjb25kczoxMyxcclxuXHRcdFx0XHR3ZWVrOifmmJ/mnJ/lm5snLFxyXG5cdFx0XHRcdGFuaTonJyxcclxuXHRcdFx0XHQvLyBtb3ZlOiAndXBNb3ZlIDEuNXMgMTsnLFxyXG5cdFx0XHRcdG1vdmU6ZmFsc2UsXHJcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxyXG5cdFx0XHRcdGZsb29yTW92ZTonJyxcclxuXHRcdFx0XHR2ZXJzaW9uOicnLFxyXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcclxuXHRcdFx0XHRuZXdzcGFwZXI6JycsXHJcblx0XHRcdFx0ZXJyb3JQYXBlcjonJyxcclxuXHRcdFx0XHR0aXRsZTonJyxcclxuXHRcdFx0XHRzdGFObzonJyxcclxuXHRcdFx0XHRtYXRucjonJyxcclxuXHRcdFx0XHRtYWtueDonJyxcclxuXHRcdFx0XHRzcGVjczonJyxcclxuXHRcdFx0XHRjb3VudDonJyxcclxuXHRcdFx0XHRvcmRlck5vOm51bGwsXHJcblx0XHRcdFx0ZG9uZU9mVHJheTonJyxcclxuXHRcdFx0XHR0b3RhbE9mVHJheTonJyxcclxuXHRcdFx0XHRkb25lT2ZVbml0OicnLFxyXG5cdFx0XHRcdHRvdGFsT2ZVbml0OicnLFxyXG5cdFx0XHRcdGVycm9yTXNnOm51bGwsXHJcblx0XHRcdFx0d2lkdGg6J2Z1bGwtd2lkdGgnLFxyXG5cdFx0XHRcdGVycm9yU2hvdzonJyxcclxuXHRcdFx0XHRwYWtpblNob3c6JycsXHJcblx0XHRcdFx0cGFraW5HdW46JycsXHJcblx0XHRcdFx0b3JkZXJTaG93OmZhbHNlLFxyXG5cdFx0XHRcdHN3aXBlcjonc3dpcGVyLWhlcmUnLFxyXG5cdFx0XHRcdGF1dG9wbGF5OnRydWUsIC8vIOiHquWKqOW+queOr1xyXG5cdFx0XHRcdGludGVydmFsOjEwMDAsIC8vIOiwg+eUqOaXtumVv1xyXG5cdFx0XHRcdGR1cmF0aW9uOjgwMDAsIC8vIOenu+WKqOmAn+W6plxyXG5cdFx0XHRcdG1hdExpc3Q6W10sIC8vIOiuouWNleWIl+ihqFxyXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcclxuXHRcdFx0Y29uc3QgQmFzZUxlZElkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlTGVkSWQnKTtcclxuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XHJcblx0XHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XHJcblx0XHRcdFx0dGhhdC5iYXNlSVAgPSBCYXNlSVBcclxuXHRcdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG5cdFx0XHRcdHRoYXQuYmFzZVBvcnQgPSBCYXNlUG9ydFxyXG5cdFx0XHRcdHRoYXQuYmFzZUNybklkID0gQmFzZUNybklkXHJcblx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uUmVhZHkoKSB7XHJcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0XHQvLyDojrflvpfliJ3lp4vmlbDmja5cclxuXHRcdFx0XHR0aGlzLmluaXRsaW5lQ2hhcnQoKTtcclxuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xyXG5cdFx0XHRcdC8vIOS4u+mhteS/oeaBr1xyXG5cdFx0XHRcdHRoaXMuZ2V0U2VydmVyRGF0YSgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcclxuXHRcdFx0XHQvLyDlhbbku5bkv6Hmga9cclxuXHRcdFx0XHR0aGlzLmdldERhdGUoKTtcclxuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRFcnJvcigpO1xyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0WVlZKCk7XHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcclxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvbigpXHJcblx0XHRcdFx0dGhpcy5nZXRVcmwoKVxyXG5cdFx0XHR9LDEwMDApXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDojrflj5Z1cmxcclxuXHRcdFx0Z2V0VXJsKCkge1xyXG5cdFx0XHRcdHRoaXMuY29tbW9uVXJsID0gdGhpcy5iYXNlSHR0cCArIHRoaXMuYmFzZUlQICsgJzonICt0aGlzLmJhc2VQb3J0ICsgdGhpcy5iYXNlVXJsXHJcblx0XHRcdFx0dGhpcy5jaGFydHNEYXRhTGluZTEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlbW9kYXRhLkxpbmUpKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cclxuXHRcdFx0Z2V0WVlZKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXN1bHQgPSB5Y3FkYXRhLmRhdGFFRUVcclxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXHJcblx0XHRcdFx0dmFyXHRyZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcclxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxyXG5cdFx0XHRcdGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gXCJcIikge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JQYXBlciA9ICcnXHJcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldEVFRSAoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcclxuXHRcdFx0XHR2YXIgc3RyID0gJydcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0geWNxZGF0YS5kYXRhWVlZXHJcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcclxuXHRcdFx0XHRsZXRcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpFcclxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5YWo5p2/5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+ajgOaWmeWHuuW6kydcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdFx0dGhhdC5tYXRuciA9ICfllYblk4HnvJblj7fvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxyXG5cdFx0XHRcdFx0XHR0aGF0Lm1ha254ID0gJ+WVhuWTgeWQjeensO+8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XHJcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLm9yZGVyTm8pIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBcIuiuouWNleWPt++8mlwiICsgcmVzLmRhdGFbMF0ub3JkZXJOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnaGFsZi13aWR0aCdcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2Z1bGwtd2lkdGgnXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZUcmF5ID0gJ+W3suWHuuaJmOebmOaVsDonICsgcmVzLmRhdGFbMF0uZG9uZU9mVHJheVxyXG5cdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZUcmF5ID0gJ+aJmOebmOaAu+aVsOmHj++8micgKyByZXMuZGF0YVswXS50b3RhbE9mVHJheVxyXG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcclxuXHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVW5pdCA9ICfmgLvnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlVuaXRcclxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuZXJyb3JTaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubmV3c3BhcGVyID0gbmV3c0RhdGFcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1lbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdGdldEVycm9yKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWQvZXJyb3JcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHRyZXMgPSByZXN1bHQuZGF0YSBcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2UgLy8g5pi+56S6XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdC8vIGlmICh0aGF0LnBha2luU2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gXHQvLyB0aGF0Lm1vdmUgPSB0cnVlIC8vIOmakOiXj1xyXG5cdFx0XHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRQYWtpbiAoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC5tYXRMaXN0ID0gW10gLy8g5riF56m65p2h56CB5YiX6KGoXHJcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcclxuXHRcdFx0XHR2YXIgc3RyID0gJydcclxuXHRcdFx0XHRsZXQgcmVzIFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRsZWRJZDp0aGF0LmJhc2VMZWRJZFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmICh0aGF0LmVycm9yU2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybjsgIC8vIOaciemUmeivr+S/oeaBr1xyXG5cdFx0XHRcdFx0XHR9IFxyXG5cdFx0XHRcdFx0XHRpZihyZXMuZGF0YSAmJiByZXMuZGF0YSAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+ajgOaWmeWHuuW6kydcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gcmVzLmRhdGFbMF0udGl0bGVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tYWtueCA9ICfllYblk4HlkI3np7DvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYWtueFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3BlY3MgPSAn6KeE5qC877yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uc3BlY3NcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNvdW50ID0gJ+WHuuW6k+aVsOmHj++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLm9yZGVyTm8pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnaGFsZi13aWR0aCdcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZUcmF5ID0gJ+W3suWHuuaJmOebmOaVsDonICsgcmVzLmRhdGFbMF0uZG9uZU9mVHJheVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZVbml0ID0gJ+W3suWHuueuseaVsO+8micgKyByZXMuZGF0YVswXS5kb25lT2ZVbml0XHJcblx0XHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVW5pdCA9ICfmgLvnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlVuaXRcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm5ld3NwYXBlciA9IG5ld3NEYXRhXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0fWVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWVcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRhbmltYXRpb24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubW92ZSkgeyBcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BVcCdcclxuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yVXAnXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BEb3duJ1xyXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JEb3duJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RGF0ZUZvcm1hdCh2YWx1ZSkge1xyXG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7RcclxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxyXG5cdFx0XHRcdHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMVxyXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXHJcblx0XHRcdFx0cmV0dXJuIG5ld0RhdGVcclxuXHRcdFx0fSxcclxuLyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblx0XHRcdGluaXRsaW5lQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSx0aGF0LmdldERhdGVGb3JtYXQoLTEwKSx0aGF0LmdldERhdGVGb3JtYXQoLTkpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOCksXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC0zKSx0aGF0LmdldERhdGVGb3JtYXQoLTIpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksdGhhdC5nZXREYXRlRm9ybWF0KDApLF1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4vKioqKioqKioqKioqKioqIOmlvOWbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHRcdFx0aW5pdFBpZUNoYXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xvYy9yZXBcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5QaWUuc2VyaWVzWzBdLmRhdGEgPSByZXMuZGF0YS5waWVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0b2NrQ291bnQgPSByZXMuZGF0YS5zdG9ja0N1bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5ub25lQ291bnQgPSByZXMuZGF0YS5ub25lQ291bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZWQgPSByZXMuZGF0YS51c2VkXHJcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE90aGVyKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdC8vIGh0dHA6Ly8xMC4xMC4wLjIyMjo5MDkwL2prd2NzL21vbml0b3IvbGVkP2xlZElkPTE4NlxyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0Y3JuSWQ6IHRoYXQuYmFzZUNybklkLCBcclxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnlEaXN0YW5jZSA9IHJlcy5kYXRhLnlEaXN0YW5jZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQueER1cmF0aW9uID0gcmVzLmRhdGEueER1cmF0aW9uXHJcblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY29kZSA9PT0gNDAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlamVjdGVkICgpIHtcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0U2VydmVyRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5MaW5lKSlcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbXBsZXRlKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlKCkge1xyXG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0dGhpcy55ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHR0aGlzLm1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcclxuXHRcdFx0XHR0aGlzLmhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0dGhpcy5taW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxyXG5cdFx0XHRcdHRoaXMud2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh0aGlzLndlZWtzKSB7XHJcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB0aGlzLndlZWsgPSBcIuaYn+acn+S4gFwiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgMjogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB0aGlzLndlZWsgPSBcIuaYn+acn+Wbm1wiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgNTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQvKiDlvLnlh7o66YWN572u5Yy65Z+fICovXHJcblx0LmVqZWN0LW1hc2sge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcdFxyXG5cdH1cclxuXHQuZWplY3R7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogNjAwcHg7XHJcblx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDI1cnB4O1xyXG5cdH1cclxuXHQuZWplY3QtdGl0bGUge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEwMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDEwcHggMCAwIDA7XHJcblx0fVxyXG5cdC5kZXNjIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGNvbG9yOiAjNjA2MjY2O1xyXG5cdFx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdH1cclxuXHQuaW5wdXQge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI0MwQzRDQztcclxuXHRcdG1hcmdpbi1yaWdodDogNTBweDtcclxuXHR9XHJcblx0LmVqZWN0LWlucHV0IGlucHV0IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHJcblx0XHRcclxuXHR9XHJcblx0LmVqZWN0LWJ1dHRvbiB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuXHQuYnV0dG9uLWl0ZW06bGFzdC1jaGlsZCB7XHJcblx0XHRjb2xvcjogIzY3QzIzQTtcclxuXHRcdFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHQuZnVsbC13aWR0aCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdH1cclxuXHQuaGFsZi13aWR0aCB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0fVxyXG5cdC5ib3gtaXRlbXMge1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7ICovXHJcblx0XHRsaW5lLWhlaWdodDogMzAwcnB4O1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLml6Agb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLmnIkgb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZS1vTntcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7ICovXHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA5MCU7XHJcblx0fVxyXG5cdC8qIOW9k+WJjemhtemdouaciSBlcnJvcuaPkOekuiAqL1xyXG5cdC5zd2lwZXItaGVyZS1lcnJvciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYzQTdCOyAqL1xyXG5cdFx0LyogbWFyZ2luOiAwIGF1dG87ICovXHJcblx0XHRtYXJnaW4tdG9wOiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmFuaW1hdGUge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdCAgICAgICAgICAgIC8qIHdoaXRlLXNwYWNlOiBub3dyYXA7ICovXHJcblx0ICAgICAgICAgICAgYW5pbWF0aW9uOiAyNXMgd29yZHNMb29wIGxpbmVhciBpbmZpbml0ZSBub3JtYWw7XHJcblx0ICAgICAgICB9XHJcblx0IFxyXG5cdCAgICAgICAgQGtleWZyYW1lcyB3b3Jkc0xvb3Age1xyXG5cdCAgICAgICAgICAgIDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICAxMDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgIH1cclxuXHQgXHJcblx0ICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgd29yZHNMb29wIHtcclxuXHQgICAgICAgICAgICAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgMTAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0LyogZG93bk1vdmUgKi9cclxuXHQvKiDkuIrlsYLlkJHkuIogKi9cclxuXHQudG9wVXAge1xyXG5cdFx0YW5pbWF0aW9uOiB0b3BVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIHRvcFVwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRcdC8qIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsgKi9cclxuXHRcdFx0dG9wOi0xMDgwcHhcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiDkuIrlsYLlkJHkuIsgKi9cclxuXHQudG9wRG93biB7XHJcblx0XHRhbmltYXRpb246IHRvcERvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyB0b3BEb3duXHJcblx0XHR7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpyZWQ7ICovXHJcblx0XHRcdHRvcDogMDtcclxuXHRcdH1cclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMC41O1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7ICovXHJcblx0XHRcdHRvcDotMTA4MHB4XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iiAqL1xyXG5cdC5mbG9vclVwIHtcclxuXHRcdGFuaW1hdGlvbjogZmxvb3JVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIGZsb29yVXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAxMDgwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iyAqL1xyXG5cdC5mbG9vckRvd24ge1xyXG5cdFx0YW5pbWF0aW9uOiBmbG9vckRvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyBmbG9vckRvd24ge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDEwODBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAtMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudG9wLXNjcmVlbiB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR3aWR0aDogMTkyMHB4O1xyXG5cdFx0aGVpZ2h0OiAxMDgwcHg7XHJcblx0XHQvKiB0b3A6IC0xMDAwcHg7ICovXHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdC8qIGJhY2tncm91bmQ6cmVkOyAqL1xyXG5cdFx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0XHR6LWluZGV4OiA5OTk7XHJcblx0fVxyXG5cdC5mbG9vci1zY3JlZW4ge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDEyMHJweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiA1cnB4O1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0fVxyXG5cdC5jb250YWluZXIge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kOiAjMDAwNDI4OyAgXHJcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICBcclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICovXHJcblx0fVxyXG5cdC5oZWFkIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM1NWFhZmY7ICovXHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDExMHB4O1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHRmb250LXNpemU6IDQwcHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHR9XHJcblx0LmhlYWQgdGV4dCB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEsMC45KTtcclxuXHR9XHJcblx0LnRpbWUtdG9vbHMge1xyXG5cdFx0aGVpZ2h0OiA1JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMDdBRkY7ICovXHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogNTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRsaW5lLWhlaWdodDogNzBweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XHJcblx0fVxyXG5cdC5idXR0b24tbGVmdCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDIxLjMlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG5cdH1cclxuXHQuYnV0dG9uLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogNjUlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdH1cclxuXHQubWFpbiB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjM0Y1MzZFOyAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDkwJTtcclxuXHR9XHJcblx0Lm1haW4tc2lkZXMge1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzAwNEU5MjsgKi9cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdC8qIG1hcmdpbjogMiUgYXV0byAwIDMuMiU7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwLCA4MCwgMTM2LCAxKTsgKi9cclxuXHR9XHJcblx0LmJveCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAqL1xyXG5cdFx0bWFyZ2luOiAzJSAyJSAwIDIlO1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMzAlO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyMCwgODAsIDEzNiwgMSk7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdH1cclxuXHQuYm94LWxnIHtcclxuXHRcdGhlaWdodDogOTQlO1xyXG5cdH1cclxuXHQuYm94LWJvcmRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjNENEOTY0OyAqL1xyXG5cdFx0d2lkdGg6IDEwcHg7XHJcblx0XHRoZWlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdFx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMiB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIzIHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXI0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuY29udGVudCB7XHJcblx0ICBkaXNwbGF5OiBmbGV4O1xyXG5cdCAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHQgIGZsZXg6IDE7XHJcblx0fVxyXG5cdFxyXG5cdC5jaGFydHMtYm94IHtcclxuXHQgIHdpZHRoOiA4MCU7XHJcblx0ICBoZWlnaHQ6IDIzMHB4O1xyXG5cdCAgbWFyZ2luLWxlZnQ6IDEwJTtcclxuXHQgIC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmY7ICovXHJcblx0fVxyXG5cdC5yaW5nIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdGhlaWdodDogMzAwcHg7XHJcblx0XHRtYXJnaW4tbGVmdDogLTEwJTtcclxuXHR9XHJcblx0LmJveC1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyQzQwNUE7ICovXHJcblx0XHR3aWR0aDogOTIlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRtYXJnaW4tbGVmdDogNCU7XHJcblx0XHRwYWRkaW5nLXRvcDogMWVtO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2Uge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UgaDIge1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHRcdFxyXG5cdH1cclxuXHQuZW5nbGlzaCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UtY29udGVudCB7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRwYWRkaW5nLXRvcDogMmVtO1xyXG5cdFx0dGV4dC1pbmRlbnQ6IDJlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM0MDVBOyAqL1xyXG5cdFx0aGVpZ2h0OiA0NSU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiA0MCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIGltYWdlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHZpZXcge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRoZWlnaHQ6IDQ5JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7ICovXHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIC5jb3VudCwgLmNoYXJnZS1pbmZvLWl0ZW0gLnVuaXR7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmb250LXNpemU6IDMycHg7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xyXG5cdH1cclxuXHQuY2hhcmdlLWluZm8taXRlbSAudW5pdCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogMjAlO1xyXG5cdH1cclxuXHQuZm9vdGVyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAsIDgwLCAxMzYsIDEpO1xyXG5cdFx0aGVpZ2h0OiAxNSU7XHJcblx0fVxyXG5cdC51c2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGOyAqL1xyXG5cdH1cclxuXHQudXNlLWxlZnQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0fVxyXG5cdC51c2UtcmlnaHQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC51c2UtbWFpbiB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNzUlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHR9XHJcblx0LnVzZS1tYWluIC5sZWZ0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhN2Y7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRsaW5lLWhlaWdodDogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzQmFyIHtcclxuXHRcdC8qIG1hcmdpbi1sZWZ0OiA7ICovXHJcblx0XHRtYXJnaW4tdG9wOiA5JTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzNzUxO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzIHtcclxuXHRcdC8qIHdpZHRoOiA5MCU7ICovXHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgcHJvZ3Jlc3Mge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdG1hcmdpbi10b3A6IDEwJTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuXHQudXNlLW1haW4gLnJpZ2h0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhZmY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdFx0Zm9udC1zaXplOiA0MHB4O1xyXG5cdFx0Y29sb3I6ICNGRjU3MjI7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcHg7XHJcblx0fVxyXG5cdC5ib3gtdHAge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5ib3gtdHAgLnN1Yi1tYWluIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7ICovXHJcblx0fVxyXG5cdC5ib3gtbWQge1xyXG5cdFx0aGVpZ2h0OiA0MyU7XHJcblx0fVxyXG5cdC5ib3gtbWQgLnN1Yi1tYWluIHtcclxuXHR9XHJcblx0LnN1Yi1tYWluLXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0fVxyXG5cdC5zdWItaW5mbyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzMlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMTUlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gdGV4dCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEyMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdH1cclxuXHQuYm94LWJ0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRoZWlnaHQ6IDE1JTtcclxuXHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdH1cclxuXHQuYm94LWJ0IGltYWdlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0d2lkdGg6IDIwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmJveC1idCB7XHJcblx0XHRmb250LXNpemU6IDM2cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTQwcHg7XHJcblx0XHR0ZXh0LWluZGVudDogNWVtO1xyXG5cdH1cclxuXHQucmlnaHQtaXRlbSB7XHJcblx0XHRoZWlnaHQ6IDk0JTtcclxuXHR9XHJcblx0LnN1Yi1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDQwJTtcclxuXHR9XHJcblx0LnN1Yi1yaWdodCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdH1cclxuXHQuc3ViLW1haW4ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzMxQzRDNDsgKi9cclxuXHRcdHdpZHRoOiA5MiU7XHJcblx0XHRoZWlnaHQ6IDgwJTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbjwhLS0ge1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDIzMDBcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDM3NTA1MTQ2XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgwMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDc3MjlcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI3XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNzczMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ4MDdcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0ODA1XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5N1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ3OTRcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0NzkxXCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5M1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDFcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI4XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgxMFwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDhcIixcImNvdW50XCI6MS4wfSAtLT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///141\n"); /***/ }), /* 142 */ @@ -16078,7 +16046,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: ['璇风偣鍑诲彂琛岃彍鍗曡繘琛屽彂甯�', '1', '浣撶Н杈冨ぇ锛涜嫢瑕佹寮忓彂甯�', '2', '杩愯妯″紡涓嬩笉鍘嬬缉浠g爜涓斿惈鏈塻ourcemap', '3', '妫�鏌ユ槸鍚﹀惎鍔ㄥ涓井淇″紑鍙戣�呭伐鍏凤紝濡傛灉鏄垯鍏抽棴鎵�鏈夋墦寮�鐨勫井淇″紑鍙戣�呭伐鍏凤紝', '4', '鐒跺悗鍐嶉噸鏂拌繍琛�', '5', '濡傛灉鍑虹幇寰俊寮�鍙戣�呭伐鍏峰惎鍔ㄥ悗鐧藉睆鐨勯棶棰�', '6', '鎴栬�呭叧闂井淇″紑鍙戣�呭伐鍏凤紝鐒跺悗鍐嶄粠HBuilderX涓惎鍔ㄦ寚瀹氶〉闈�', '7', '鍙互閫氳繃寰俊寮�鍙戣�呭伐鍏峰垏鎹ages.json涓璫ondition閰嶇疆鐨勯〉闈�', '8', '涓慨鏀规枃浠跺苟淇濆瓨锛屼細鑷姩鍒锋柊寰俊妯℃嫙鍣�', '9', '寰俊寮�鍙戣�呭伐鍏峰凡鍚姩锛屽湪HBuilderX', '10']\n };\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBY0E7RUFDQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQyxPQUNBLGVBQ0EsS0FDQSxlQUNBLEtBQ0EsMEJBQ0EsS0FDQSx1Q0FDQSxLQUNBLFdBQ0EsS0FDQSx1QkFDQSxLQUNBLG9DQUNBLEtBQ0EsMENBQ0EsS0FDQSx1QkFDQSxLQUNBLHlCQUNBO0lBRUE7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTQ2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbjx0ZW1wbGF0ZT5cclxuICAgIDx2aWV3PlxyXG4gICAgICAgIDx2aWV3PiBcclxuICAgICAgICAgICAgPHN3aXBlciBzdHlsZT1cImhlaWdodDogNTAwcHg7XCIgY2lyY3VsYXI9XCJ0cnVlXCIgdmVydGljYWw9XCJ0cnVlXCIgZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjE2XCIgOmF1dG9wbGF5PVwiYXV0b3BsYXlcIiA6aW50ZXJ2YWw9XCJpbnRlcnZhbFwiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3dpcGVyLWl0ZW0gdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4gbGlzdFwiIDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3Pnt7aXRlbX19PC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC9zd2lwZXItaXRlbT5cclxuICAgICAgICAgICAgPC9zd2lwZXI+XHJcbiAgICAgICAgPC92aWV3PlxyXG4gICAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuICAgIGV4cG9ydCBkZWZhdWx0e1xyXG4gICAgICAgIG5hbWU6JycsXHJcbiAgICAgICAgZGF0YSgpe1xyXG4gICAgICAgICAgICByZXR1cm57XHJcbiAgICAgICAgICAgICAgICBhdXRvcGxheTp0cnVlLFxyXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6MTAwMCxcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOjEwMDAsXHJcbiAgICAgICAgICAgICAgICBsaXN0OltcclxuICAgICAgICAgICAgICAgICAgICAn6K+354K55Ye75Y+R6KGM6I+c5Y2V6L+b6KGM5Y+R5biDJyxcclxuXHRcdFx0XHRcdCcxJyxcclxuICAgICAgICAgICAgICAgICAgICAn5L2T56ev6L6D5aSn77yb6Iul6KaB5q2j5byP5Y+R5biDJyxcclxuXHRcdFx0XHRcdCcyJyxcclxuICAgICAgICAgICAgICAgICAgICAn6L+Q6KGM5qih5byP5LiL5LiN5Y6L57yp5Luj56CB5LiU5ZCr5pyJc291cmNlbWFwJyxcclxuXHRcdFx0XHRcdCczJyxcclxuICAgICAgICAgICAgICAgICAgICAn5qOA5p+l5piv5ZCm5ZCv5Yqo5aSa5Liq5b6u5L+h5byA5Y+R6ICF5bel5YW377yM5aaC5p6c5piv5YiZ5YWz6Zet5omA5pyJ5omT5byA55qE5b6u5L+h5byA5Y+R6ICF5bel5YW377yMJyxcclxuXHRcdFx0XHRcdCc0JyxcclxuICAgICAgICAgICAgICAgICAgICAn54S25ZCO5YaN6YeN5paw6L+Q6KGMJyxcclxuXHRcdFx0XHRcdCc1JyxcclxuICAgICAgICAgICAgICAgICAgICAn5aaC5p6c5Ye6546w5b6u5L+h5byA5Y+R6ICF5bel5YW35ZCv5Yqo5ZCO55m95bGP55qE6Zeu6aKYJyxcclxuXHRcdFx0XHRcdCc2JyxcclxuICAgICAgICAgICAgICAgICAgICAn5oiW6ICF5YWz6Zet5b6u5L+h5byA5Y+R6ICF5bel5YW377yM54S25ZCO5YaN5LuOSEJ1aWxkZXJY5Lit5ZCv5Yqo5oyH5a6a6aG16Z2iJyxcclxuXHRcdFx0XHRcdCc3JyxcclxuICAgICAgICAgICAgICAgICAgICAn5Y+v5Lul6YCa6L+H5b6u5L+h5byA5Y+R6ICF5bel5YW35YiH5o2icGFnZXMuanNvbuS4rWNvbmRpdGlvbumFjee9rueahOmhtemdoicsXHJcblx0XHRcdFx0XHQnOCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+S4reS/ruaUueaWh+S7tuW5tuS/neWtmO+8jOS8muiHquWKqOWIt+aWsOW+ruS/oeaooeaLn+WZqCcsXHJcblx0XHRcdFx0XHQnOScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+ruS/oeW8gOWPkeiAheW3peWFt+W3suWQr+WKqO+8jOWcqEhCdWlsZGVyWCcsXHJcblx0XHRcdFx0XHQnMTAnLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICB9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG4gICAgLnNjcm9sbF9ib3h7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcclxuICAgICAgICBtYXJnaW46IDMwcnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcnB4O1xyXG4gICAgICAgIC5zd2lwZXJ7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwMHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///146\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: ['璇风偣鍑诲彂琛岃彍鍗曡繘琛屽彂甯�', '1', '浣撶Н杈冨ぇ锛涜嫢瑕佹寮忓彂甯�', '2', '杩愯妯″紡涓嬩笉鍘嬬缉浠g爜涓斿惈鏈塻ourcemap', '3', '妫�鏌ユ槸鍚﹀惎鍔ㄥ涓井淇″紑鍙戣�呭伐鍏凤紝濡傛灉鏄垯鍏抽棴鎵�鏈夋墦寮�鐨勫井淇″紑鍙戣�呭伐鍏凤紝', '4', '鐒跺悗鍐嶉噸鏂拌繍琛�', '5', '濡傛灉鍑虹幇寰俊寮�鍙戣�呭伐鍏峰惎鍔ㄥ悗鐧藉睆鐨勯棶棰�', '6', '鎴栬�呭叧闂井淇″紑鍙戣�呭伐鍏凤紝鐒跺悗鍐嶄粠HBuilderX涓惎鍔ㄦ寚瀹氶〉闈�', '7', '鍙互閫氳繃寰俊寮�鍙戣�呭伐鍏峰垏鎹ages.json涓璫ondition閰嶇疆鐨勯〉闈�', '8', '涓慨鏀规枃浠跺苟淇濆瓨锛屼細鑷姩鍒锋柊寰俊妯℃嫙鍣�', '9', '寰俊寮�鍙戣�呭伐鍏峰凡鍚姩锛屽湪HBuilderX', '10']\n };\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLGVBRWtCO0VBQ1ZBLElBQUksRUFBQyxFQUFFO0VBQ1BDLElBQUksa0JBQUU7SUFDRixPQUFNO01BQ0ZDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLElBQUksRUFBQyxDQUNELGFBQWEsRUFDNUIsR0FBRyxFQUNZLGFBQWEsRUFDNUIsR0FBRyxFQUNZLHdCQUF3QixFQUN2QyxHQUFHLEVBQ1kscUNBQXFDLEVBQ3BELEdBQUcsRUFDWSxTQUFTLEVBQ3hCLEdBQUcsRUFDWSxxQkFBcUIsRUFDcEMsR0FBRyxFQUNZLGtDQUFrQyxFQUNqRCxHQUFHLEVBQ1ksd0NBQXdDLEVBQ3ZELEdBQUcsRUFDWSxxQkFBcUIsRUFDcEMsR0FBRyxFQUNZLHVCQUF1QixFQUN0QyxJQUFJO0lBRUcsQ0FBQztFQUNMO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjE0Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbiAgICBleHBvcnQgZGVmYXVsdHtcbiAgICAgICAgbmFtZTonJyxcbiAgICAgICAgZGF0YSgpe1xuICAgICAgICAgICAgcmV0dXJue1xuICAgICAgICAgICAgICAgIGF1dG9wbGF5OnRydWUsXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6MTAwMCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjoxMDAwLFxuICAgICAgICAgICAgICAgIGxpc3Q6W1xuICAgICAgICAgICAgICAgICAgICAn6K+354K55Ye75Y+R6KGM6I+c5Y2V6L+b6KGM5Y+R5biDJyxcblx0XHRcdFx0XHQnMScsXG4gICAgICAgICAgICAgICAgICAgICfkvZPnp6/ovoPlpKfvvJvoi6XopoHmraPlvI/lj5HluIMnLFxuXHRcdFx0XHRcdCcyJyxcbiAgICAgICAgICAgICAgICAgICAgJ+i/kOihjOaooeW8j+S4i+S4jeWOi+e8qeS7o+eggeS4lOWQq+aciXNvdXJjZW1hcCcsXG5cdFx0XHRcdFx0JzMnLFxuICAgICAgICAgICAgICAgICAgICAn5qOA5p+l5piv5ZCm5ZCv5Yqo5aSa5Liq5b6u5L+h5byA5Y+R6ICF5bel5YW377yM5aaC5p6c5piv5YiZ5YWz6Zet5omA5pyJ5omT5byA55qE5b6u5L+h5byA5Y+R6ICF5bel5YW377yMJyxcblx0XHRcdFx0XHQnNCcsXG4gICAgICAgICAgICAgICAgICAgICfnhLblkI7lho3ph43mlrDov5DooYwnLFxuXHRcdFx0XHRcdCc1JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WmguaenOWHuueOsOW+ruS/oeW8gOWPkeiAheW3peWFt+WQr+WKqOWQjueZveWxj+eahOmXrumimCcsXG5cdFx0XHRcdFx0JzYnLFxuICAgICAgICAgICAgICAgICAgICAn5oiW6ICF5YWz6Zet5b6u5L+h5byA5Y+R6ICF5bel5YW377yM54S25ZCO5YaN5LuOSEJ1aWxkZXJY5Lit5ZCv5Yqo5oyH5a6a6aG16Z2iJyxcblx0XHRcdFx0XHQnNycsXG4gICAgICAgICAgICAgICAgICAgICflj6/ku6XpgJrov4flvq7kv6HlvIDlj5HogIXlt6XlhbfliIfmjaJwYWdlcy5qc29u5LitY29uZGl0aW9u6YWN572u55qE6aG16Z2iJyxcblx0XHRcdFx0XHQnOCcsXG4gICAgICAgICAgICAgICAgICAgICfkuK3kv67mlLnmlofku7blubbkv53lrZjvvIzkvJroh6rliqjliLfmlrDlvq7kv6HmqKHmi5/lmagnLFxuXHRcdFx0XHRcdCc5JyxcbiAgICAgICAgICAgICAgICAgICAgJ+W+ruS/oeW8gOWPkeiAheW3peWFt+W3suWQr+WKqO+8jOWcqEhCdWlsZGVyWCcsXG5cdFx0XHRcdFx0JzEwJyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///146\n"); /***/ }), /* 147 */ @@ -16111,7 +16079,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\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 }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlZmF1bHQge1xuXHRvbkxhdW5jaDogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBMYXVuY2gnKVxuXHR9LFxuXHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdGNvbnNvbGUubG9nKCdBcHAgU2hvdycpXG5cdH0sXG5cdG9uSGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBIaWRlJylcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///149\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\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:8\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:11\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUVsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBRUQsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlZmF1bHQge1xuXHRvbkxhdW5jaDogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBMYXVuY2gnKVxuXHR9LFxuXHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdFxuXHRcdGNvbnNvbGUubG9nKCdBcHAgU2hvdycpXG5cdH0sXG5cdG9uSGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBIaWRlJylcblx0fVxuXHRcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///149\n"); /***/ }) ],[[0,"app-config"]]]); \ No newline at end of file -- Gitblit v1.9.1