From 720cbbe9e5fbf76968355eda83b643e4ec95f03c Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期二, 23 十二月 2025 14:41:22 +0800
Subject: [PATCH] 优化界面
---
unpackage/dist/dev/app-plus/app-service.js | 159 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 99 insertions(+), 60 deletions(-)
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index a109a09..5a7f1d8 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -3549,7 +3549,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _moldRecord = _interopRequireDefault(__webpack_require__(/*! ../pages/moldRecord.vue */ 115));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default,\n MoldRecord: _moldRecord.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), (0, _defineProperty2.default)(_ref, \"autoRedirectTimer\", null), (0, _defineProperty2.default)(_ref, \"autoRedirectTime\", 5 * 60 * 1000), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n this.resetAutoRedirectTimer();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n },\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n resetAutoRedirectTimer: function resetAutoRedirectTimer() {\n var _this = this;\n // 娓呴櫎鐜版湁鐨勫畾鏃跺櫒\n if (this.autoRedirectTimer) {\n clearTimeout(this.autoRedirectTimer);\n this.autoRedirectTimer = null;\n }\n\n // 闄や簡涓婚〉(0)銆佸伐鍗曢�夋嫨椤�(7)銆佺敓浜ф姤宸ラ〉(4)涔嬪鐨勯〉闈㈡墠璁剧疆鑷姩璺宠浆\n if (this.currentTab !== 0 && this.currentTab !== 7 && this.currentTab !== 4) {\n this.autoRedirectTimer = setTimeout(function () {\n // 璺宠浆鍥炰富椤礬n _this.currentTab = 0;\n // 鏄剧ず鎻愮ず淇℃伅\n uni.showToast({\n title: '椤甸潰瓒呮椂锛岃嚜鍔ㄨ繑鍥炰富椤�',\n icon: 'none',\n duration: 2000\n });\n }, this.autoRedirectTime);\n }\n },\n checkForUpdate: function checkForUpdate() {\n var _this2 = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this2.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this2.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:437\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:442\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:447\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this3 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b2:c3\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this3.machineNo = devMachine.machineNo;\n _this3.machineName = \"璋冭瘯妯″紡锛歕" + _this3.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this3.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:479\");\n _this3.getWomdaaIsShow();\n });\n return;\n\n // \t\t\tif (plus.os.name == \"Android\") {\n // \t\t\t\t//鑾峰彇鎵嬫満MAC鍦板潃\n // \t\t\t\tvar Context = plus.android.importClass(\"android.content.Context\");\n // \t\t\t\tvar WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n // \t\t\t\tvar wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n // \t\t\t\tvar WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n // \t\t\t\tvar wifiInfo = wifiManager.getConnectionInfo();\n // \t\t\t\tmac = wifiInfo.getMacAddress();\n\n // \t\t\t\t//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\tmac = this.getMacNew();\n // \t\t\t\t}\n // \t\t\t\t//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\treturn;\n // \t\t\t\t}\n // \t\t\t\tuni.setStorageSync('pdaMac', mac);\n\n // \t\t\t\tthis.$post({\n // \t\t\t\t\turl: \"/DevMachine/GetDevMachineByPdaMac\",\n // \t\t\t\t\tdata: {\n // \t\t\t\t\t\tpdaMac: mac,\n // \t\t\t\t\t}\n // \t\t\t\t}).then(res => {\n // \t\t\t\t\tlet devMachine = res.data.tbBillList;\n // \t\t\t\t\tthis.machineNo = devMachine.machineNo;\n // \t\t\t\t\tthis.machineName = \"褰撳墠鏈哄彴锛歕" + this.machineNo + \"鍙烽娇杞満\";\n\n // \t\t\t\t\tuni.setStorageSync('machineNo', this.machineNo);\n // \t\t\t\t\tuni.setStorageSync('printMac', devMachine.printMac);\n\n // \t\t\t\t\tthis.getWomdaaIsShow();\n\n // \t\t\t\t});\n // \t\t\t}\n },\n save: function save() {\n var _this4 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this4.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this4.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this5 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this5.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this6 = this;\n return this.selectedIndexs.map(function (i) {\n return _this6.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n __f__(\"log\", index, \" at pages/index.vue:665\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this7 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this7.machine = res.data.tbBillList;\n _this7.machineList = _this7.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this8 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this8.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this8.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this8.hasBindedCutterFlag = hasBindedCutter;\n if (_this8.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this8.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this8.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this10 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this10.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJNb2xkUmVjb3JkIiwiZGF0YSIsIm9yZGVyU3RhdHVzIiwiY3VycmVudFRhYiIsInByb2R1Y3RDb2RlIiwicHJvZHVjdFNwZWMiLCJtYWNoaW5lTGlzdCIsIm1hY2hpbmUiLCJlbmdpbmVlcmluZ05vTGlzdCIsImVuZ2luZWVyaW5nTm9NYXBMaXN0IiwiZW5naW5lZXJpbmdObyIsIm1hY2hpbmVObyIsIm1hY2hpbmVOYW1lIiwidGFibGVEYXRhIiwiaXNTaG93VGFibGVEYXRhIiwiY3JlYXRlZCIsInVuaSIsImNsZWFyU3RvcmFnZVN5bmMiLCJjaGVja0ZvclVwZGF0ZSIsImdldFByaW50SW5mbyIsIm9uTG9hZCIsIm9wdGlvbnMiLCJnZXRNYWNoaW5lTGlzdCIsIm9uU2hvdyIsInJlZnJlc2giLCJyZXNldEF1dG9SZWRpcmVjdFRpbWVyIiwibWV0aG9kcyIsIm9uUm93Q2xpY2siLCJpbmRleCIsInNlbGVjdGVkSW5kZXhzIiwic2VsZWN0aW9uQ2hhbmdlIiwiZGV0YWlsIiwiYXV0b1JlZGlyZWN0VGltZXIiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwic2hvd1RvYXN0IiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJhdXRvUmVkaXJlY3RUaW1lIiwiJHBvc3QiLCJ1cmwiLCJ0aGVuIiwicmVzIiwibmV3VmVyc2lvbiIsInZlcnNpb24iLCJjdXJyZW50VmVyc2lvbiIsImdldFN5c3RlbUluZm9TeW5jIiwiYXBwVmVyc2lvbiIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzdWNjZXNzIiwibW9kYWxSZXMiLCJjb25maXJtIiwiZG93bmxvYWROZXdBcGsiLCJhcGtVcmwiLCJ1cGRhdGVDaGVja2VkIiwiZG93bmxvYWRGaWxlIiwic3RhdHVzQ29kZSIsInBsdXMiLCJydW50aW1lIiwiaW5zdGFsbCIsInRlbXBGaWxlUGF0aCIsImZvcmNlIiwiZSIsImZhaWwiLCJlcnIiLCJnZXRXb21kYWFJc1Nob3ciLCJtYWMiLCJwZGFNYWMiLCJkZXZNYWNoaW5lIiwidGJCaWxsTGlzdCIsInNldFN0b3JhZ2VTeW5jIiwicHJpbnRNYWMiLCJzYXZlIiwic2VsZWN0ZWRJdGVtcyIsImxlbmd0aCIsIiRzaG93TWVzc2FnZSIsIm9yZGVyU2VsZWN0IiwiZm9yRWFjaCIsInMiLCJlbnRpdHkiLCJvcmRlcklkIiwiaWQiLCJvcmRlck5vIiwiZGFhMDAxIiwicHVzaCIsImVkaXREYXRlIiwiZm9ybWF0RGF0ZSIsIkRhdGUiLCJpdGVtIiwiaXNTaG93IiwiZ2V0TWFjTmV3Iiwic3RyIiwib3MiLCJuYW1lIiwiTmV0d29ya0ludGVyZmFjZSIsImFuZHJvaWQiLCJpbXBvcnRDbGFzcyIsIm5ldHdvcmtJbnRlcmZhY2UiLCJnZXRCeU5hbWUiLCJieXRlcyIsImdldEhhcmR3YXJlQWRkcmVzcyIsImkiLCJ0bXAiLCJudW0iLCJ0b1N0cmluZyIsImNhbmNlbCIsImhhc0JpbmRlZEN1dHRlckZsYWciLCJkYXRlIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJTdHJpbmciLCJnZXRNb250aCIsInBhZFN0YXJ0IiwiZGF5IiwiZ2V0RGF0ZSIsIm1hcCIsImNoYW5nZVRhYiIsIm9uTWFjaGluZUNoYW5nZSIsImV2ZW50IiwiaW5kZXhPZiIsIm9uRW5naW5lZXJpbmdOb0NoYW5nZSIsIm9yZGUiLCJtb2xkSWQiLCJnZXRXb21kYWEiLCJvcmRlciIsImhhc0JpbmRlZEN1dHRlciIsIm91dFRvb2xJZCIsInRyaW0iLCJvdXRUb29sQ29kZSIsIm91dFRvb2xOYW1lIiwiaXNTaG93VGFiIiwiZ2V0V29tZGFhQnlTdGF0dXMiLCJzdGF0dXMiLCJzdGF0dXNBcnIiLCJzZWxlY3RlZE9yZGVyIiwiZGFhMDAyIiwiZGFhMDA0IiwiY29tcHV0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBbVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFpRDtBQUFBLGVBRWpDO0VBQ2RBLFVBQVUsRUFBRTtJQUNYQyxVQUFVLEVBQVZBLG1CQUFVO0lBQ1ZDLFNBQVMsRUFBVEEsa0JBQVM7SUFDVEMsY0FBYyxFQUFkQSx1QkFBYztJQUNkQyxPQUFPLEVBQVBBLGdCQUFPO0lBQ1BDLElBQUksRUFBSkEsYUFBSTtJQUNKQyxRQUFRLEVBQVJBLGlCQUFRO0lBQ1JDLGVBQWUsRUFBZkEsd0JBQWU7SUFDZkMsT0FBTyxFQUFQQSxnQkFBTztJQUNQQyxTQUFTLEVBQVRBLGtCQUFTO0lBQ1RDLFNBQVMsRUFBVEEsa0JBQVM7SUFDVEMsbUJBQW1CLEVBQW5CQSw0QkFBbUI7SUFDbkJDLFVBQVUsRUFBVkE7RUFDRCxDQUFDO0VBQ0RDLElBQUksa0JBQUc7SUFBQTtJQUNOO01BQ2FDLFdBQVcsRUFBRSxFQUFFO01BQUU7TUFDN0JDLFVBQVUsRUFBRSxDQUFDO01BRURDLFdBQVcsRUFBRSxFQUFFO01BQUU7TUFDakJDLFdBQVcsRUFBRSxFQUFFO01BQUU7O01BRTdCQyxXQUFXLEVBQUUsRUFBRTtNQUVmQyxPQUFPLEVBQUUsRUFBRTtNQUVYQyxpQkFBaUIsRUFBRSxFQUFFO01BQ3JCQyxvQkFBb0IsRUFBRSxFQUFFO01BQ3hCQyxhQUFhLEVBQUUsRUFBRTtNQUVqQkMsU0FBUyxFQUFFLEVBQUU7TUFDYkMsV0FBVyxFQUFFLEVBQUU7TUFFZkMsU0FBUyxFQUFFLEVBQUU7TUFDYkMsZUFBZSxFQUFFO0lBQUUsc0RBRU4sSUFBSSx3REFDRixFQUFFLGtEQUNSLENBQUMseURBRU0sRUFBRSxpREFFVixLQUFLLDREQUdNLElBQUksMkRBQ0wsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO0VBRWpDLENBQUM7RUFDREMsT0FBTyxxQkFBRztJQUVUO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztJQUVBQyxHQUFHLENBQUNDLGdCQUFnQixFQUFFO0lBRXRCLElBQUksQ0FBQ0MsY0FBYyxFQUFFOztJQUVyQjtJQUNBLElBQUksQ0FBQ0MsWUFBWSxFQUFFO0VBRXBCLENBQUM7RUFDREMsTUFBTSxrQkFBQ0MsT0FBTyxFQUFFO0lBQ2YsSUFBSSxDQUFDQyxjQUFjLEVBQUU7RUFDdEIsQ0FBQztFQUNEQyxNQUFNLG9CQUFHO0lBQ1IsSUFBSSxDQUFDQyxPQUFPLEVBQUU7SUFDZCxJQUFJLENBQUNDLHNCQUFzQixFQUFFO0VBQzlCLENBQUM7RUFDREMsT0FBTztJQUNHQyxVQUFVLHNCQUFDQyxLQUFLLEVBQUU7TUFDZCxJQUFJLENBQUNDLGNBQWMsR0FBRyxDQUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO01BQy9CO01BQ0EsSUFBSSxDQUFDRSxlQUFlLENBQUM7UUFBRUMsTUFBTSxFQUFFO1VBQUVILEtBQUssRUFBTEE7UUFBTTtNQUFFLENBQUMsQ0FBQztNQUMzQztNQUNBLElBQUksQ0FBQ0gsc0JBQXNCLEVBQUU7SUFDakMsQ0FBQztJQUVEO0lBQ0FBLHNCQUFzQixvQ0FBRztNQUFBO01BQ3JCO01BQ0EsSUFBSSxJQUFJLENBQUNPLGlCQUFpQixFQUFFO1FBQ3hCQyxZQUFZLENBQUMsSUFBSSxDQUFDRCxpQkFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUNBLGlCQUFpQixHQUFHLElBQUk7TUFDakM7O01BRUE7TUFDQSxJQUFJLElBQUksQ0FBQzdCLFVBQVUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDQSxVQUFVLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQ0EsVUFBVSxLQUFLLENBQUMsRUFBRTtRQUN6RSxJQUFJLENBQUM2QixpQkFBaUIsR0FBR0UsVUFBVSxDQUFDLFlBQU07VUFDdEM7VUFDQSxLQUFJLENBQUMvQixVQUFVLEdBQUcsQ0FBQztVQUNuQjtVQUNBYSxHQUFHLENBQUNtQixTQUFTLENBQUM7WUFDVkMsS0FBSyxFQUFFLGFBQWE7WUFDcEJDLElBQUksRUFBRSxNQUFNO1lBQ1pDLFFBQVEsRUFBRTtVQUNkLENBQUMsQ0FBQztRQUNOLENBQUMsRUFBRSxJQUFJLENBQUNDLGdCQUFnQixDQUFDO01BQzdCO0lBQ0osQ0FBQztJQUNWckIsY0FBYyw0QkFBRztNQUFBO01BQ2hCLElBQUksQ0FBQ3NCLEtBQUssQ0FBQztRQUNWQyxHQUFHLEVBQUUsK0JBQStCO1FBQ3BDeEMsSUFBSSxFQUFFLENBQUM7TUFDUixDQUFDLENBQUMsQ0FBQ3lDLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFFZCxJQUFJQyxVQUFVLEdBQUdELEdBQUcsQ0FBQzFDLElBQUksQ0FBQzRDLE9BQU87UUFDakMsSUFBSUMsY0FBYyxHQUFHOUIsR0FBRyxDQUFDK0IsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOztRQUU5QyxJQUFJSCxVQUFVLEdBQUdFLGNBQWMsQ0FBQ0UsVUFBVSxFQUFFO1VBQzNDaEMsR0FBRyxDQUFDaUMsU0FBUyxDQUFDO1lBQ2JiLEtBQUssRUFBRSxPQUFPO1lBQ2RjLE9BQU8sRUFBRSxXQUFXO1lBQ3BCQyxPQUFPLEVBQUUsaUJBQUNDLFFBQVEsRUFBSztjQUN0QixJQUFJQSxRQUFRLENBQUNDLE9BQU8sRUFBRTtnQkFDckIsTUFBSSxDQUFDQyxjQUFjLENBQUNYLEdBQUcsQ0FBQzFDLElBQUksQ0FBQ3NELE1BQU0sQ0FBQztjQUNyQztZQUNEO1VBQ0QsQ0FBQyxDQUFDO1VBQ0Y7VUFDQSxNQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQztVQUMzQjtVQUNBO1FBQ0Q7TUFDRCxDQUFDLENBQUM7SUFFSCxDQUFDO0lBRURGLGNBQWMsMEJBQUNDLE1BQU0sRUFBRTtNQUN0QnZDLEdBQUcsQ0FBQ21CLFNBQVMsQ0FBQztRQUNiQyxLQUFLLEVBQUUsV0FBVztRQUNsQkMsSUFBSSxFQUFFLE1BQU07UUFDWkMsUUFBUSxFQUFFO01BQ1gsQ0FBQyxDQUFDO01BRUZ0QixHQUFHLENBQUN5QyxZQUFZLENBQUM7UUFDaEJoQixHQUFHLEVBQUVjLE1BQU07UUFDWEosT0FBTyxFQUFFLGlCQUFDUixHQUFHLEVBQUs7VUFDakIsSUFBSUEsR0FBRyxDQUFDZSxVQUFVLEtBQUssR0FBRyxFQUFFO1lBQzNCQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDbEIsR0FBRyxDQUFDbUIsWUFBWSxFQUFFO2NBQ3RDQyxLQUFLLEVBQUU7WUFDUixDQUFDLEVBQUUsWUFBVztjQUNiLGFBQVksV0FBVztjQUN2QjtjQUNBO2NBQ0E7WUFDRCxDQUFDLEVBQUUsVUFBU0MsQ0FBQyxFQUFFO2NBQ2QsZUFBYyxPQUFPLEVBQUVBLENBQUM7WUFDekIsQ0FBQyxDQUFDO1VBQ0g7UUFDRCxDQUFDO1FBQ0RDLElBQUksRUFBRSxjQUFDQyxHQUFHLEVBQUs7VUFDZCxlQUFjLE9BQU8sRUFBRUEsR0FBRztVQUMxQmxELEdBQUcsQ0FBQ21CLFNBQVMsQ0FBQztZQUNiQyxLQUFLLEVBQUUsWUFBWTtZQUNuQkMsSUFBSSxFQUFFLE1BQU07WUFDWkMsUUFBUSxFQUFFO1VBQ1gsQ0FBQyxDQUFDO1FBQ0g7TUFDRCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRURkLE9BQU8scUJBQUc7TUFDVCxJQUFJLENBQUNGLGNBQWMsRUFBRTtNQUNyQixJQUFJLENBQUNILFlBQVksRUFBRTtNQUNuQixJQUFJLENBQUNnRCxlQUFlLEVBQUU7SUFDdkIsQ0FBQztJQUNEaEQsWUFBWSwwQkFBRztNQUFBO01BQ2QsSUFBSWlELEdBQUcsR0FBRyxFQUFFO01BRVpBLEdBQUcsR0FBRyxtQkFBbUI7TUFDekIsSUFBSSxDQUFDNUIsS0FBSyxDQUFDO1FBQ1ZDLEdBQUcsRUFBRSxtQ0FBbUM7UUFDeEN4QyxJQUFJLEVBQUU7VUFDTG9FLE1BQU0sRUFBRUQ7UUFDVDtNQUNELENBQUMsQ0FBQyxDQUFDMUIsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtRQUNkLElBQUkyQixVQUFVLEdBQUczQixHQUFHLENBQUMxQyxJQUFJLENBQUNzRSxVQUFVO1FBQ3BDLE1BQUksQ0FBQzVELFNBQVMsR0FBRzJELFVBQVUsQ0FBQzNELFNBQVM7UUFDdEIsTUFBSSxDQUFDQyxXQUFXLEdBQUcsT0FBTyxHQUFHLE1BQUksQ0FBQ0QsU0FBUyxHQUFHLE1BQU07UUFFbkVLLEdBQUcsQ0FBQ3dELGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBSSxDQUFDN0QsU0FBUyxDQUFDO1FBQy9DSyxHQUFHLENBQUN3RCxjQUFjLENBQUMsVUFBVSxFQUFFRixVQUFVLENBQUNHLFFBQVEsQ0FBQztRQUVuRCxhQUFZSCxVQUFVLENBQUNHLFFBQVE7UUFFL0IsTUFBSSxDQUFDTixlQUFlLEVBQUU7TUFDdkIsQ0FBQyxDQUFDO01BQ0Y7O01BR0g7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BQ0E7O01BR0E7O01BRUE7TUFDQTtJQUNFLENBQUM7SUFDRE8sSUFBSSxrQkFBRztNQUFBO01BQ04sSUFBSXpFLElBQUksR0FBRyxJQUFJLENBQUMwRSxhQUFhLEVBQUU7TUFFL0IsSUFBSTFFLElBQUksQ0FBQzJFLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDUCxJQUFJLENBQUNDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDM0M7TUFDRDtNQUVZLElBQUk1RSxJQUFJLENBQUMyRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLElBQUksQ0FBQ0MsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUM5QztNQUNEOztNQUVBOztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQSxJQUFJQyxXQUFXLEdBQUcsRUFBRTtNQUVwQjdFLElBQUksQ0FBQzhFLE9BQU8sQ0FBQyxVQUFBQyxDQUFDLEVBQUk7UUFDakIsSUFBSUMsTUFBTSxHQUFHO1VBQ1pDLE9BQU8sRUFBRUYsQ0FBQyxDQUFDRyxFQUFFO1VBQ2JDLE9BQU8sRUFBRUosQ0FBQyxDQUFDSztRQUNaLENBQUM7UUFDRFAsV0FBVyxDQUFDUSxJQUFJLENBQUNMLE1BQU0sQ0FBQztNQUN6QixDQUFDLENBQUM7TUFFRixJQUFJTSxRQUFRLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsSUFBSUMsSUFBSSxFQUFFLENBQUM7TUFFMUMsSUFBSSxDQUFDakQsS0FBSyxDQUFDO1FBQ1ZDLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUJ4QyxJQUFJLEVBQUU7VUFDTFUsU0FBUyxFQUFFLElBQUksQ0FBQ0EsU0FBUztVQUN6QjRFLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkcsSUFBSSxFQUFFWjtRQUNQO01BQ0QsQ0FBQyxDQUFDLENBQUNwQyxJQUFJLENBQUMsVUFBQUMsR0FBRyxFQUFJO1FBQ2QsSUFBSUEsR0FBRyxDQUFDMUMsSUFBSSxDQUFDc0UsVUFBVSxFQUFFO1VBQ3hCLE1BQUksQ0FBQ0osZUFBZSxFQUFFO1VBQ3RCbkQsR0FBRyxDQUFDbUIsU0FBUyxDQUFDO1lBQ1FDLEtBQUssRUFBRSxRQUFRO1lBQ3BDO1lBQ0E7WUFDQUMsSUFBSSxFQUFFLFNBQVM7WUFDZjtZQUNBQyxRQUFRLEVBQUU7VUFDWCxDQUFDLENBQUM7UUFDSDtRQUNBLE1BQUksQ0FBQ3FELE1BQU0sR0FBRyxLQUFLO01BQ3BCLENBQUMsQ0FBQztJQUVILENBQUM7SUFDREMsU0FBUyx1QkFBRztNQUNYLElBQUlDLEdBQUcsR0FBRyxFQUFFO01BQ1osSUFBSTtRQUNILElBQUlsQyxJQUFJLENBQUNtQyxFQUFFLENBQUNDLElBQUksSUFBSSxTQUFTLEVBQUU7VUFDOUIsSUFBSUMsZ0JBQWdCLEdBQUdyQyxJQUFJLENBQUNzQyxPQUFPLENBQUNDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztVQUM1RSxJQUFJQyxnQkFBZ0IsR0FBR0gsZ0JBQWdCLENBQUNJLFNBQVMsQ0FBQyxPQUFPLENBQUM7VUFDMUQsSUFBSUMsS0FBSyxHQUFHRixnQkFBZ0IsQ0FBQ0csa0JBQWtCLEVBQUU7O1VBRWpEO1VBQ0EsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLEtBQUssQ0FBQ3pCLE1BQU0sRUFBRTJCLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUlDLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSUMsR0FBRyxHQUFHSixLQUFLLENBQUNFLENBQUMsQ0FBQztZQUNsQixJQUFJRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO2NBQ1pELEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBR0MsR0FBRyxHQUFHLENBQUMsRUFBRUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxDQUFDLE1BQU07Y0FDTkYsR0FBRyxHQUFHQyxHQUFHLENBQUNDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkI7WUFDQSxJQUFJRixHQUFHLENBQUM1QixNQUFNLElBQUksQ0FBQyxFQUFFO2NBQ3BCNEIsR0FBRyxHQUFHLEdBQUcsR0FBR0EsR0FBRztZQUNoQjtZQUNBWCxHQUFHLElBQUtVLENBQUMsSUFBSSxDQUFDLEdBQUtDLEdBQUcsR0FBSyxHQUFHLEdBQUdBLEdBQUk7VUFDdEM7UUFDRDtNQUNELENBQUMsQ0FBQyxPQUFPdEMsR0FBRyxFQUFFO1FBQ2IyQixHQUFHLEdBQUcsbUJBQW1CO01BQzFCO01BQ0EsT0FBT0EsR0FBRztJQUNYLENBQUM7SUFFUWMsTUFBTSxvQkFBRztNQUFBO01BQ0wsSUFBSSxDQUFDLElBQUksQ0FBQ2hHLFNBQVMsRUFBRTtRQUNqQjtNQUNKOztNQUVBO01BQ0EsSUFBSSxJQUFJLENBQUNpRyxtQkFBbUIsRUFBRTtRQUMxQjVGLEdBQUcsQ0FBQ21CLFNBQVMsQ0FBQztVQUNWQyxLQUFLLEVBQUUsa0JBQWtCO1VBQ3pCQyxJQUFJLEVBQUUsT0FBTztVQUNiQyxRQUFRLEVBQUU7UUFDZCxDQUFDLENBQUM7UUFDRjtNQUNKO01BRUEsSUFBSWlELFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxJQUFJQyxJQUFJLEVBQUUsQ0FBQztNQUMxQyxJQUFJLENBQUM1RCxjQUFjLEdBQUcsRUFBRTtNQUV4QixJQUFJLENBQUNXLEtBQUssQ0FBQztRQUNQQyxHQUFHLEVBQUUsd0JBQXdCO1FBQzdCeEMsSUFBSSxFQUFFO1VBQ0ZVLFNBQVMsRUFBRSxJQUFJLENBQUNBLFNBQVM7VUFDekI0RSxRQUFRLEVBQUVBO1FBQ2Q7TUFDSixDQUFDLENBQUMsQ0FBQzdDLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFDWCxJQUFJQSxHQUFHLENBQUMxQyxJQUFJLENBQUNzRSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1VBQ3pCLE1BQUksQ0FBQ3pELGVBQWUsR0FBRyxFQUFFO1FBQzdCO01BQ0osQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVWMEUsVUFBVSxzQkFBQ3FCLElBQUksRUFBRTtNQUNoQixJQUFJQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsV0FBVyxFQUFFLENBQUMsQ0FBQztNQUMvQixJQUFJQyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0osSUFBSSxDQUFDSyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO01BQzFELElBQUlDLEdBQUcsR0FBR0gsTUFBTSxDQUFDSixJQUFJLENBQUNRLE9BQU8sRUFBRSxDQUFDLENBQUNGLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztNQUNuRCxpQkFBVUwsSUFBSSxjQUFJRSxLQUFLLGNBQUlJLEdBQUcsRUFBRyxDQUFDO0lBQ25DLENBQUM7SUFDRHRGLGVBQWUsMkJBQUNrQyxDQUFDLEVBQUU7TUFDTjtNQUNBLElBQUksQ0FBQ25DLGNBQWMsR0FBRyxDQUFDbUMsQ0FBQyxDQUFDakMsTUFBTSxDQUFDSCxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEK0MsYUFBYSwyQkFBRztNQUFBO01BQ2YsT0FBTyxJQUFJLENBQUM5QyxjQUFjLENBQUN5RixHQUFHLENBQUMsVUFBQWYsQ0FBQztRQUFBLE9BQUksTUFBSSxDQUFDMUYsU0FBUyxDQUFDMEYsQ0FBQyxDQUFDO01BQUEsRUFBQztJQUN2RCxDQUFDO0lBR0RnQixTQUFTLHFCQUFDM0YsS0FBSyxFQUFFO01BQ2hCLElBQUksQ0FBQ3pCLFVBQVUsR0FBR3lCLEtBQUs7TUFDdkI7TUFDQSxJQUFJQSxLQUFLLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLElBQUksQ0FBQ0osT0FBTyxFQUFFO01BQ2Y7TUFDQTtNQUNBLElBQUksQ0FBQ0Msc0JBQXNCLEVBQUU7TUFDN0IsYUFBWUcsS0FBSztJQUNsQixDQUFDO0lBQ0Q0RixlQUFlLDJCQUFDQyxLQUFLLEVBQUU7TUFFdEIsSUFBSSxDQUFDN0csV0FBVyxHQUFHNkcsS0FBSztNQUV4QixJQUFJLENBQUM5RyxTQUFTLEdBQUcsSUFBSSxDQUFDSixPQUFPLENBQUMsSUFBSSxDQUFDRCxXQUFXLENBQUNvSCxPQUFPLENBQUNELEtBQUssQ0FBQyxDQUFDLENBQUM5RyxTQUFTO01BRXhFSyxHQUFHLENBQUNDLGdCQUFnQixFQUFFO01BRXRCRCxHQUFHLENBQUN3RCxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQzdELFNBQVMsQ0FBQztNQUMvQ0ssR0FBRyxDQUFDd0QsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM1RCxXQUFXLENBQUM7TUFFbkQsSUFBSSxDQUFDdUQsZUFBZSxFQUFFO0lBQ3ZCLENBQUM7SUFDRHdELHFCQUFxQixpQ0FBQ0YsS0FBSyxFQUFFO01BRTVCLElBQUlHLElBQUksR0FBRyxJQUFJLENBQUNwSCxpQkFBaUIsQ0FBQyxJQUFJLENBQUNDLG9CQUFvQixDQUFDaUgsT0FBTyxDQUFDRCxLQUFLLENBQUMsQ0FBQztNQUUzRSxJQUFJLENBQUMvRyxhQUFhLEdBQUdrSCxJQUFJLENBQUNDLE1BQU07TUFFaEMsSUFBSSxDQUFDQyxTQUFTLEVBQUU7SUFFakIsQ0FBQztJQUNEeEcsY0FBYyw0QkFBRztNQUFBO01BQ2hCLElBQUksQ0FBQ2tCLEtBQUssQ0FBQztRQUNWQyxHQUFHLEVBQUU7TUFDTixDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtRQUNkLE1BQUksQ0FBQ3BDLE9BQU8sR0FBR29DLEdBQUcsQ0FBQzFDLElBQUksQ0FBQ3NFLFVBQVU7UUFDbEMsTUFBSSxDQUFDakUsV0FBVyxHQUFHLE1BQUksQ0FBQ0MsT0FBTyxDQUFDK0csR0FBRyxDQUFDLFVBQUF0QyxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDcEUsV0FBVztRQUFBLEVBQUM7TUFDeEQsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUNRO0lBQ0F1RCxlQUFlLDZCQUFHO01BQUE7TUFDZCxJQUFJLENBQUMzQixLQUFLLENBQUM7UUFDUEMsR0FBRyxFQUFFLDBCQUEwQjtRQUMvQnhDLElBQUksRUFBRTtVQUNGVSxTQUFTLEVBQUUsSUFBSSxDQUFDQTtRQUNwQjtNQUNKLENBQUMsQ0FBQyxDQUFDK0IsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtRQUNYLE1BQUksQ0FBQzdCLGVBQWUsR0FBRzZCLEdBQUcsQ0FBQzFDLElBQUksQ0FBQ3NFLFVBQVU7O1FBRTFDO1FBQ0EsSUFBTXdELEtBQUssR0FBRyxNQUFJLENBQUNqSCxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUlrSCxlQUFlLEdBQUcsS0FBSztRQUMzQixJQUFJRCxLQUFLLEVBQUU7VUFDUEMsZUFBZSxHQUNWRCxLQUFLLENBQUNFLFNBQVMsSUFBSUYsS0FBSyxDQUFDRSxTQUFTLENBQUN2QixRQUFRLEVBQUUsQ0FBQ3dCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFDM0RILEtBQUssQ0FBQ0ksV0FBVyxJQUFJSixLQUFLLENBQUNJLFdBQVcsQ0FBQ0QsSUFBSSxFQUFFLEtBQUssRUFBRyxJQUNyREgsS0FBSyxDQUFDSyxXQUFXLElBQUlMLEtBQUssQ0FBQ0ssV0FBVyxDQUFDRixJQUFJLEVBQUUsS0FBSyxFQUFHO1FBQzlEO1FBQ0E7UUFDQSxNQUFJLENBQUN0QixtQkFBbUIsR0FBR29CLGVBQWU7UUFFMUMsSUFBSSxNQUFJLENBQUNsSCxlQUFlLENBQUM4RCxNQUFNLElBQUksQ0FBQyxFQUFFO1VBQ2xDNUQsR0FBRyxDQUFDd0QsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFJLENBQUMxRCxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUN1RSxNQUFNLENBQUM7VUFDNURyRSxHQUFHLENBQUN3RCxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQUksQ0FBQzFELGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQ3FFLEVBQUUsQ0FBQztRQUN4RDtNQUNKLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRGtELFNBQVMsdUJBQUc7TUFDUixJQUFJLElBQUksQ0FBQ3ZILGVBQWUsQ0FBQzhELE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDakM1RCxHQUFHLENBQUNtQixTQUFTLENBQUM7VUFDVkMsS0FBSyxFQUFFLGtCQUFrQjtVQUN6QkMsSUFBSSxFQUFFLE9BQU87VUFDYkMsUUFBUSxFQUFFO1FBQ2QsQ0FBQyxDQUFDO1FBQ0Y7TUFDSjtNQUVBLElBQUksQ0FBQ3FELE1BQU0sR0FBRyxJQUFJO01BQ2xCO01BQ0EsSUFBSSxDQUFDakYsYUFBYSxHQUFHLFlBQVk7TUFDakMsSUFBSSxDQUFDRyxTQUFTLEdBQUcsRUFBRTtNQUNuQjtNQUNBLElBQUksQ0FBQ0osb0JBQW9CLEdBQUcsQ0FDeEIsWUFBWSxFQUNaLElBQUksRUFDSixJQUFJLENBQ1A7TUFDRDtNQUNBLElBQUksQ0FBQzZILGlCQUFpQixFQUFFO0lBQzVCO0VBQUMsbUdBRXFCQyxNQUFNLEVBQUU7SUFDMUIsSUFBSSxDQUFDN0gsYUFBYSxHQUFHNkgsTUFBTTtJQUMzQixJQUFJLENBQUNELGlCQUFpQixFQUFFO0VBQzVCLENBQUMsNkVBQ0U7SUFBQTtJQUVYLElBQUkvQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsSUFBSUMsSUFBSSxFQUFFLENBQUM7SUFFMUMsSUFBSSxDQUFDakQsS0FBSyxDQUFDO01BQ1ZDLEdBQUcsRUFBRSw2QkFBNkI7TUFDbEN4QyxJQUFJLEVBQUU7UUFDTFUsU0FBUyxFQUFFLElBQUksQ0FBQ0EsU0FBUztRQUN6QjRFLFFBQVEsRUFBRUE7TUFDWDtJQUNELENBQUMsQ0FBQyxDQUFDN0MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtNQUNkLE1BQUksQ0FBQzlCLFNBQVMsR0FBRzhCLEdBQUcsQ0FBQzFDLElBQUksQ0FBQ3NFLFVBQVU7SUFDckMsQ0FBQyxDQUFDO0VBQ0gsQ0FBQyw2RkFFNEI7SUFBQTtJQUNoQixJQUFJZ0IsUUFBUSxHQUFHLElBQUksQ0FBQ0MsVUFBVSxDQUFDLElBQUlDLElBQUksRUFBRSxDQUFDO0lBQzFDLElBQUkrQyxTQUFTLEdBQUcsRUFBRTtJQUNsQixJQUFJLElBQUksQ0FBQzlILGFBQWEsS0FBSyxZQUFZLEVBQUU7TUFDckM4SCxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztJQUNwQyxDQUFDLE1BQU07TUFDSEEsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDOUgsYUFBYSxDQUFDO0lBQ3BDO0lBQ0EsSUFBSSxDQUFDOEIsS0FBSyxDQUFDO01BQ1BDLEdBQUcsRUFBRSxtQ0FBbUM7TUFDeEN4QyxJQUFJLEVBQUU7UUFDRlUsU0FBUyxFQUFFLElBQUksQ0FBQ0EsU0FBUztRQUN6QlQsV0FBVyxFQUFFc0ksU0FBUztRQUN0QmpELFFBQVEsRUFBRUE7TUFDZDtJQUNKLENBQUMsQ0FBQyxDQUFDN0MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtNQUNYLE9BQUksQ0FBQzlCLFNBQVMsR0FBRzhCLEdBQUcsQ0FBQzFDLElBQUksQ0FBQ3NFLFVBQVU7SUFDeEMsQ0FBQyxDQUFDO0VBQ04sQ0FBQyx5RUFDRG1CLElBQUksRUFBRTtJQUNkLElBQUksQ0FBQ1IsT0FBTyxHQUFHUSxJQUFJLENBQUNQLEVBQUU7SUFDdEIsSUFBSSxDQUFDc0QsYUFBYSxHQUFHL0MsSUFBSSxDQUFDTCxNQUFNO0lBQ3BCLElBQUksQ0FBQ2pGLFdBQVcsR0FBR3NGLElBQUksQ0FBQ2dELE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLElBQUksQ0FBQ3JJLFdBQVcsR0FBR3FGLElBQUksQ0FBQ2lELE1BQU0sQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQ3hJLFVBQVUsR0FBRyxDQUFDO0VBQ3BCLENBQUMsWUFDRDtFQUNEeUksUUFBUSxFQUFFLENBQUM7QUFDWixDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG5cclxuaW1wb3J0IFdvcmtPcmRlclN0YXR1cyBmcm9tICcuLi9jb21wb25lbnRzL1dvcmtPcmRlclN0YXR1cy52dWUnOyAvLyDnoa7kv53ot6/lvoTmraPnoa5cclxuaW1wb3J0IFVuaVRhYmxlIGZyb20gXCIuLi91bmlfbW9kdWxlcy91bmktdGFibGUvY29tcG9uZW50cy91bmktdGFibGUvdW5pLXRhYmxlLnZ1ZVwiO1xyXG5pbXBvcnQgTW9sZCBmcm9tIFwiLi4vY29tcG9uZW50cy9tb2xkLnZ1ZVwiO1xyXG5pbXBvcnQgTWFjaGluZSBmcm9tIFwiLi4vY29tcG9uZW50cy9tYWNoaW5lLnZ1ZVwiO1xyXG5pbXBvcnQgV29ya09yZGVyUHJpbnQgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyUHJpbnQudnVlXCI7XHJcbmltcG9ydCBXb3JrT3JkZXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyLnZ1ZVwiO1xyXG5pbXBvcnQgVGVjaG5vbG9neSBmcm9tIFwiLi4vY29tcG9uZW50cy9UZWNobm9sb2d5LnZ1ZVwiO1xyXG5pbXBvcnQgUERGU2hvdyBmcm9tIFwiLi4vY29tcG9uZW50cy9QREZTaG93LnZ1ZVwiO1xyXG5pbXBvcnQgUHJpbnRJbml0IGZyb20gXCIuLi9jb21wb25lbnRzL1ByaW50SW5pdC52dWVcIjtcclxuaW1wb3J0IFByaW50VGVzdCBmcm9tIFwiLi4vY29tcG9uZW50cy9QcmludFRlc3QudnVlXCI7XHJcbmltcG9ydCBFcXVpcG1lbnRJbnNwZWN0aW9uIGZyb20gXCIuLi9jb21wb25lbnRzL0VxdWlwbWVudEluc3BlY3Rpb24udnVlXCI7XHJcbmltcG9ydCBNb2xkUmVjb3JkIGZyb20gXCIuLi9wYWdlcy9tb2xkUmVjb3JkLnZ1ZVwiO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRlY2hub2xvZ3ksXHJcblx0XHRcdFdvcmtPcmRlcixcclxuXHRcdFx0V29ya09yZGVyUHJpbnQsXHJcblx0XHRcdE1hY2hpbmUsXHJcblx0XHRcdE1vbGQsXHJcblx0XHRcdFVuaVRhYmxlLFxyXG5cdFx0XHRXb3JrT3JkZXJTdGF0dXMsXHJcblx0XHRcdFBERlNob3csXHJcblx0XHRcdFByaW50SW5pdCxcclxuXHRcdFx0UHJpbnRUZXN0LFxyXG5cdFx0XHRFcXVpcG1lbnRJbnNwZWN0aW9uLFxyXG5cdFx0XHRNb2xkUmVjb3JkXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiAnJywgLy8g6buY6K6k5YWo6YOoXHJcblx0XHRcdFx0Y3VycmVudFRhYjogNyxcclxuXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q29kZTogJycsIC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFNwZWM6ICcnLCAvLyDkuqflk4Hop4TmoLxcclxuXHJcblx0XHRcdFx0bWFjaGluZUxpc3Q6IFtdLFxyXG5cclxuXHRcdFx0XHRtYWNoaW5lOiBbXSxcclxuXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdOb0xpc3Q6IFtdLFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9NYXBMaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vOiAnJyxcclxuXHJcblx0XHRcdFx0bWFjaGluZU5vOiAnJyxcclxuXHRcdFx0XHRtYWNoaW5lTmFtZTogJycsXHJcblxyXG5cdFx0XHRcdHRhYmxlRGF0YTogW10sXHJcblx0XHRcdFx0aXNTaG93VGFibGVEYXRhOiBbXSxcclxuXHJcblx0XHRcdFx0b3JkZXJTdGF0dXM6ICflvIDlt6UnLFxyXG5cdFx0XHRcdHNlbGVjdGVkT3JkZXI6ICcnLFxyXG5cdFx0XHRcdG9yZGVySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHNlbGVjdGVkSW5kZXhzOiBbXSxcclxuXHJcblx0XHRcdFx0aXNTaG93OiBmYWxzZSxcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyDoh6rliqjot7Povaznm7jlhbNcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lcjogbnVsbCxcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lOiA1ICogNjAgKiAxMDAwLCAvLyA15YiG6ZKfXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHJcblx0XHRcdC8v6LCD6K+V5L2/55So55qE5Luj56CBXHJcblx0XHRcdC8vIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKTtcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnKTtcclxuXHRcdFx0Ly9cclxuXHRcdFx0Ly8gaWYgKHRoaXMubWFjaGluZU5vKSB7XHJcblx0XHRcdC8vICAgdGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY2hlY2tGb3JVcGRhdGUoKTtcclxuXHRcdFx0XHJcblx0XHRcdC8v5bel5o6n5py65L2/55So55qE5Luj56CBXHJcblx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIG9uUm93Q2xpY2soaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbaW5kZXhdOyAvLyDljZXpgIlcclxuICAgICAgICAgICAgICAgIC8vIOaJi+WKqOinpuWPkSBzZWxlY3Rpb25DaGFuZ2Ug5Lul5ZCM5q2l5aSN6YCJ5qGGXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZSh7IGRldGFpbDogeyBpbmRleCB9IH0pO1xyXG4gICAgICAgICAgICAgICAgLy8g6YeN572u6Ieq5Yqo6Lez6L2s6K6h5pe25ZmoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOmHjee9ruiHquWKqOi3s+i9rOiuoeaXtuWZqFxyXG4gICAgICAgICAgICByZXNldEF1dG9SZWRpcmVjdFRpbWVyKCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5riF6Zmk546w5pyJ55qE5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVkaXJlY3RUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9SZWRpcmVjdFRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6Zmk5LqG5Li76aG1KDAp44CB5bel5Y2V6YCJ5oup6aG1KDcp44CB55Sf5Lqn5oql5bel6aG1KDQp5LmL5aSW55qE6aG16Z2i5omN6K6+572u6Ieq5Yqo6Lez6L2sXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiICE9PSAwICYmIHRoaXMuY3VycmVudFRhYiAhPT0gNyAmJiB0aGlzLmN1cnJlbnRUYWIgIT09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOi3s+i9rOWbnuS4u+mhtVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmmL7npLrmj5DnpLrkv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mhtemdoui2heaXtu+8jOiHquWKqOi/lOWbnuS4u+mhtScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmF1dG9SZWRpcmVjdFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRjaGVja0ZvclVwZGF0ZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9nZXRBcHBVcGdyYWRlSW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YToge31cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGxldCBuZXdWZXJzaW9uID0gcmVzLmRhdGEudmVyc2lvbjtcclxuXHRcdFx0XHRcdGxldCBjdXJyZW50VmVyc2lvbiA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpOyAvLyDojrflj5blvZPliY0gQVBLIOeJiOacrOWPt1xyXG5cdFx0XHRcdFx0IFxyXG5cdFx0XHRcdFx0aWYgKG5ld1ZlcnNpb24gPiBjdXJyZW50VmVyc2lvbi5hcHBWZXJzaW9uKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBcIuWPkeeOsOaWsOeJiOacrFwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwi5piv5ZCm5LiL6L295pyA5paw54mI5pysP1wiLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChtb2RhbFJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsUmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vdGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNoZWNrZWQgPSB0cnVlOyAvLyDmoIforrDmm7TmlrDlt7Lmo4Dmn6Xov4dcclxuXHRcdFx0XHRcdFx0Ly8gICAgICAvLyDlpoLmnpzmnInmlrDniYjmnKzvvIzlvIDlp4vkuIvovb1cclxuXHRcdFx0XHRcdFx0Ly9kb3dubG9hZChyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRkb3dubG9hZE5ld0FwayhhcGtVcmwpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIuW8gOWni+S4i+i9veabtOaWsC4uLlwiLFxyXG5cdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR1bmkuZG93bmxvYWRGaWxlKHtcclxuXHRcdFx0XHRcdHVybDogYXBrVXJsLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5pbnN0YWxsKHJlcy50ZW1wRmlsZVBhdGgsIHtcclxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSwgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWuieijheaIkOWKn++8jOmHjeWQr+W6lOeUqFwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnF1aXQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdFx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCLlronoo4XlpLHotKU6XCIsIGUpO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwi5LiL6L295aSx6LSlOlwiLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLkuIvovb3lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5xcIixcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdHJlZnJlc2goKSB7XHJcblx0XHRcdFx0dGhpcy5nZXRNYWNoaW5lTGlzdCgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0UHJpbnRJbmZvKCkge1xyXG5cdFx0XHRcdHZhciBtYWMgPSBcIlwiO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hYyA9IFwiNzQ6MjQ6Y2E6NGY6YjI6YzNcIjtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hY2hpbmVOYW1lID0gXCLosIPor5XmqKHlvI/vvJpcIiArIHRoaXMubWFjaGluZU5vICsgXCLlj7fpvb/ova7mnLpcIlxyXG5cclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdC8vICBcdFx0XHRpZiAocGx1cy5vcy5uYW1lID09IFwiQW5kcm9pZFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0Ly/ojrflj5bmiYvmnLpNQUPlnLDlnYBcclxuXHQvLyAgXHRcdFx0XHR2YXIgQ29udGV4dCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuY29udGVudC5Db250ZXh0XCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciBXaWZpTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmV0LndpZmkuV2lmaU1hbmFnZXJcIik7XHJcblx0Ly8gIFx0XHRcdFx0dmFyIHdpZmlNYW5hZ2VyID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKS5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuV0lGSV9TRVJWSUNFKTtcclxuXHQvLyAgXHRcdFx0XHR2YXIgV2lmaUluZm8gPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm5ldC53aWZpLldpZmlJbmZvXCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciB3aWZpSW5mbyA9IHdpZmlNYW5hZ2VyLmdldENvbm5lY3Rpb25JbmZvKCk7XHJcblx0Ly8gIFx0XHRcdFx0bWFjID0gd2lmaUluZm8uZ2V0TWFjQWRkcmVzcygpO1xyXG5cdFx0XHRcdFx0XHJcblx0Ly8gIFx0XHRcdFx0Ly/lpoLmnpxtYWPkuLrigJwwMjowMDowMDowMDowMDowMOKAne+8jOWImeWPr+iDveaYr+WuieWNkzYuMOS7peS4iueJiOacrO+8jOWImeS9v+eUqOWPpuS4gOenjeaWueazleiOt+WPlm1hY+WcsOWdgFxyXG5cdC8vICBcdFx0XHRcdGlmIChtYWMgPT0gXCIwMjowMDowMDowMDowMDowMFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0XHRtYWMgPSB0aGlzLmdldE1hY05ldygpO1xyXG5cdC8vICBcdFx0XHRcdH1cclxuXHQvLyAgXHRcdFx0XHQvL+WmguaenG1hY+S9v+eUqOaWsOaWueazleS+neeEtuaYr+KAnDAyOjAwOjAwOjAwOjAwOjAw4oCd5YiZ5LiN6L+b6KGM5L+d5a2YXHJcblx0Ly8gIFx0XHRcdFx0aWYgKG1hYyA9PSBcIjAyOjAwOjAwOjAwOjAwOjAwXCIpIHtcclxuXHQvLyAgXHRcdFx0XHRcdHJldHVybjtcclxuXHQvLyAgXHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwZGFNYWMnLCBtYWMpO1xyXG5cclxuXHQvLyAgXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHQvLyAgXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHQvLyAgXHRcdFx0XHRcdGRhdGE6IHtcclxuXHQvLyAgXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0Ly8gIFx0XHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdC8vICBcdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuXHQvLyAgXHRcdFx0XHRcdHRoaXMubWFjaGluZU5hbWUgPSBcIuW9k+WJjeacuuWPsO+8mlwiICsgdGhpcy5tYWNoaW5lTm8gKyBcIuWPt+m9v+i9ruaculwiO1xyXG5cclxuXHQvLyAgXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdC8vICBcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG4gXHJcblxyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHJcblx0Ly8gIFx0XHRcdFx0fSk7XHJcblx0Ly8gIFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZSgpIHtcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG5cclxuXHRcdFx0XHRpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShcIuivt+mAieaLqeS4gOS4quW3peWNlVwiKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5LiA5qyh5Y+q6IO96YCJ5Y+W5LiA5Liq5bel5Y2VXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9sZXQgZmlyc3RWYWx1ZSA9IGRhdGFbMF1bXCJtb2xkSWRcIl07IC8vIOiOt+WPluesrOS4gOS4quWvueixoeeahOaMh+WumuWxnuaAp+WAvFxyXG5cclxuXHRcdFx0XHQvLy8vIOS9v+eUqCBldmVyeSDmlrnms5Xmo4Dmn6XmiYDmnInlr7nosaHnmoTor6XlsZ7mgKflgLzmmK/lkKbkuIDoh7RcclxuXHRcdFx0XHQvL2xldCBmbGFnID0gZGF0YS5ldmVyeShpdGVtID0+IGl0ZW1bXCJtb2xkSWRcIl0gPT09IGZpcnN0VmFsdWUpO1xyXG5cdFx0XHRcdC8vaWYgKCFmbGFnKSB7XHJcblx0XHRcdFx0Ly9cdHRoaXMuJHNob3dNZXNzYWdlKFwi6YCJ5Y+W55qEXCIgKyBkYXRhLmxlbmd0aCArIFwi5Liq5bel5Y2V5Lit55qE5qih5YW357yW5Y+35LiN5LiA6Ie0XCIpO1xyXG5cdFx0XHRcdC8vXHRyZXR1cm47XHJcblx0XHRcdFx0Ly99XHJcblxyXG5cdFx0XHRcdGxldCBvcmRlclNlbGVjdCA9IFtdO1xyXG5cclxuXHRcdFx0XHRkYXRhLmZvckVhY2gocyA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZW50aXR5ID0ge1xyXG5cdFx0XHRcdFx0XHRvcmRlcklkOiBzLmlkLFxyXG5cdFx0XHRcdFx0XHRvcmRlck5vOiBzLmRhYTAwMSxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdG9yZGVyU2VsZWN0LnB1c2goZW50aXR5KTtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0bGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvTWVzT3JkZXJTZWxlY3QvQWRkXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcblx0XHRcdFx0XHRcdGVkaXREYXRlOiBlZGl0RGF0ZSxcclxuXHRcdFx0XHRcdFx0aXRlbTogb3JkZXJTZWxlY3RcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGEudGJCaWxsTGlzdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5bel5Y2V5oiQ5YqfJyxcclxuXHRcdFx0XHRcdFx0XHQvL3RpdGxlOiAn5bCG5rOo5aGR5py65byA5ZCI5qih5pWw5riFMCcsXHJcblx0XHRcdFx0XHRcdFx0Ly/lsIblgLzorr7nva7kuLogc3VjY2VzcyDmiJbogIXnm7TmjqXkuI3nlKjlhplpY29u6L+Z5Liq5Y+C5pWwXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdC8v5pi+56S65oyB57ut5pe26Ze05Li6IDXnp5JcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogNTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY05ldygpIHtcclxuXHRcdFx0XHR2YXIgc3RyID0gXCJcIjtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYgKHBsdXMub3MubmFtZSA9PSBcIkFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHR2YXIgTmV0d29ya0ludGVyZmFjZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0Lk5ldHdvcmtJbnRlcmZhY2VcIik7XHJcblx0XHRcdFx0XHRcdHZhciBuZXR3b3JrSW50ZXJmYWNlID0gTmV0d29ya0ludGVyZmFjZS5nZXRCeU5hbWUoXCJ3bGFuMFwiKTtcclxuXHRcdFx0XHRcdFx0dmFyIGJ5dGVzID0gbmV0d29ya0ludGVyZmFjZS5nZXRIYXJkd2FyZUFkZHJlc3MoKTtcclxuXHRcdFx0XHJcblx0XHRcdFx0XHRcdC8v5bCGYnl0ZVtdIOi9rOaNouaIkCBTdHJpbmdcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdHZhciB0bXAgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdHZhciBudW0gPSBieXRlc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobnVtIDwgMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gKDI1NSArIG51bSArIDEpLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRtcC5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gXCIwXCIgKyB0bXA7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHN0ciArPSAoaSA9PSAwKSA/ICh0bXApIDogKFwiOlwiICsgdG1wKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdFx0c3RyID0gXCIwMjowMDowMDowMDowMDowMFwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0XHR9LFxyXG5cclxuICAgICAgICAgICAgY2FuY2VsKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDnm7TmjqXnlKggZmxhZyDliKTmlq1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0JpbmRlZEN1dHRlckZsYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflvZPliY3lt6XljZXlt7Lnu5HlrprliIDlhbfvvIzkuI3og73muIXnqbrph43pgIknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNPcmRlclNlbGVjdC9SZW1vdmVcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXREYXRlOiBlZGl0RGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnRiQmlsbExpc3QgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93VGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG5cdFx0XHRmb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdFx0XHRsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8g6I635Y+W5bm05Lu9XHJcblx0XHRcdFx0bGV0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaciOS7veW5tuihpembtlxyXG5cdFx0XHRcdGxldCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaXpeacn+W5tuihpembtlxyXG5cdFx0XHRcdHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gOyAvLyDov5Tlm57moLzlvI/ljJblkI7nmoTlrZfnrKbkuLJcclxuXHRcdFx0fSxcclxuXHRcdFx0c2VsZWN0aW9uQ2hhbmdlKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWNlemAieebtOaOpei1i+WAvFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtlLmRldGFpbC5pbmRleF07XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RlZEl0ZW1zKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXhzLm1hcChpID0+IHRoaXMudGFibGVEYXRhW2ldKVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGNoYW5nZVRhYihpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IGluZGV4O1xyXG5cdFx0XHRcdC8vIOW9k+WIh+aNouWIsOW3peWNlemAieaLqemhtemdoihpbmRleCA9PT0gNynml7boh6rliqjliLfmlrBcclxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDph43nva7oh6rliqjot7PovazorqHml7blmahcclxuXHRcdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpbmRleCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWFjaGluZUNoYW5nZShldmVudCkge1xyXG5cclxuXHRcdFx0XHR0aGlzLm1hY2hpbmVOYW1lID0gZXZlbnQ7XHJcblxyXG5cdFx0XHRcdHRoaXMubWFjaGluZU5vID0gdGhpcy5tYWNoaW5lW3RoaXMubWFjaGluZUxpc3QuaW5kZXhPZihldmVudCldLm1hY2hpbmVObztcclxuXHJcblx0XHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTmFtZScsIHRoaXMubWFjaGluZU5hbWUpO1xyXG5cclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkVuZ2luZWVyaW5nTm9DaGFuZ2UoZXZlbnQpIHtcclxuXHJcblx0XHRcdFx0bGV0IG9yZGUgPSB0aGlzLmVuZ2luZWVyaW5nTm9MaXN0W3RoaXMuZW5naW5lZXJpbmdOb01hcExpc3QuaW5kZXhPZihldmVudCldO1xyXG5cclxuXHRcdFx0XHR0aGlzLmVuZ2luZWVyaW5nTm8gPSBvcmRlLm1vbGRJZDtcclxuXHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWEoKTtcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY2hpbmVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9NZXNNYWNoaW5lL0dldEluamVjdGlvbk1hY2hpbmVcIixcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTGlzdCA9IHRoaXMubWFjaGluZS5tYXAocyA9PiBzLm1hY2hpbmVOYW1lKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4gICAgICAgICAgICAvL+iOt+WPluihqOagvOeahOaVsOaNrua6kFxyXG4gICAgICAgICAgICBnZXRXb21kYWFJc1Nob3coKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2hvd1RhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWPquWIpOaWreesrOS4gOadoe+8iOWPquWFgeiuuOS4gOadoeW3peWNle+8iVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pc1Nob3dUYWJsZURhdGFbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0JpbmRlZEN1dHRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kZWRDdXR0ZXIgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xJZCAmJiBvcmRlci5vdXRUb29sSWQudG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xDb2RlICYmIG9yZGVyLm91dFRvb2xDb2RlLnRyaW0oKSAhPT0gJycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbE5hbWUgJiYgb3JkZXIub3V0VG9vbE5hbWUudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWtmOWCqOWIsCBkYXRhIOWPmOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQmluZGVkQ3V0dGVyRmxhZyA9IGhhc0JpbmRlZEN1dHRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93VGFibGVEYXRhLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnZGFhMDAxJywgdGhpcy5pc1Nob3dUYWJsZURhdGFbMF0uZGFhMDAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdpZCcsIHRoaXMuaXNTaG93VGFibGVEYXRhWzBdLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGlzU2hvd1RhYigpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd1RhYmxlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5bey5pyJ5q2j5Zyo5pON5L2c55qE5bel5Y2V77yM5LiN6IO95YaN5qyh6YCJ5oupJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8g6buY6K6k6YCJ5Lit4oCc5b6F5byA5bel4oCdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm8gPSAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJztcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyDkuIvmi4nmoYblj6rmmL7npLrlkIjlubblkI7nmoTnirbmgIHlkozlhbblroPnirbmgIFcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdOb01hcExpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W8gOW3pScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+WujOW3pSdcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAvLyDpu5jorqTmmL7npLrigJzlvoXlvIDlt6XigJ3lt6XljZVcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5LiL5ouJ5qGG6YCJ5Lit5ZCO77yM5oyJ54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIG9uRW5naW5lZXJpbmdOb0NoYW5nZShzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdObyA9IHN0YXR1cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0Z2V0V29tZGFhKCkge1xyXG5cclxuXHRcdFx0XHRsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5TWFjaGluZVwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG5cdFx0XHRcdFx0XHRlZGl0RGF0ZTogZWRpdERhdGVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgLy8g5oyJ5bel5Y2V54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIGdldFdvbWRhYUJ5U3RhdHVzKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXR1c0FyciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZW5naW5lZXJpbmdObyA9PT0gJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNBcnIgPSBbJ+W+heW8gOW3pScsICfmnKrlvIDlt6UnLCAn5pqC5YGcJ107XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0FyciA9IFt0aGlzLmVuZ2luZWVyaW5nTm9dO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5RW5naW5lZXJpbmdOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJTdGF0dXM6IHN0YXR1c0FycixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERhdGU6IGVkaXREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHR0b0RldGFpbChpdGVtKSB7XHJcblx0XHRcdFx0dGhpcy5vcmRlcklkID0gaXRlbS5pZDtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkT3JkZXIgPSBpdGVtLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdENvZGUgPSBpdGVtLmRhYTAwMjsgLy8g5Lqn5ZOB57yW56CBXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTcGVjID0gaXRlbS5kYWEwMDQ7IC8vIOS6p+WTgeinhOagvFxyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IDA7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge31cclxuXHR9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _moldRecord = _interopRequireDefault(__webpack_require__(/*! ../pages/moldRecord.vue */ 115));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default,\n MoldRecord: _moldRecord.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), (0, _defineProperty2.default)(_ref, \"autoRedirectTimer\", null), (0, _defineProperty2.default)(_ref, \"autoRedirectTime\", 5 * 60 * 1000), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n this.resetAutoRedirectTimer();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n },\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n resetAutoRedirectTimer: function resetAutoRedirectTimer() {\n var _this = this;\n // 娓呴櫎鐜版湁鐨勫畾鏃跺櫒\n if (this.autoRedirectTimer) {\n clearTimeout(this.autoRedirectTimer);\n this.autoRedirectTimer = null;\n }\n\n // 闄や簡涓婚〉(0)銆佸伐鍗曢�夋嫨椤�(7)銆佺敓浜ф姤宸ラ〉(4)涔嬪鐨勯〉闈㈡墠璁剧疆鑷姩璺宠浆\n if (this.currentTab !== 0 && this.currentTab !== 7 && this.currentTab !== 4) {\n this.autoRedirectTimer = setTimeout(function () {\n // 璺宠浆鍥炰富椤礬n _this.currentTab = 0;\n // 鏄剧ず鎻愮ず淇℃伅\n uni.showToast({\n title: '椤甸潰瓒呮椂锛岃嚜鍔ㄨ繑鍥炰富椤�',\n icon: 'none',\n duration: 2000\n });\n }, this.autoRedirectTime);\n }\n },\n checkForUpdate: function checkForUpdate() {\n var _this2 = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this2.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this2.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:437\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:442\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:447\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this3 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b2:c3\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this3.machineNo = devMachine.machineNo;\n _this3.machineName = \"璋冭瘯妯″紡锛歕" + _this3.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this3.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:479\");\n _this3.getWomdaaIsShow();\n });\n return;\n\n // \t\t\tif (plus.os.name == \"Android\") {\n // \t\t\t\t//鑾峰彇鎵嬫満MAC鍦板潃\n // \t\t\t\tvar Context = plus.android.importClass(\"android.content.Context\");\n // \t\t\t\tvar WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n // \t\t\t\tvar wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n // \t\t\t\tvar WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n // \t\t\t\tvar wifiInfo = wifiManager.getConnectionInfo();\n // \t\t\t\tmac = wifiInfo.getMacAddress();\n\n // \t\t\t\t//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\tmac = this.getMacNew();\n // \t\t\t\t}\n // \t\t\t\t//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\treturn;\n // \t\t\t\t}\n // \t\t\t\tuni.setStorageSync('pdaMac', mac);\n\n // \t\t\t\tthis.$post({\n // \t\t\t\t\turl: \"/DevMachine/GetDevMachineByPdaMac\",\n // \t\t\t\t\tdata: {\n // \t\t\t\t\t\tpdaMac: mac,\n // \t\t\t\t\t}\n // \t\t\t\t}).then(res => {\n // \t\t\t\t\tlet devMachine = res.data.tbBillList;\n // \t\t\t\t\tthis.machineNo = devMachine.machineNo;\n // \t\t\t\t\tthis.machineName = \"褰撳墠鏈哄彴锛歕" + this.machineNo + \"鍙烽娇杞満\";\n\n // \t\t\t\t\tuni.setStorageSync('machineNo', this.machineNo);\n // \t\t\t\t\tuni.setStorageSync('printMac', devMachine.printMac);\n\n // \t\t\t\t\tthis.getWomdaaIsShow();\n\n // \t\t\t\t});\n // \t\t\t}\n },\n save: function save() {\n var _this4 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this4.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this4.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this5 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this5.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this6 = this;\n return this.selectedIndexs.map(function (i) {\n return _this6.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n __f__(\"log\", index, \" at pages/index.vue:665\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this7 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this7.machine = res.data.tbBillList;\n _this7.machineList = _this7.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this8 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this8.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this8.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this8.hasBindedCutterFlag = hasBindedCutter;\n if (_this8.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this8.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this8.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this10 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this10.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJNb2xkUmVjb3JkIiwiZGF0YSIsIm9yZGVyU3RhdHVzIiwiY3VycmVudFRhYiIsInByb2R1Y3RDb2RlIiwicHJvZHVjdFNwZWMiLCJtYWNoaW5lTGlzdCIsIm1hY2hpbmUiLCJlbmdpbmVlcmluZ05vTGlzdCIsImVuZ2luZWVyaW5nTm9NYXBMaXN0IiwiZW5naW5lZXJpbmdObyIsIm1hY2hpbmVObyIsIm1hY2hpbmVOYW1lIiwidGFibGVEYXRhIiwiaXNTaG93VGFibGVEYXRhIiwiY3JlYXRlZCIsInVuaSIsIm9uTG9hZCIsIm9uU2hvdyIsIm1ldGhvZHMiLCJvblJvd0NsaWNrIiwiZGV0YWlsIiwiaW5kZXgiLCJyZXNldEF1dG9SZWRpcmVjdFRpbWVyIiwiY2xlYXJUaW1lb3V0IiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJjaGVja0ZvclVwZGF0ZSIsInVybCIsImNvbnRlbnQiLCJzdWNjZXNzIiwiZG93bmxvYWROZXdBcGsiLCJwbHVzIiwiZm9yY2UiLCJmYWlsIiwicmVmcmVzaCIsImdldFByaW50SW5mbyIsIm1hYyIsInBkYU1hYyIsInNhdmUiLCJvcmRlcklkIiwib3JkZXJObyIsIm9yZGVyU2VsZWN0IiwiZWRpdERhdGUiLCJpdGVtIiwiZ2V0TWFjTmV3IiwidG1wIiwic3RyIiwiY2FuY2VsIiwiZm9ybWF0RGF0ZSIsInNlbGVjdGlvbkNoYW5nZSIsInNlbGVjdGVkSXRlbXMiLCJjaGFuZ2VUYWIiLCJvbk1hY2hpbmVDaGFuZ2UiLCJvbkVuZ2luZWVyaW5nTm9DaGFuZ2UiLCJnZXRNYWNoaW5lTGlzdCIsImdldFdvbWRhYUlzU2hvdyIsImhhc0JpbmRlZEN1dHRlciIsIm9yZGVyIiwiaXNTaG93VGFiIiwic3RhdHVzIiwic3RhdHVzQXJyIiwiY29tcHV0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBbVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUEsZUFFQTtFQUNBQTtJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztFQUNBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BRUFDO01BQUE7TUFDQUM7TUFBQTs7TUFFQUM7TUFFQUM7TUFFQUM7TUFDQUM7TUFDQUM7TUFFQUM7TUFDQUM7TUFFQUM7TUFDQUM7SUFBQSxzREFFQSw0REFDQSxvREFDQSwwREFFQSxtREFFQSxpRUFHQSwrREFDQTtFQUVBO0VBQ0FDO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUFDO0lBRUE7O0lBRUE7SUFDQTtFQUVBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBQztVQUFBQztRQUFBO01BQUE7TUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtRQUNBQztRQUNBO01BQ0E7O01BRUE7TUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0FSO1lBQ0FTO1lBQ0FDO1lBQ0FDO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0E1QjtNQUNBO1FBRUE7UUFDQTs7UUFFQTtVQUNBZTtZQUNBUztZQUNBSztZQUNBQztjQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBRUE7SUFFQUM7TUFDQWhCO1FBQ0FTO1FBQ0FDO1FBQ0FDO01BQ0E7TUFFQVg7UUFDQWE7UUFDQUU7VUFDQTtZQUNBRTtjQUNBQztZQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7WUFDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FDO1VBQ0E7VUFDQW5CO1lBQ0FTO1lBQ0FDO1lBQ0FDO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQVM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFFQUM7TUFDQTtRQUNBVDtRQUNBNUI7VUFDQXNDO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUVBdkI7UUFDQUE7UUFFQTtRQUVBO01BQ0E7TUFDQTs7TUFHQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTs7TUFHQTs7TUFFQTtNQUNBO0lBQ0E7SUFDQXdCO01BQUE7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO01BRUE7UUFDQTtRQUNBO01BQ0E7O01BRUE7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BRUF2QztRQUNBO1VBQ0F3QztVQUNBQztRQUNBO1FBQ0FDO01BQ0E7TUFFQTtNQUVBO1FBQ0FkO1FBQ0E1QjtVQUNBVTtVQUNBaUM7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQTtVQUNBN0I7WUFDQVM7WUFDQTtZQUNBO1lBQ0FDO1lBQ0E7WUFDQUM7VUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUVBO0lBQ0FtQjtNQUNBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FDO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQUM7VUFDQTtRQUNBO01BQ0E7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUNBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0FqQztVQUNBUztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO01BQ0E7TUFFQTtRQUNBRTtRQUNBNUI7VUFDQVU7VUFDQWlDO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQU07TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUdBQztNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUVBO01BRUE7TUFFQXRDO01BRUFBO01BQ0FBO01BRUE7SUFDQTtJQUNBdUM7TUFFQTtNQUVBO01BRUE7SUFFQTtJQUNBQztNQUFBO01BQ0E7UUFDQTNCO01BQ0E7UUFDQTtRQUNBO1VBQUE7UUFBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBNEI7TUFBQTtNQUNBO1FBQ0E1QjtRQUNBNUI7VUFDQVU7UUFDQTtNQUNBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7VUFDQStDLGtCQUNBQywrREFDQUEsd0RBQ0FBO1FBQ0E7UUFDQTtRQUNBO1FBRUE7VUFDQTNDO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBRUE0QztNQUNBO1FBQ0E1QztVQUNBUztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQSw2QkFDQSxjQUNBLE1BQ0EsS0FDQTtNQUNBO01BQ0E7SUFDQTtFQUFBLG1HQUVBa0M7SUFDQTtJQUNBO0VBQ0EsOEVBQ0E7SUFBQTtJQUVBO0lBRUE7TUFDQWhDO01BQ0E1QjtRQUNBVTtRQUNBaUM7TUFDQTtJQUNBO01BQ0E7SUFDQTtFQUNBLDhGQUVBO0lBQUE7SUFDQTtJQUNBO0lBQ0E7TUFDQWtCO0lBQ0E7TUFDQUE7SUFDQTtJQUNBO01BQ0FqQztNQUNBNUI7UUFDQVU7UUFDQVQ7UUFDQTBDO01BQ0E7SUFDQTtNQUNBO0lBQ0E7RUFDQSwwRUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0EsYUFDQTtFQUNBa0I7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjUyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cclxuXHQ8dmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidGFiLWJhclwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDcgfVwiIEBjbGljaz1cImNoYW5nZVRhYig3KVwiPlxyXG5cdFx0XHRcdOW3peWNlemAieaLqVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gMCB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDApXCI+XHJcblx0XHRcdFx05Li755WM6Z2iXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSAyIH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoMilcIj5cclxuXHRcdFx0XHTkuIrliIDkuIvliIBcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDMgfVwiIEBjbGljaz1cImNoYW5nZVRhYigzKVwiPlxyXG5cdFx0XHRcdOiwg+acuumAgeajgFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gMTAgfVwiIEBjbGljaz1cImNoYW5nZVRhYigxMClcIj5cclxuXHRcdFx0XHTkuIrkuIvliIAv6aaW5qOA5Y2V6K6w5b2VXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSA0IH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoNClcIj5cclxuXHRcdFx0XHTnlJ/kuqfmiqXlt6VcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDEgfVwiIEBjbGljaz1cImNoYW5nZVRhYigxKVwiPlxyXG5cdFx0XHRcdOW8gOW3peWujOW3pVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gNSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDUpXCI+XHJcblx0XHRcdFx0ZS1TT1BcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDYgfVwiIEBjbGljaz1cImNoYW5nZVRhYig2KVwiPlxyXG5cdFx0XHRcdOW3peiJuuWPguaVsFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gOSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDkpXCI+XHJcblx0XHRcdFx06K6+5aSH54K55qOAXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDggfVwiIEBjbGljaz1cImNoYW5nZVRhYig4KVwiPlxyXG5cdFx0XHTmiZPljbDmnLrorr7nva5cclxuXHRcdDwvdmlldz4gLS0+XHJcblxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJmb250XCI+PC92aWV3PlxyXG5cdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gN1wiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDwhLS08dmlldyBjbGFzcz1cInRvcC1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idG5cIiBAY2xpY2s9XCJyZWZyZXNoXCI+5Yi35pawPC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+LS0+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0PuS4gOWPsOacuuWPsOWPquiDvemAieaLqeS4gOadoeW3peWNle+8iOWkmumAiem7mOiupOS4uuacgOWQjuS4gOadoe+8iTwvaDQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNlY3Rpb24gdG9wLXNlY3Rpb25cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvdyBhbGlnbi1yb3dcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdi1tb2RlbD1cIm1hY2hpbmVOYW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdCAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICB0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICBjbGFzcz1cIm1hY2hpbmUtbmFtZS1ib3hcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwib3JkZXItbGFiZWxcIj7nrKzkuIDmraXpgInmi6nlt6XljZU6PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwcmludC1idG5cIiBAY2xpY2s9XCJpc1Nob3dUYWJcIj7pgInmi6nlt6XljZU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AtcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJyZWZyZXNoLWJ0blwiIEBjbGljaz1cInJlZnJlc2hcIj7liLfmlrA8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICAgICAgICAgICZsdDshJm5kYXNoOyDkuK3pg6jvvJrov5DooYznirbmgIEtLT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbiBjYXJkXCI+XHJcblx0XHRcdFx0XHRcdDx1bmktdGFibGUgYm9yZGVyIHN0cmlwZSBlbXB0eVRleHQ9XCLmmoLml6Dmm7TlpJrmlbDmja5cIiBAc2VsZWN0aW9uLWNoYW5nZT1cInNlbGVjdGlvbkNoYW5nZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx1bmktdHI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPuW3peW6jzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cIndpZHRoOiAxNzBweDtcIj7lt6XljZXlj7c8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+5Lqn5ZOB57yW56CBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE5MHB4O1wiPuS6p+WTgeWQjeensDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cIndpZHRoOiAxOTBweDtcIj7op4TmoLw8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7lt7LnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7mnKrnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7mtL7lt6XmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7lt6XljZXmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7lt6XljZXnirbmgIE8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7miqXlt6Xkuro8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7pgInmi6k8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0XHQ8dW5pLXRyIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpc1Nob3dUYWJsZURhdGFcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0ucHJvY05hbWVcIiAvPjwhLS3lt6Xluo8tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAxIH19PC9kaXY+PCEtLeW3peWNleWPty0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDIgfX08L2Rpdj48IS0t5Lqn5ZOB57yW56CBLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMyB9fTwvZGl2PjwhLS3kuqflk4HlkI3np7AtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDA0IH19PC9kaXY+PCEtLeinhOagvC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxMVwiIC8+PCEtLeW3sueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihpdGVtLmRhYTAwOCB8fCAwKSAtIChpdGVtLmRhYTAxMSB8fCAwKVwiIC8+PCEtLeacqueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLea0vuW3peaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHQgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMDhcIiAvPjwhLS3lt6XljZXmlbDph48tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMThcIiAvPjwhLS3lt6XljZXnirbmgIEtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5zdGFmZk5hbWVcIiAvPjwhLS3miqXlt6XkurotLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIHR5cGU9XCJkZWZhdWx0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdOi9rOWIsOS4u+eVjOmdolxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0PC91bmktdGFibGU+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ0blwiIEBjbGljaz1cImNhbmNlbFwiPua4heepuumHjemAiTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tPHRleHQgc3R5bGU9XCJjb2xvcjogcmVkO1wiPlxyXG5cdFx0XHRcdFx0XHTor7TmmI465Y+q6IO95ZCM5pe25byA5bel5LiA5Liq5bel5Y2V44CC6YCJ5oup5a6M5oiQ77yM54K55Ye75L+d5a2Y6YCJ5oup44CC57O757uf5L+d55WZ6YCJ5Lit55qE5bel5Y2V44CCXHJcblx0XHRcdFx0XHRcdOWmguaenOimgemHjemAie+8jOeCueWHu+a4heepuumHjemAieWKn+iDveOAglxyXG5cdFx0XHRcdFx0PC90ZXh0Pi0tPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gMFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8V29ya09yZGVyIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIlxyXG5cdFx0XHRcdFx0XHQgICA6ZGV2aWNlTnVtYmVyPVwibWFjaGluZU5hbWVcIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAxXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggV29ya09yZGVyU3RhdHVzIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxXb3JrT3JkZXJTdGF0dXMgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDJcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSAgICAgICAgJmx0OyEmbmRhc2g7IOiwg+eUqCBtb2xkIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxtb2xkIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAzXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggbW9sZCDnu4Tku7YgJm5kYXNoOyZndDstLT5cclxuXHRcdFx0XHQ8bWFjaGluZSA6b3JkZXJJZD1cIm9yZGVySWRcIiA6b3JkZXJObz1cInNlbGVjdGVkT3JkZXJcIiA6bWFjaGluZU5vPVwibWFjaGluZU5vXCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gMTBcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSDosIPnlKggbW9sZFJlY29yZCDnu4Tku7YgLS0+XHJcblx0XHRcdFx0PE1vbGRSZWNvcmQgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDRcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSAg6LCD55SoIG1vbGQg57uE5Lu2IC0tPlxyXG5cdFx0XHRcdDxXb3JrT3JkZXJQcmludCA6b3JkZXJJZD1cIm9yZGVySWRcIiA6b3JkZXJObz1cInNlbGVjdGVkT3JkZXJcIiA6bWFjaGluZU5vPVwibWFjaGluZU5vXCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gOFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8IS0tIOiwg+eUqCBtb2xkIOe7hOS7tiAtLT5cclxuXHRcdFx0XHQ8UHJpbnRJbml0IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA1XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDxQREZTaG93IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA2XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDxUZWNobm9sb2d5IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA5XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0g6K6+5aSH54K55qOA6KeG5Zu+IC0tPlxyXG5cdFx0XHRcdDxFcXVpcG1lbnRJbnNwZWN0aW9uIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cclxuXHJcblx0XHQ8IS0tIOW8ueeql+S4i+aLieahhuWPquaYvuekuuW3peWNleeKtuaAgSAtLT5cclxuXHRcdDx2aWV3IHYtaWY9XCJpc1Nob3dcIiBjbGFzcz1cIm92ZXJsYXlcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuXHRcdFx0XHRcdFx0PGxhYmVsIHN0eWxlPVwiZmxvYXQ6IGxlZnQ7bWFyZ2luLXRvcDogMThweDtmb250LXNpemU6IDIycHg7XCI+54K55Ye75oyJ6ZKu562b6YCJ5bel5Y2V54q25oCBOjwvbGFiZWw+XHJcblx0XHRcdFx0XHRcdDxzdXBlcndlaS1jb21ib3ggOmNhbmRpZGF0ZXM9XCJlbmdpbmVlcmluZ05vTWFwTGlzdFwiIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCIgdi1tb2RlbD1cImVuZ2luZWVyaW5nTm9cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAc2VsZWN0PVwib25FbmdpbmVlcmluZ05vQ2hhbmdlXCIgY2xhc3M9XCJwaWNrZXJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBzdHlsZT1cInBhZGRpbmc6IDdweCA0NnB4O3dpZHRoOiA2NTBweDtcIj48L3N1cGVyd2VpLWNvbWJveD5cclxuXHRcdFx0XHRcdFx0PHNwYW4gc3R5bGU9XCJtYXJnaW4tbGVmdDogMjBweDsgY29sb3I6ICNmZjY2MDA7IGZvbnQtc2l6ZTogMThweDtcIj7lpJrpgInml7blj6rkv53nlZnmnIDlkI7kuIDmnaHlt6XljZU8L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0NTBweDsgb3ZlcmZsb3c6IGF1dG87XCI+IDwhLS0g6LCD5pW06auY5bqm5Li6MzgwcHjvvIzkuLrlupXpg6jmjInpkq7nlZnlh7rmm7TlpJrnqbrpl7QgLS0+XHJcblx0XHRcdFx0XHQ8dGFibGU+XHJcblxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNlY3Rpb24gY2FyZFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx1bmktdGFibGUgcmVmPVwidGFibGVcIiB0eXBlPVwic2VsZWN0aW9uXCIgYm9yZGVyIHN0cmlwZSBlbXB0eVRleHQ9XCLmmoLml6Dmm7TlpJrmlbDmja5cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgICBjbGFzcz1cImxhcmdlLXNlbGVjdGlvbi10YWJsZVwiIEBzZWxlY3Rpb24tY2hhbmdlPVwic2VsZWN0aW9uQ2hhbmdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPuW3peW6jzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPuW3peWNleWPtzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuS6p+WTgee8lueggTwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4O1wiPuS6p+WTgeWQjeensDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPuinhOagvDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuW3sueUn+S6p+aVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuacqueUn+S6p+aVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPua0vuW3peaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuW3peWNleaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+5bel5Y2V54q25oCBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7miqXlt6Xkuro8L3VuaS10aD5cclxuPCEtLSBcdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEyNnB4O1wiPumAieaLqTwvdW5pLXRoPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ciB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gdGFibGVEYXRhXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6a2V5PVwiaW5kZXhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsncm93LXNlbGVjdGVkJzogc2VsZWN0ZWRJbmRleHMuaW5jbHVkZXMoaW5kZXgpfVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0QGNsaWNrPVwib25Sb3dDbGljayhpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0ucHJvY05hbWVcIiAvPjwhLS3lt6Xluo8tLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAxIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMiB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDMgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDA0IH19PC9kaXY+PCEtLeinhOagvC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxMVwiIC8+PCEtLeW3sueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihpdGVtLmRhYTAwOCB8fCAwKSAtIChpdGVtLmRhYTAxMSB8fCAwKVwiIC8+PCEtLeacqueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLea0vuW3peaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLeW3peWNleaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxOFwiIC8+PCEtLeW3peWNleeKtuaAgS0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLnN0YWZmTmFtZVwiIC8+PCEtLeaKpeW3peS6ui0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZD5cclxuPCEtLSBcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWdyb3VwXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIHR5cGU9XCJkZWZhdWx0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx06L2s5Yiw5Li755WM6Z2iXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdDwvdW5pLXRhYmxlPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC90YWJsZT5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cInNhdmUtYnRuXCIgQGNsaWNrPVwic2F2ZVwiPuS/neWtmOmAieaLqTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBAY2xpY2s9XCJpc1Nob3cgPSAhaXNTaG93XCI+5Y+W5raIPC9idXR0b24+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFdvcmtPcmRlclN0YXR1cyBmcm9tICcuLi9jb21wb25lbnRzL1dvcmtPcmRlclN0YXR1cy52dWUnOyAvLyDnoa7kv53ot6/lvoTmraPnoa5cclxuaW1wb3J0IFVuaVRhYmxlIGZyb20gXCIuLi91bmlfbW9kdWxlcy91bmktdGFibGUvY29tcG9uZW50cy91bmktdGFibGUvdW5pLXRhYmxlLnZ1ZVwiO1xyXG5pbXBvcnQgTW9sZCBmcm9tIFwiLi4vY29tcG9uZW50cy9tb2xkLnZ1ZVwiO1xyXG5pbXBvcnQgTWFjaGluZSBmcm9tIFwiLi4vY29tcG9uZW50cy9tYWNoaW5lLnZ1ZVwiO1xyXG5pbXBvcnQgV29ya09yZGVyUHJpbnQgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyUHJpbnQudnVlXCI7XHJcbmltcG9ydCBXb3JrT3JkZXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyLnZ1ZVwiO1xyXG5pbXBvcnQgVGVjaG5vbG9neSBmcm9tIFwiLi4vY29tcG9uZW50cy9UZWNobm9sb2d5LnZ1ZVwiO1xyXG5pbXBvcnQgUERGU2hvdyBmcm9tIFwiLi4vY29tcG9uZW50cy9QREZTaG93LnZ1ZVwiO1xyXG5pbXBvcnQgUHJpbnRJbml0IGZyb20gXCIuLi9jb21wb25lbnRzL1ByaW50SW5pdC52dWVcIjtcclxuaW1wb3J0IFByaW50VGVzdCBmcm9tIFwiLi4vY29tcG9uZW50cy9QcmludFRlc3QudnVlXCI7XHJcbmltcG9ydCBFcXVpcG1lbnRJbnNwZWN0aW9uIGZyb20gXCIuLi9jb21wb25lbnRzL0VxdWlwbWVudEluc3BlY3Rpb24udnVlXCI7XHJcbmltcG9ydCBNb2xkUmVjb3JkIGZyb20gXCIuLi9wYWdlcy9tb2xkUmVjb3JkLnZ1ZVwiO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRlY2hub2xvZ3ksXHJcblx0XHRcdFdvcmtPcmRlcixcclxuXHRcdFx0V29ya09yZGVyUHJpbnQsXHJcblx0XHRcdE1hY2hpbmUsXHJcblx0XHRcdE1vbGQsXHJcblx0XHRcdFVuaVRhYmxlLFxyXG5cdFx0XHRXb3JrT3JkZXJTdGF0dXMsXHJcblx0XHRcdFBERlNob3csXHJcblx0XHRcdFByaW50SW5pdCxcclxuXHRcdFx0UHJpbnRUZXN0LFxyXG5cdFx0XHRFcXVpcG1lbnRJbnNwZWN0aW9uLFxyXG5cdFx0XHRNb2xkUmVjb3JkXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiAnJywgLy8g6buY6K6k5YWo6YOoXHJcblx0XHRcdFx0Y3VycmVudFRhYjogNyxcclxuXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q29kZTogJycsIC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFNwZWM6ICcnLCAvLyDkuqflk4Hop4TmoLxcclxuXHJcblx0XHRcdFx0bWFjaGluZUxpc3Q6IFtdLFxyXG5cclxuXHRcdFx0XHRtYWNoaW5lOiBbXSxcclxuXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdOb0xpc3Q6IFtdLFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9NYXBMaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vOiAnJyxcclxuXHJcblx0XHRcdFx0bWFjaGluZU5vOiAnJyxcclxuXHRcdFx0XHRtYWNoaW5lTmFtZTogJycsXHJcblxyXG5cdFx0XHRcdHRhYmxlRGF0YTogW10sXHJcblx0XHRcdFx0aXNTaG93VGFibGVEYXRhOiBbXSxcclxuXHJcblx0XHRcdFx0b3JkZXJTdGF0dXM6ICflvIDlt6UnLFxyXG5cdFx0XHRcdHNlbGVjdGVkT3JkZXI6ICcnLFxyXG5cdFx0XHRcdG9yZGVySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHNlbGVjdGVkSW5kZXhzOiBbXSxcclxuXHJcblx0XHRcdFx0aXNTaG93OiBmYWxzZSxcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyDoh6rliqjot7Povaznm7jlhbNcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lcjogbnVsbCxcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lOiA1ICogNjAgKiAxMDAwLCAvLyA15YiG6ZKfXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHJcblx0XHRcdC8v6LCD6K+V5L2/55So55qE5Luj56CBXHJcblx0XHRcdC8vIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKTtcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnKTtcclxuXHRcdFx0Ly9cclxuXHRcdFx0Ly8gaWYgKHRoaXMubWFjaGluZU5vKSB7XHJcblx0XHRcdC8vICAgdGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY2hlY2tGb3JVcGRhdGUoKTtcclxuXHRcdFx0XHJcblx0XHRcdC8v5bel5o6n5py65L2/55So55qE5Luj56CBXHJcblx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIG9uUm93Q2xpY2soaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbaW5kZXhdOyAvLyDljZXpgIlcclxuICAgICAgICAgICAgICAgIC8vIOaJi+WKqOinpuWPkSBzZWxlY3Rpb25DaGFuZ2Ug5Lul5ZCM5q2l5aSN6YCJ5qGGXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZSh7IGRldGFpbDogeyBpbmRleCB9IH0pO1xyXG4gICAgICAgICAgICAgICAgLy8g6YeN572u6Ieq5Yqo6Lez6L2s6K6h5pe25ZmoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOmHjee9ruiHquWKqOi3s+i9rOiuoeaXtuWZqFxyXG4gICAgICAgICAgICByZXNldEF1dG9SZWRpcmVjdFRpbWVyKCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5riF6Zmk546w5pyJ55qE5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVkaXJlY3RUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9SZWRpcmVjdFRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6Zmk5LqG5Li76aG1KDAp44CB5bel5Y2V6YCJ5oup6aG1KDcp44CB55Sf5Lqn5oql5bel6aG1KDQp5LmL5aSW55qE6aG16Z2i5omN6K6+572u6Ieq5Yqo6Lez6L2sXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiICE9PSAwICYmIHRoaXMuY3VycmVudFRhYiAhPT0gNyAmJiB0aGlzLmN1cnJlbnRUYWIgIT09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOi3s+i9rOWbnuS4u+mhtVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmmL7npLrmj5DnpLrkv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mhtemdoui2heaXtu+8jOiHquWKqOi/lOWbnuS4u+mhtScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmF1dG9SZWRpcmVjdFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRjaGVja0ZvclVwZGF0ZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9nZXRBcHBVcGdyYWRlSW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YToge31cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGxldCBuZXdWZXJzaW9uID0gcmVzLmRhdGEudmVyc2lvbjtcclxuXHRcdFx0XHRcdGxldCBjdXJyZW50VmVyc2lvbiA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpOyAvLyDojrflj5blvZPliY0gQVBLIOeJiOacrOWPt1xyXG5cdFx0XHRcdFx0IFxyXG5cdFx0XHRcdFx0aWYgKG5ld1ZlcnNpb24gPiBjdXJyZW50VmVyc2lvbi5hcHBWZXJzaW9uKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBcIuWPkeeOsOaWsOeJiOacrFwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwi5piv5ZCm5LiL6L295pyA5paw54mI5pysP1wiLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChtb2RhbFJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsUmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vdGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNoZWNrZWQgPSB0cnVlOyAvLyDmoIforrDmm7TmlrDlt7Lmo4Dmn6Xov4dcclxuXHRcdFx0XHRcdFx0Ly8gICAgICAvLyDlpoLmnpzmnInmlrDniYjmnKzvvIzlvIDlp4vkuIvovb1cclxuXHRcdFx0XHRcdFx0Ly9kb3dubG9hZChyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRkb3dubG9hZE5ld0FwayhhcGtVcmwpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIuW8gOWni+S4i+i9veabtOaWsC4uLlwiLFxyXG5cdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR1bmkuZG93bmxvYWRGaWxlKHtcclxuXHRcdFx0XHRcdHVybDogYXBrVXJsLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5pbnN0YWxsKHJlcy50ZW1wRmlsZVBhdGgsIHtcclxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSwgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWuieijheaIkOWKn++8jOmHjeWQr+W6lOeUqFwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnF1aXQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdFx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCLlronoo4XlpLHotKU6XCIsIGUpO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwi5LiL6L295aSx6LSlOlwiLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLkuIvovb3lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5xcIixcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdHJlZnJlc2goKSB7XHJcblx0XHRcdFx0dGhpcy5nZXRNYWNoaW5lTGlzdCgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0UHJpbnRJbmZvKCkge1xyXG5cdFx0XHRcdHZhciBtYWMgPSBcIlwiO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hYyA9IFwiNzQ6MjQ6Y2E6NGY6YjI6YzNcIjtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hY2hpbmVOYW1lID0gXCLosIPor5XmqKHlvI/vvJpcIiArIHRoaXMubWFjaGluZU5vICsgXCLlj7fpvb/ova7mnLpcIlxyXG5cclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdC8vICBcdFx0XHRpZiAocGx1cy5vcy5uYW1lID09IFwiQW5kcm9pZFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0Ly/ojrflj5bmiYvmnLpNQUPlnLDlnYBcclxuXHQvLyAgXHRcdFx0XHR2YXIgQ29udGV4dCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuY29udGVudC5Db250ZXh0XCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciBXaWZpTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmV0LndpZmkuV2lmaU1hbmFnZXJcIik7XHJcblx0Ly8gIFx0XHRcdFx0dmFyIHdpZmlNYW5hZ2VyID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKS5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuV0lGSV9TRVJWSUNFKTtcclxuXHQvLyAgXHRcdFx0XHR2YXIgV2lmaUluZm8gPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm5ldC53aWZpLldpZmlJbmZvXCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciB3aWZpSW5mbyA9IHdpZmlNYW5hZ2VyLmdldENvbm5lY3Rpb25JbmZvKCk7XHJcblx0Ly8gIFx0XHRcdFx0bWFjID0gd2lmaUluZm8uZ2V0TWFjQWRkcmVzcygpO1xyXG5cdFx0XHRcdFx0XHJcblx0Ly8gIFx0XHRcdFx0Ly/lpoLmnpxtYWPkuLrigJwwMjowMDowMDowMDowMDowMOKAne+8jOWImeWPr+iDveaYr+WuieWNkzYuMOS7peS4iueJiOacrO+8jOWImeS9v+eUqOWPpuS4gOenjeaWueazleiOt+WPlm1hY+WcsOWdgFxyXG5cdC8vICBcdFx0XHRcdGlmIChtYWMgPT0gXCIwMjowMDowMDowMDowMDowMFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0XHRtYWMgPSB0aGlzLmdldE1hY05ldygpO1xyXG5cdC8vICBcdFx0XHRcdH1cclxuXHQvLyAgXHRcdFx0XHQvL+WmguaenG1hY+S9v+eUqOaWsOaWueazleS+neeEtuaYr+KAnDAyOjAwOjAwOjAwOjAwOjAw4oCd5YiZ5LiN6L+b6KGM5L+d5a2YXHJcblx0Ly8gIFx0XHRcdFx0aWYgKG1hYyA9PSBcIjAyOjAwOjAwOjAwOjAwOjAwXCIpIHtcclxuXHQvLyAgXHRcdFx0XHRcdHJldHVybjtcclxuXHQvLyAgXHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwZGFNYWMnLCBtYWMpO1xyXG5cclxuXHQvLyAgXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHQvLyAgXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHQvLyAgXHRcdFx0XHRcdGRhdGE6IHtcclxuXHQvLyAgXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0Ly8gIFx0XHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdC8vICBcdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuXHQvLyAgXHRcdFx0XHRcdHRoaXMubWFjaGluZU5hbWUgPSBcIuW9k+WJjeacuuWPsO+8mlwiICsgdGhpcy5tYWNoaW5lTm8gKyBcIuWPt+m9v+i9ruaculwiO1xyXG5cclxuXHQvLyAgXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdC8vICBcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG4gXHJcblxyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHJcblx0Ly8gIFx0XHRcdFx0fSk7XHJcblx0Ly8gIFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZSgpIHtcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG5cclxuXHRcdFx0XHRpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShcIuivt+mAieaLqeS4gOS4quW3peWNlVwiKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5LiA5qyh5Y+q6IO96YCJ5Y+W5LiA5Liq5bel5Y2VXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9sZXQgZmlyc3RWYWx1ZSA9IGRhdGFbMF1bXCJtb2xkSWRcIl07IC8vIOiOt+WPluesrOS4gOS4quWvueixoeeahOaMh+WumuWxnuaAp+WAvFxyXG5cclxuXHRcdFx0XHQvLy8vIOS9v+eUqCBldmVyeSDmlrnms5Xmo4Dmn6XmiYDmnInlr7nosaHnmoTor6XlsZ7mgKflgLzmmK/lkKbkuIDoh7RcclxuXHRcdFx0XHQvL2xldCBmbGFnID0gZGF0YS5ldmVyeShpdGVtID0+IGl0ZW1bXCJtb2xkSWRcIl0gPT09IGZpcnN0VmFsdWUpO1xyXG5cdFx0XHRcdC8vaWYgKCFmbGFnKSB7XHJcblx0XHRcdFx0Ly9cdHRoaXMuJHNob3dNZXNzYWdlKFwi6YCJ5Y+W55qEXCIgKyBkYXRhLmxlbmd0aCArIFwi5Liq5bel5Y2V5Lit55qE5qih5YW357yW5Y+35LiN5LiA6Ie0XCIpO1xyXG5cdFx0XHRcdC8vXHRyZXR1cm47XHJcblx0XHRcdFx0Ly99XHJcblxyXG5cdFx0XHRcdGxldCBvcmRlclNlbGVjdCA9IFtdO1xyXG5cclxuXHRcdFx0XHRkYXRhLmZvckVhY2gocyA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZW50aXR5ID0ge1xyXG5cdFx0XHRcdFx0XHRvcmRlcklkOiBzLmlkLFxyXG5cdFx0XHRcdFx0XHRvcmRlck5vOiBzLmRhYTAwMSxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdG9yZGVyU2VsZWN0LnB1c2goZW50aXR5KTtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0bGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvTWVzT3JkZXJTZWxlY3QvQWRkXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcblx0XHRcdFx0XHRcdGVkaXREYXRlOiBlZGl0RGF0ZSxcclxuXHRcdFx0XHRcdFx0aXRlbTogb3JkZXJTZWxlY3RcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGEudGJCaWxsTGlzdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5bel5Y2V5oiQ5YqfJyxcclxuXHRcdFx0XHRcdFx0XHQvL3RpdGxlOiAn5bCG5rOo5aGR5py65byA5ZCI5qih5pWw5riFMCcsXHJcblx0XHRcdFx0XHRcdFx0Ly/lsIblgLzorr7nva7kuLogc3VjY2VzcyDmiJbogIXnm7TmjqXkuI3nlKjlhplpY29u6L+Z5Liq5Y+C5pWwXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdC8v5pi+56S65oyB57ut5pe26Ze05Li6IDXnp5JcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogNTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY05ldygpIHtcclxuXHRcdFx0XHR2YXIgc3RyID0gXCJcIjtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYgKHBsdXMub3MubmFtZSA9PSBcIkFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHR2YXIgTmV0d29ya0ludGVyZmFjZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0Lk5ldHdvcmtJbnRlcmZhY2VcIik7XHJcblx0XHRcdFx0XHRcdHZhciBuZXR3b3JrSW50ZXJmYWNlID0gTmV0d29ya0ludGVyZmFjZS5nZXRCeU5hbWUoXCJ3bGFuMFwiKTtcclxuXHRcdFx0XHRcdFx0dmFyIGJ5dGVzID0gbmV0d29ya0ludGVyZmFjZS5nZXRIYXJkd2FyZUFkZHJlc3MoKTtcclxuXHRcdFx0XHJcblx0XHRcdFx0XHRcdC8v5bCGYnl0ZVtdIOi9rOaNouaIkCBTdHJpbmdcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdHZhciB0bXAgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdHZhciBudW0gPSBieXRlc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobnVtIDwgMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gKDI1NSArIG51bSArIDEpLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRtcC5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gXCIwXCIgKyB0bXA7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHN0ciArPSAoaSA9PSAwKSA/ICh0bXApIDogKFwiOlwiICsgdG1wKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdFx0c3RyID0gXCIwMjowMDowMDowMDowMDowMFwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0XHR9LFxyXG5cclxuICAgICAgICAgICAgY2FuY2VsKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDnm7TmjqXnlKggZmxhZyDliKTmlq1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0JpbmRlZEN1dHRlckZsYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflvZPliY3lt6XljZXlt7Lnu5HlrprliIDlhbfvvIzkuI3og73muIXnqbrph43pgIknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNPcmRlclNlbGVjdC9SZW1vdmVcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXREYXRlOiBlZGl0RGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnRiQmlsbExpc3QgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93VGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG5cdFx0XHRmb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdFx0XHRsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8g6I635Y+W5bm05Lu9XHJcblx0XHRcdFx0bGV0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaciOS7veW5tuihpembtlxyXG5cdFx0XHRcdGxldCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaXpeacn+W5tuihpembtlxyXG5cdFx0XHRcdHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gOyAvLyDov5Tlm57moLzlvI/ljJblkI7nmoTlrZfnrKbkuLJcclxuXHRcdFx0fSxcclxuXHRcdFx0c2VsZWN0aW9uQ2hhbmdlKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWNlemAieebtOaOpei1i+WAvFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtlLmRldGFpbC5pbmRleF07XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RlZEl0ZW1zKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXhzLm1hcChpID0+IHRoaXMudGFibGVEYXRhW2ldKVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGNoYW5nZVRhYihpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IGluZGV4O1xyXG5cdFx0XHRcdC8vIOW9k+WIh+aNouWIsOW3peWNlemAieaLqemhtemdoihpbmRleCA9PT0gNynml7boh6rliqjliLfmlrBcclxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDph43nva7oh6rliqjot7PovazorqHml7blmahcclxuXHRcdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpbmRleCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWFjaGluZUNoYW5nZShldmVudCkge1xyXG5cclxuXHRcdFx0XHR0aGlzLm1hY2hpbmVOYW1lID0gZXZlbnQ7XHJcblxyXG5cdFx0XHRcdHRoaXMubWFjaGluZU5vID0gdGhpcy5tYWNoaW5lW3RoaXMubWFjaGluZUxpc3QuaW5kZXhPZihldmVudCldLm1hY2hpbmVObztcclxuXHJcblx0XHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTmFtZScsIHRoaXMubWFjaGluZU5hbWUpO1xyXG5cclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkVuZ2luZWVyaW5nTm9DaGFuZ2UoZXZlbnQpIHtcclxuXHJcblx0XHRcdFx0bGV0IG9yZGUgPSB0aGlzLmVuZ2luZWVyaW5nTm9MaXN0W3RoaXMuZW5naW5lZXJpbmdOb01hcExpc3QuaW5kZXhPZihldmVudCldO1xyXG5cclxuXHRcdFx0XHR0aGlzLmVuZ2luZWVyaW5nTm8gPSBvcmRlLm1vbGRJZDtcclxuXHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWEoKTtcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY2hpbmVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9NZXNNYWNoaW5lL0dldEluamVjdGlvbk1hY2hpbmVcIixcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTGlzdCA9IHRoaXMubWFjaGluZS5tYXAocyA9PiBzLm1hY2hpbmVOYW1lKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4gICAgICAgICAgICAvL+iOt+WPluihqOagvOeahOaVsOaNrua6kFxyXG4gICAgICAgICAgICBnZXRXb21kYWFJc1Nob3coKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2hvd1RhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWPquWIpOaWreesrOS4gOadoe+8iOWPquWFgeiuuOS4gOadoeW3peWNle+8iVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pc1Nob3dUYWJsZURhdGFbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0JpbmRlZEN1dHRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kZWRDdXR0ZXIgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xJZCAmJiBvcmRlci5vdXRUb29sSWQudG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xDb2RlICYmIG9yZGVyLm91dFRvb2xDb2RlLnRyaW0oKSAhPT0gJycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbE5hbWUgJiYgb3JkZXIub3V0VG9vbE5hbWUudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWtmOWCqOWIsCBkYXRhIOWPmOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQmluZGVkQ3V0dGVyRmxhZyA9IGhhc0JpbmRlZEN1dHRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93VGFibGVEYXRhLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnZGFhMDAxJywgdGhpcy5pc1Nob3dUYWJsZURhdGFbMF0uZGFhMDAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdpZCcsIHRoaXMuaXNTaG93VGFibGVEYXRhWzBdLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGlzU2hvd1RhYigpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd1RhYmxlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5bey5pyJ5q2j5Zyo5pON5L2c55qE5bel5Y2V77yM5LiN6IO95YaN5qyh6YCJ5oupJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8g6buY6K6k6YCJ5Lit4oCc5b6F5byA5bel4oCdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm8gPSAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJztcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyDkuIvmi4nmoYblj6rmmL7npLrlkIjlubblkI7nmoTnirbmgIHlkozlhbblroPnirbmgIFcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdOb01hcExpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W8gOW3pScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+WujOW3pSdcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAvLyDpu5jorqTmmL7npLrigJzlvoXlvIDlt6XigJ3lt6XljZVcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5LiL5ouJ5qGG6YCJ5Lit5ZCO77yM5oyJ54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIG9uRW5naW5lZXJpbmdOb0NoYW5nZShzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdObyA9IHN0YXR1cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0Z2V0V29tZGFhKCkge1xyXG5cclxuXHRcdFx0XHRsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5TWFjaGluZVwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG5cdFx0XHRcdFx0XHRlZGl0RGF0ZTogZWRpdERhdGVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgLy8g5oyJ5bel5Y2V54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIGdldFdvbWRhYUJ5U3RhdHVzKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXR1c0FyciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZW5naW5lZXJpbmdObyA9PT0gJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNBcnIgPSBbJ+W+heW8gOW3pScsICfmnKrlvIDlt6UnLCAn5pqC5YGcJ107XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0FyciA9IFt0aGlzLmVuZ2luZWVyaW5nTm9dO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5RW5naW5lZXJpbmdOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJTdGF0dXM6IHN0YXR1c0FycixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERhdGU6IGVkaXREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHR0b0RldGFpbChpdGVtKSB7XHJcblx0XHRcdFx0dGhpcy5vcmRlcklkID0gaXRlbS5pZDtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkT3JkZXIgPSBpdGVtLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdENvZGUgPSBpdGVtLmRhYTAwMjsgLy8g5Lqn5ZOB57yW56CBXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTcGVjID0gaXRlbS5kYWEwMDQ7IC8vIOS6p+WTgeinhOagvFxyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IDA7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge31cclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG5cclxuICAgIDpkZWVwKC5jaGVja2JveCksXHJcbiAgICA6ZGVlcCguY2hlY2tib3hfX2lubmVyKSB7XHJcbiAgICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4td2lkdGg6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4taGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRhYmxlLWxheW91dDogYXV0byAhaW1wb3J0YW50OyAvLyDorqnooajmoLzoh6rliqjliIbphY3lrr3luqZcclxuICAgIH1cclxuXHJcbiAgICAucm93LXNlbGVjdGVkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmM2ZmICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cdC5mb250IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0fVxyXG5cclxuXHJcblx0Lyog5LiK6YOo5Yy65Z+f5qC35byP77yM5bemNzAlIOWPszMwJSAqL1xyXG5cdC50b3Atc2VjdGlvbiB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0cGFkZGluZzogMjBweCAxMHB4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG5cdFx0Lyog5aKe5Yqg5LiK5LiL55qEcGFkZGluZyAqL1xyXG5cdH1cclxuXHJcblx0LnJpZ2h0LXNpZGUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcclxuXHRcdHBhZGRpbmc6IDE2cHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XHJcblx0XHR3aWR0aDogMjUlO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdH1cclxuXHJcblx0LmZvcm0tcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxLjJ2aDtcclxuXHR9XHJcblxyXG5cdC5mb3JtLWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDMwJTtcclxuXHR9XHJcblxyXG5cdC5pbnAge1xyXG5cdFx0d2lkdGg6IDkwJTtcclxuXHRcdHBhZGRpbmc6IDRweDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0XHRtYXJnaW4tdG9wOiA0cHg7XHJcblx0fVxyXG5cclxuXHQuc3RhdHVzLWJsb2NrIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtYmxvY2sgcCB7XHJcblx0XHRtYXJnaW46IDhweCAwO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQubGVmdC1zaWRlIHtcclxuXHRcdHdpZHRoOiA2NSU7XHJcblx0fVxyXG5cclxuXHQudGFibGUtcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRwYWRkaW5nOiA4cHg7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQudGFibGUtY2VsbCB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0Lyog5Y2h54mH5qC35byPICovXHJcbiAgICAuY2FyZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICAgICAgcGFkZGluZzogMDsgLy8g5Y676Zmk5aSa5L2Z5YaF6L656LedXHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7IC8vIOWhq+a7oeeItuWuueWZqFxyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4vKiAgICAvLy5jb250ZW50IHtcclxuICAgIC8vICAgIGZsZXg6IDE7XHJcbiAgICAvLyAgICBwYWRkaW5nOiAxdmggMXZ3OyAvLyDkv53or4HmlbTkvZPmnInlt6blj7PnlZnnmb1cclxuICAgIC8vICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgLy8gICAgZm9udC1zaXplOiAxLjV2dztcclxuICAgIC8vfSovXHJcblxyXG5cdC8qIOWNoeeJh+agh+mimOWcqOW3puS4iuinkiAqL1xyXG5cdC5jYXJkLWhlYWRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IC0xMHB4O1xyXG5cdFx0bGVmdDogMTZweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcblx0XHRwYWRkaW5nOiAycHggOHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQvKiDkuK3pg6jljLrln5/vvIzmr4/ooYwz5Liq5a2X5q61ICovXHJcblx0LnN0YXR1cy1yb3csXHJcblx0LmNoZWNrLXJvdyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtcm93IGxhYmVsLFxyXG5cdC5jaGVjay1yb3cgbGFiZWwge1xyXG5cdFx0d2lkdGg6IDMwJTtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtcm93IGlucHV0LFxyXG5cdC5jaGVjay1yb3cgaW5wdXQge1xyXG5cdFx0d2lkdGg6IDY1JTtcclxuXHR9XHJcblxyXG5cdC8v5Z+656GA5qC35byPXHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHR9XHJcblxyXG5cdC50YWItYmFyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcblx0XHRwYWRkaW5nOiAxdmg7XHJcblx0XHRwYWRkaW5nLXRvcDogMzBweDtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHJcblx0LnRvcC1yaWdodCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDEwcHg7XHJcblx0XHRyaWdodDogNTBweDtcclxuXHRcdHotaW5kZXg6IDEwMDA7XHJcblx0fVxyXG5cclxuXHQucmVmcmVzaC1idG4ge1xyXG5cdFx0cGFkZGluZzogMTBweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHQudGFiLWl0ZW0ge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1yaWdodDogMC41dnc7XHJcblx0XHRwYWRkaW5nOiAxdmg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwLjV2dztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XHJcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGNvbG9yIDAuM3M7XHJcblx0XHRib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdH1cclxuXHJcblx0LnRhYi1pdGVtLmFjdGl2ZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YWZmO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmb250LXdlaWdodDogNjAwO1xyXG5cdFx0Ym94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMTIyLCAyNTUsIDAuMyk7XHJcblx0fVxyXG5cclxuXHQuY29udGVudCB7XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0cGFkZGluZzogMXZoIDF2dztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdH1cclxuXHJcbiAgICAucGlja2VyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50OyAvLyDlvLrliLblpKflrZfkvZPvvIzpgILphY3kvY7lr4bluqZcclxuICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OyAvLyDorqnpgInmi6nmoYbpq5jluqbkuZ/lj5jlpKdcclxuICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcclxuICAgICAgICBwYWRkaW5nOiA1LjVweCAxcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgLy8g6L+Z6YeM5pS55Li66JOd6ImyXHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjsgLy8g6L655qGG5Lmf5pS55Li66JOd6ImyXHJcbiAgICAgICAgY29sb3I6ICMwMDdhZmY7IC8vIOWtl+S9k+minOiJsuaUueS4uueZveiJsu+8jOS/neivgeWPr+ivu+aAp1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XHJcbiAgICB9XHJcblxyXG4gICAgLnRoIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgaGVpZ2h0OiA2dmg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NTtcclxuICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyog5Li76KGo5qC86L655qGG5qC35byPICovXHJcbiAgICB1bmktdGFibGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkMDAgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnVuaS10aCwgLnVuaS10ZCB7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHotaW5kZXg6IDEgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1pbnB1dCB7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDE4MHB4O1xyXG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIOiuvue9ruiDjOaZr+S4uumAj+aYjiAqL1xyXG4gICAgfVxyXG5cclxuXHQvKiDlupXpg6jkv53lrZjlkozlj5bmtojmjInpkq4gKi9cclxuICAgIC5ib3R0b20tc2VjdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAydmg7XHJcbiAgICAgICAgcGFkZGluZzogMnZoIDF2dztcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OyAvLyDlh4/lsI/pobbpg6jovrnot53vvIznoa7kv53mjInpkq7lnKjlvLnnqpflhoXmraPnoa7mmL7npLpcclxuICAgIH1cclxuXHJcblx0LnNhdmUtYnRuLFxyXG5cdC5jYW5jZWwtYnRuIHtcclxuXHRcdHdpZHRoOiA0OCU7XHJcblx0XHRwYWRkaW5nOiAxLjV2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMGEyZTk7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0Ym94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG5cdH1cclxuXHRcclxuXHQuY2FuY2VsLWJ0biB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdH1cclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDIwMDA7IC8vIOWinuWKoHotaW5kZXjvvIznoa7kv53lvLnnqpflnKjliLfmlrDmjInpkq7kuYvkuIpcclxuICAgIH1cclxuXHJcbiAgICAucG9wdXAge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMnZoIDJ2aCA4dmggMnZoOyAvLyDlop7liqDlupXpg6jlhoXovrnot53vvIzkuLrmjInpkq7nlZnlh7rnqbrpl7RcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgICAgICB3aWR0aDogOTAuMTZ2dzsgLy8g5Y6f5p2l55qEOTh2d+e8qeWwjzglICg5OHZ3ICogMC45MilcclxuICAgICAgICBoZWlnaHQ6IDY4dmg7IC8vIOWOn+adpeeahDg1dmjnvKnlsI8yMCUgKDg1dmggKiAwLjgpXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZ2dztcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyDnoa7kv53lhoXovrnot53kuI3lvbHlk43mgLvlsLrlr7hcclxuICAgIH1cclxuXHJcblx0LnByaW50LWJ0biB7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdG1hcmdpbi10b3A6IDRweDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwQTJFOTtcclxuXHRcdHBhZGRpbmc6IDBweCA5MHB4O1xyXG5cdFx0Ym9yZGVyOiAycHggc29saWQgIzAwQTJFOTtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDAuOHZ3O1xyXG5cdH1cclxuXHJcbiAgICAubWFjaGluZS1uYW1lLWJveCB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjsgLyog6JOd6Imy6L655qGGICovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzNweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjhweDsgLyog5LiK5LiLMjBweO+8jOW3puWPszQ4cHjvvIzlop7liqDlhoXovrnot50gKi9cclxuICAgICAgICB3aWR0aDogMzAwcHg7IC8qIOabtOWuve+8jOS/neivgeWGheWuueWujOaVtOaYvuekuiAqL1xyXG4gICAgICAgIGhlaWdodDogNzBweDsgLyog5aKe5Yqg6auY5bqmICovXHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGNvbG9yOiAjMjIyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4vKiAgICAvL3YtZGVlcCAuY2hlY2tib3gge1xyXG4gICAgLy8gICAgcGFkZGluZzogMTAgMTBweDtcclxuICAgIC8vICAgIHdpZHRoOiAyNnB4O1xyXG4gICAgLy8gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xyXG4gICAgLy8gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIC8vICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvLyAgICBjb2xvcjogIzMzMztcclxuICAgIC8vICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAvLyAgICBib3JkZXItYm90dG9tOiAxcHggI2ViZWVmNSBzb2xpZDtcclxuICAgIC8vICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIC8vfSovXHJcblxyXG4gICAgLnBvcHVwIC5jYXJkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IC8vIOWOn+adpTI1MHB477yM5pS55Li6NDBweO+8jOepuueZveaYjuaYvuWHj+WwkVxyXG4gICAgfVxyXG5cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHtcclxuXHRcdC50YWItaXRlbSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdH1cclxuXHJcblx0XHQuY29udGVudCB7XHJcblx0XHRcdHBhZGRpbmc6IDF2dztcclxuXHRcdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5mb3JtLWlucHV0IHtcclxuXHRcdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgICAudW5pLXRkLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgLy8g5YWB6K646Ieq5Yqo5o2i6KGMXHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsICFpbXBvcnRhbnQ7IC8vIOWNleivjS/kuK3mlofpg73og73mlq3ooYxcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40OyAvLyDooYzpq5jpgILlvZPvvIzkvr/kuo7lpJrooYzmmL7npLpcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIOWxheS4reaYvuekuu+8iOWmgumcgOW3puWvuem9kOWPr+aUueS4uiBsZWZ077yJXHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8g5Z6C55u05bGF5LitXHJcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDsgLy8g5L+d5oyB5Y2V5YWD5qC85pyA5aSn5a695bqmXHJcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLy8g5YW85a655oCn5pu05aW9XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIOiuvue9ruiDjOaZr+S4uumAj+aYjiAqL1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOW8ueeql+WGheihqOagvOagt+W8j+S4jueUn+S6p+aKpeW3pemhtemdouWOhuWPsuaKpeW3peiusOW9leihqOagvOS4gOiHtFxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnVuaS10aCxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIC51bmktdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyog6K6+572u6IOM5pmv5Li66YCP5piOICovXHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAucG9wdXAgLmxhcmdlLXNlbGVjdGlvbi10YWJsZSAudW5pLXRoIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qIOW8ueeql+ihqOagvOWkluahhue6vyAqL1xyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkMDAgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0LWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDE1MHB4OyAvLyDljp/mnaXnmoQ3MCUgKDE4MHB4ICogMC43KVxyXG4gICAgICAgIGhlaWdodDogNzVweDsgLy8g5Y6f5p2l55qENjUlICg4MHB4ICogMC42NSlcclxuICAgICAgICBmb250LXNpemU6IDIycHg7IC8vIOWtl+S9k+S5n+eVpeWkp1xyXG4gICAgICAgIC8vZm9udC13ZWlnaHQ6IDIwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMEEyRTk7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgIH1cclxuXHJcbiAgICAudG9wLXNlY3Rpb24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tcm93LmFsaWduLXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLm1hY2hpbmUtbmFtZS1ib3gge1xyXG4gICAgICAgIGZsZXg6IDEgMSA0NSU7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWdyb3VwIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZmxleDogMSAxIDQ1JTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm9yZGVyLWxhYmVsIHtcclxuICAgICAgICBmb250LWZhbWlseTogZmFudGFzeTtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnByaW50LWJ0biB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAudG9wLXJpZ2h0IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtMzBweDsgLy8g5b6A5LiK56e7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgIH1cclxuXHJcbi8qIOaUvuWkp+ihqOWktOWSjOihqOagvOWGheWuueWtl+S9kyAqL1xyXG4gICAgLnRoLFxyXG4gICAgLnVuaS10aCxcclxuICAgIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnRoLFxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnVuaS10aCxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcblx0Lyog6ZKI5a+5MTI4MHg4MDDnmoTlubPmnb/kvb/nlKjlqpLkvZPmn6Xor6Lov5vooYzpgILphY0gKi9cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHtcclxuXHRcdC5yaWdodC1zaWRlIHtcclxuXHRcdFx0d2lkdGg6IDMwJTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2F2ZS1idG4sXHJcblx0XHQuY2FuY2VsLWJ0biB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHQuaW5wIHtcclxuXHRcdFx0d2lkdGg6IDg1JTtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zdGF0dXMtYmxvY2sgcCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHQudW5pLXRyLFxyXG5cdFx0LnVuaS10ZCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n");
/***/ }),
/* 53 */
@@ -9720,15 +9720,32 @@
},
on: { click: _vm.handleRefresh },
}),
+ _c(
+ "button",
+ {
+ staticClass: _vm._$s(3, "sc", "expand-btn"),
+ attrs: { _i: 3 },
+ on: { click: _vm.toggleExpand },
+ },
+ [
+ _vm._v(
+ _vm._$s(3, "t0-0", _vm._s(_vm.isExpanded ? "鏀惰捣" : "灞曞紑"))
+ ),
+ ]
+ ),
]
),
_c(
"view",
- { staticClass: _vm._$s(3, "sc", "table-section"), attrs: { _i: 3 } },
+ {
+ staticClass: _vm._$s(4, "sc", "table-section"),
+ class: _vm._$s(4, "c", { expanded: _vm.isExpanded }),
+ attrs: { _i: 4 },
+ },
[
_c(
"table",
- { staticClass: _vm._$s(4, "sc", "styled-table"), attrs: { _i: 4 } },
+ { staticClass: _vm._$s(5, "sc", "styled-table"), attrs: { _i: 5 } },
[
_c("thead", [
_c("tr", [
@@ -9736,14 +9753,10 @@
_c("th"),
_c("th"),
_c("th", {
- staticClass: _vm._$s(10, "sc", "num"),
- attrs: { _i: 10 },
+ staticClass: _vm._$s(11, "sc", "num"),
+ attrs: { _i: 11 },
}),
_c("th"),
- _c("th", {
- staticClass: _vm._$s(12, "sc", "num"),
- attrs: { _i: 12 },
- }),
_c("th", {
staticClass: _vm._$s(13, "sc", "num"),
attrs: { _i: 13 },
@@ -9760,6 +9773,10 @@
staticClass: _vm._$s(16, "sc", "num"),
attrs: { _i: 16 },
}),
+ _c("th", {
+ staticClass: _vm._$s(17, "sc", "num"),
+ attrs: { _i: 17 },
+ }),
_c("th"),
_c("th"),
]),
@@ -9768,53 +9785,53 @@
"tbody",
[
_vm._l(
- _vm._$s(20, "f", { forItems: _vm.toolRecords }),
+ _vm._$s(21, "f", { forItems: _vm.visibleRecords }),
function (item, idx, $20, $30) {
return _c(
"tr",
{
- key: _vm._$s(20, "f", {
+ key: _vm._$s(21, "f", {
forIndex: $20,
key: item.id,
}),
- class: _vm._$s("20-" + $30, "c", {
+ class: _vm._$s("21-" + $30, "c", {
"row-odd": idx % 2 === 0,
}),
- attrs: { _i: "20-" + $30 },
+ attrs: { _i: "21-" + $30 },
},
[
_c("td", [
_vm._v(
- _vm._$s("21-" + $30, "t0-0", _vm._s(item.no))
+ _vm._$s("22-" + $30, "t0-0", _vm._s(item.no))
),
]),
_c(
"td",
{
- staticClass: _vm._$s("22-" + $30, "sc", "left"),
- attrs: { _i: "22-" + $30 },
+ staticClass: _vm._$s("23-" + $30, "sc", "left"),
+ attrs: { _i: "23-" + $30 },
},
[
_vm._v(
- _vm._$s("22-" + $30, "t0-0", _vm._s(item.name))
+ _vm._$s("23-" + $30, "t0-0", _vm._s(item.name))
),
]
),
_c("td", [
_vm._v(
- _vm._$s("23-" + $30, "t0-0", _vm._s(item.upTime))
+ _vm._$s("24-" + $30, "t0-0", _vm._s(item.upTime))
),
]),
_c(
"td",
{
- staticClass: _vm._$s("24-" + $30, "sc", "num"),
- attrs: { _i: "24-" + $30 },
+ staticClass: _vm._$s("25-" + $30, "sc", "num"),
+ attrs: { _i: "25-" + $30 },
},
[
_vm._v(
_vm._$s(
- "24-" + $30,
+ "25-" + $30,
"t0-0",
_vm._s(
item.upCount != null ? item.upCount : ""
@@ -9826,7 +9843,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "25-" + $30,
+ "26-" + $30,
"t0-0",
_vm._s(item.downTime)
)
@@ -9835,17 +9852,17 @@
_c(
"td",
{
- staticClass: _vm._$s("26-" + $30, "sc", "num"),
- attrs: { _i: "26-" + $30 },
+ staticClass: _vm._$s("27-" + $30, "sc", "num"),
+ attrs: { _i: "27-" + $30 },
},
[
- _vm._$s("27-" + $30, "i", idx === 0)
+ _vm._$s("28-" + $30, "i", idx === 0)
? [
- _vm._$s("28-" + $30, "i", !item.downTime)
+ _vm._$s("29-" + $30, "i", !item.downTime)
? [
_vm._v(
_vm._$s(
- "28-" + $30,
+ "29-" + $30,
"t0-0",
_vm._s(
item.currentCjNum != null
@@ -9858,7 +9875,7 @@
: [
_vm._v(
_vm._$s(
- "29-" + $30,
+ "30-" + $30,
"t0-0",
_vm._s(
item.downCount != null
@@ -9872,7 +9889,7 @@
: [
_vm._v(
_vm._$s(
- "30-" + $30,
+ "31-" + $30,
"t0-0",
_vm._s(
item.downCount != null
@@ -9888,17 +9905,17 @@
_c(
"td",
{
- staticClass: _vm._$s("31-" + $30, "sc", "num"),
- attrs: { _i: "31-" + $30 },
+ staticClass: _vm._$s("32-" + $30, "sc", "num"),
+ attrs: { _i: "32-" + $30 },
},
[
- _vm._$s("32-" + $30, "i", idx === 0)
+ _vm._$s("33-" + $30, "i", idx === 0)
? [
- _vm._$s("33-" + $30, "i", !item.downTime)
+ _vm._$s("34-" + $30, "i", !item.downTime)
? [
_vm._v(
_vm._$s(
- "33-" + $30,
+ "34-" + $30,
"t0-0",
_vm._s(
item.currentCjNum != null &&
@@ -9915,7 +9932,7 @@
: [
_vm._v(
_vm._$s(
- "34-" + $30,
+ "35-" + $30,
"t0-0",
_vm._s(
item.useCount != null
@@ -9929,7 +9946,7 @@
: [
_vm._v(
_vm._$s(
- "35-" + $30,
+ "36-" + $30,
"t0-0",
_vm._s(
item.useCount != null
@@ -9945,13 +9962,13 @@
_c(
"td",
{
- staticClass: _vm._$s("36-" + $30, "sc", "num"),
- attrs: { _i: "36-" + $30 },
+ staticClass: _vm._$s("37-" + $30, "sc", "num"),
+ attrs: { _i: "37-" + $30 },
},
[
_vm._v(
_vm._$s(
- "36-" + $30,
+ "37-" + $30,
"t0-0",
_vm._s(
item.useLimit != null ? item.useLimit : ""
@@ -9963,17 +9980,17 @@
_c(
"td",
{
- staticClass: _vm._$s("37-" + $30, "sc", "num"),
- attrs: { _i: "37-" + $30 },
+ staticClass: _vm._$s("38-" + $30, "sc", "num"),
+ attrs: { _i: "38-" + $30 },
},
[
- _vm._$s("38-" + $30, "i", idx === 0)
+ _vm._$s("39-" + $30, "i", idx === 0)
? [
- _vm._$s("39-" + $30, "i", !item.downTime)
+ _vm._$s("40-" + $30, "i", !item.downTime)
? [
_vm._v(
_vm._$s(
- "39-" + $30,
+ "40-" + $30,
"t0-0",
_vm._s(
item.currentCjNum != null &&
@@ -9998,7 +10015,7 @@
: [
_vm._v(
_vm._$s(
- "40-" + $30,
+ "41-" + $30,
"t0-0",
_vm._s(
item.lifePercent != null
@@ -10012,7 +10029,7 @@
: [
_vm._v(
_vm._$s(
- "41-" + $30,
+ "42-" + $30,
"t0-0",
_vm._s(item.lifePercent)
)
@@ -10024,13 +10041,13 @@
_c(
"td",
{
- staticClass: _vm._$s("42-" + $30, "sc", "num"),
- attrs: { _i: "42-" + $30 },
+ staticClass: _vm._$s("43-" + $30, "sc", "num"),
+ attrs: { _i: "43-" + $30 },
},
[
_vm._v(
_vm._$s(
- "42-" + $30,
+ "43-" + $30,
"t0-0",
_vm._s(item.lifeWarn)
)
@@ -10041,7 +10058,7 @@
"td",
{
class: _vm._$s(
- "43-" + $30,
+ "44-" + $30,
"c",
item.warnStatus === "棰勮"
? "warn-cell"
@@ -10049,26 +10066,26 @@
? "ok-cell"
: ""
),
- attrs: { _i: "43-" + $30 },
+ attrs: { _i: "44-" + $30 },
},
[
_vm._$s(
- "44-" + $30,
+ "45-" + $30,
"i",
item.warnStatus === "棰勮"
)
? _c("span", {
staticClass: _vm._$s(
- "44-" + $30,
+ "45-" + $30,
"sc",
"warn-badge"
),
- attrs: { _i: "44-" + $30 },
+ attrs: { _i: "45-" + $30 },
})
- : _c("span", { attrs: { _i: "45-" + $30 } }, [
+ : _c("span", { attrs: { _i: "46-" + $30 } }, [
_vm._v(
_vm._$s(
- "45-" + $30,
+ "46-" + $30,
"t0-0",
_vm._s(item.warnStatus)
)
@@ -10079,7 +10096,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "46-" + $30,
+ "47-" + $30,
"t0-0",
_vm._s(item.downTime ? "涓嬫満" : "鍦ㄦ満")
)
@@ -10089,8 +10106,30 @@
)
}
),
- _vm._$s(47, "i", !_vm.toolRecords.length)
- ? _c("tr", { attrs: { _i: 47 } }, [_c("td", {})])
+ _vm._$s(48, "i", !_vm.toolRecords.length)
+ ? _c("tr", { attrs: { _i: 48 } }, [_c("td", {})])
+ : _vm._e(),
+ _vm._$s(50, "i", _vm.hasMoreRecords && !_vm.isExpanded)
+ ? _c("tr", { attrs: { _i: 50 } }, [
+ _c(
+ "td",
+ {
+ staticClass: _vm._$s(51, "sc", "more-records-tip"),
+ attrs: { _i: 51 },
+ },
+ [
+ _c("span", [
+ _vm._v(
+ _vm._$s(
+ 52,
+ "t0-0",
+ _vm._s(_vm.remainingRecords)
+ )
+ ),
+ ]),
+ ]
+ ),
+ ])
: _vm._e(),
],
2
@@ -10128,7 +10167,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 machineNo: '',\n //鏈哄彴缂栫爜\n workOrderNo: '',\n //宸ュ崟鍙穃n selectedToolNo: '',\n toolName: '',\n useLimitInput: '',\n lifeWarnInput: '',\n // 瀵垮懡姣旈璀﹀�煎師濮嬭緭鍏n toolRecords: [],\n loadingForm: false,\n submitting: false,\n workOrderCurrentCjNum: null // 宸ュ崟褰撳墠鏁伴噰\n };\n },\n\n methods: {\n // 鍒锋柊鎸夐挳澶勭悊鏂规硶\n handleRefresh: function handleRefresh() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.machineNo && _this.workOrderNo)) {\n _context.next = 6;\n break;\n }\n _context.next = 3;\n return _this.fetchFormData();\n case 3:\n _context.next = 5;\n return _this.fetchDefaultToolFromWorkOrder();\n case 5:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this.toolRecords.length > 0) {\n _this.$set(_this.toolRecords[0], 'currentCjNum', _this.workOrderCurrentCjNum);\n }\n case 6:\n _this.$showMessage('鍒锋柊瀹屾垚');\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 鑷姩甯﹀嚭宸ュ崟鍒�鍏蜂俊鎭紝骞惰幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var _res$data, res, _ref, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this2.machineNo) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n _context2.prev = 2;\n _context2.next = 5;\n return _this2.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this2.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context2.sent;\n if (res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0];\n _this2.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this2.toolName = order.cutterName || order.cutteR_NAME || '';\n // 鑾峰彇宸ュ崟鏈�鏂伴噰闆嗘暟\n _this2.workOrderCurrentCjNum = (_ref = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref !== void 0 ? _ref : null;\n // 鑷姩濉厖瀵垮懡姣旈璀﹀�糪n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this2.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this2.lifeWarnInput = '';\n }\n } else {\n _this2.workOrderCurrentCjNum = null;\n }\n _context2.next = 13;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context2.t0, \" at pages/moldRecord.vue:155\");\n _this2.workOrderCurrentCjNum = null;\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[2, 9]]);\n }))();\n },\n fetchFormData: function fetchFormData() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var payload, res, list, getField, mapped;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!(!_this3.workOrderNo || !_this3.machineNo)) {\n _context3.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:162\");\n return _context3.abrupt(\"return\");\n case 3:\n _this3.loadingForm = true;\n payload = {\n workOrderNo: _this3.workOrderNo.trim(),\n machineNo: _this3.machineNo.trim()\n };\n _context3.prev = 5;\n _context3.next = 8;\n return _this3.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context3.sent;\n if (!(res.status !== 0)) {\n _context3.next = 13;\n break;\n }\n _this3.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this3.toolRecords = [];\n return _context3.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this3.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this3.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n }); // 鎸変笂鍒�鏃堕棿闄嶅簭鎺掑簭锛堣秺鏅氱殑瓒婁笂闈級\n mapped.sort(function (a, b) {\n var parse = function parse(s) {\n if (!s) return 0;\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime);\n });\n _this3.toolRecords = mapped;\n _context3.next = 25;\n break;\n case 20:\n _context3.prev = 20;\n _context3.t0 = _context3[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context3.t0, \" at pages/moldRecord.vue:255\");\n _this3.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this3.toolRecords = [];\n case 25:\n _context3.prev = 25;\n _this3.loadingForm = false;\n return _context3.finish(25);\n case 28:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[5, 20, 25, 28]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var d = new Date(Number(s) * 1000);\n return \"\".concat(d.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(d.getHours(), \":\").concat(String(d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d = new Date(Number(s));\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused) {\n return String(dateTimeStr);\n }\n }\n },\n mounted: function mounted() {\n var _this4 = this;\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return _this4.fetchDefaultToolFromWorkOrder();\n case 2:\n // 杩涘叆椤甸潰鏃惰祴鍊肩涓�琛� currentCjNum\n if (_this4.toolRecords.length > 0) {\n _this4.$set(_this4.toolRecords[0], 'currentCjNum', _this4.workOrderCurrentCjNum);\n }\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:300\");\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 */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9sZFJlY29yZC52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm1hY2hpbmVObyIsIndvcmtPcmRlck5vIiwic2VsZWN0ZWRUb29sTm8iLCJ0b29sTmFtZSIsInVzZUxpbWl0SW5wdXQiLCJsaWZlV2FybklucHV0IiwidG9vbFJlY29yZHMiLCJsb2FkaW5nRm9ybSIsInN1Ym1pdHRpbmciLCJ3b3JrT3JkZXJDdXJyZW50Q2pOdW0iLCJtZXRob2RzIiwiaGFuZGxlUmVmcmVzaCIsImZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyIiwidXJsIiwiaGVhZGVycyIsInJlcyIsIm9yZGVyIiwid2FybiIsImZldGNoRm9ybURhdGEiLCJwYXlsb2FkIiwibGlzdCIsImdldEZpZWxkIiwia2V5cyIsIm1hcHBlZCIsInBlcmNlbnQiLCJ3YXJuU3RhdHVzIiwiaWQiLCJubyIsIm5hbWUiLCJ1cFRpbWUiLCJ1cENvdW50IiwiZG93blRpbWUiLCJkb3duQ291bnQiLCJ1c2VDb3VudCIsInVzZUxpbWl0IiwibGlmZVBlcmNlbnQiLCJsaWZlV2FybiIsImN1cnJlbnRDak51bSIsImZvcm1hdERhdGVUaW1lIiwibW91bnRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFtR0E7RUFDQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7O0VBQ0FDO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsTUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUNBO2NBQUE7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2dCQUNBO2dCQUNBO2tCQUNBO2dCQUNBO2NBQUE7Z0JBRUE7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUVBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsSUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUFBLE9BRUE7a0JBQ0FDO2tCQUNBZDtvQkFBQUM7a0JBQUE7a0JBQ0FjO29CQUFBO2tCQUFBO2dCQUNBO2NBQUE7Z0JBSkFDO2dCQUtBO2tCQUNBQztrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQTtvQkFDQUM7b0JBQ0E7a0JBQ0E7b0JBQ0E7a0JBQ0E7Z0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFFQTtnQkFDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUVBO0lBRUFDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsTUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtnQkFBQTtjQUFBO2dCQUdBO2dCQUNBQztrQkFDQWxCO2tCQUNBRDtnQkFDQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUVBO2tCQUNBYTtrQkFDQWQ7a0JBQ0FlO29CQUFBO2tCQUFBO2dCQUNBO2NBQUE7Z0JBSkFDO2dCQUFBLE1BS0FBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2dCQUNBO2dCQUFBO2NBQUE7Z0JBR0FLLDRDQUNBTCx3REFDQUEsNENBQ0E7Z0JBRUFNO2tCQUFBO29CQUFBQztrQkFBQTtrQkFDQTtvQkFBQTtvQkFBQTtrQkFBQTtrQkFDQTtnQkFDQTtnQkFFQUM7a0JBQUE7a0JBQ0E7a0JBQ0E7a0JBQ0E7a0JBQ0E7a0JBRUE7a0JBQ0E7a0JBRUE7a0JBQ0E7b0JBQ0FDO2tCQUNBO2tCQUVBO29CQUNBO29CQUNBO29CQUNBO29CQUNBO2tCQUNBO2tCQUNBO29CQUNBO29CQUNBO29CQUNBO2tCQUNBO2tCQUNBO2tCQUVBO2tCQUNBO29CQUNBO29CQUNBQztrQkFDQTtvQkFDQUE7a0JBQ0E7a0JBRUE7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQVg7b0JBQ0FZO2tCQUNBO2dCQUNBLElBRUE7Z0JBQ0FkO2tCQUNBO29CQUNBO29CQUNBO29CQUNBO2tCQUNBO2tCQUNBO2dCQUNBO2dCQUVBO2dCQUFBO2dCQUFBO2NBQUE7Z0JBQUE7Z0JBQUE7Z0JBRUE7Z0JBQ0E7Z0JBQ0E7Y0FBQTtnQkFBQTtnQkFFQTtnQkFBQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUVBO0lBRUFlO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUFBO1FBQUE7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFBQTtJQUNBO0lBQ0E7SUFFQTtNQUNBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2dCQUNBO2dCQUNBO2tCQUNBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBLENBQ0E7SUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTE5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gICAgPHZpZXcgY2xhc3M9XCJwYWdlXCI+XHJcblxyXG4gICAgICAgIDwhLS0g5pON5L2c5oyJ6ZKuIC0tPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVSZWZyZXNoXCIgOmRpc2FibGVkPVwibG9hZGluZ0Zvcm0gfHwgc3VibWl0dGluZ1wiPuWIt+aWsDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgPCEtLSDliIDlhbfkvb/nlKjorrDlvZXooajmoLwgLS0+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInN0eWxlZC10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NyVcIj7liIDlhbfnvJblj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMiVcIj7liIDlhbflkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIrliIDml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5LiK5YiA6K6h5pWwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5LiL5YiA5pe26Ze0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4i+WIgOiuoeaVsDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kvb/nlKjmrKHmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5L2/55So5LiK6ZmQPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlCU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5a+/5ZG95q+U6aKE6K2m5YC8PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NyVcIj7pooTorabnirbmgIE8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPuWIgOWFt+WcqOacuueKtuaAgTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwiKGl0ZW0sIGlkeCkgaW4gdG9vbFJlY29yZHNcIiA6a2V5PVwiaXRlbS5pZFwiIDpjbGFzcz1cInsncm93LW9kZCc6IGlkeCAlIDIgPT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLm5vIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLnVwVGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0udXBDb3VudCAhPSBudWxsID8gaXRlbS51cENvdW50IDogJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5kb3duVGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g5Y+q5pyJ56ys5LiA6KGM5pi+56S6IGN1cnJlbnRDak51be+8jOWFtuWug+ihjOaYvuekuiBkb3duQ291bnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOesrOS4gOihjO+8muS4i+acuuaXtuS4jeWunuaXtuaYvuekuiBjdXJyZW50Q2pOdW3vvIzmmL7npLogZG93bkNvdW50IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCA/IGl0ZW0uY3VycmVudENqTnVtIDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93bkNvdW50ICE9IG51bGwgPyBpdGVtLmRvd25Db3VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93bkNvdW50ICE9IG51bGwgPyBpdGVtLmRvd25Db3VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0t5L2/55So5qyh5pWwLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOesrOS4gOihjOWunuaXtuiuoeeul+S9v+eUqOasoeaVsO+8jOiLpeS4uuS4i+acuuWImeS4jeWunuaXtuaYvuekuiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiFpdGVtLmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCAmJiBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IChOdW1iZXIoaXRlbS5jdXJyZW50Q2pOdW0pIC0gTnVtYmVyKGl0ZW0udXBDb3VudCkpIDogKGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJykgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnVzZUNvdW50ICE9IG51bGwgPyBpdGVtLnVzZUNvdW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0udXNlTGltaXQgIT0gbnVsbCA/IGl0ZW0udXNlTGltaXQgOiAnJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS3lr7/lkb3mr5QlLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOesrOS4gOihjOWunuaXtuiuoeeul+Wvv+WRveavlCXvvIzoi6XkuLrkuIvmnLrliJnkuI3lrp7ml7bmmL7npLogLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uY3VycmVudENqTnVtICE9IG51bGwgJiYgaXRlbS51cENvdW50ICE9IG51bGwgJiYgaXRlbS51c2VMaW1pdCAhPSBudWxsICYmIE51bWJlcihpdGVtLnVzZUxpbWl0KSA+IDAgPyBNYXRoLnJvdW5kKChOdW1iZXIoaXRlbS5jdXJyZW50Q2pOdW0pIC0gTnVtYmVyKGl0ZW0udXBDb3VudCkpIC8gTnVtYmVyKGl0ZW0udXNlTGltaXQpICogMTAwKSArICclJyA6IChpdGVtLmxpZmVQZXJjZW50ICE9IG51bGwgPyBpdGVtLmxpZmVQZXJjZW50IDogJycpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxpZmVQZXJjZW50ICE9IG51bGwgPyBpdGVtLmxpZmVQZXJjZW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5saWZlUGVyY2VudCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+e3sgaXRlbS5saWZlV2FybiB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA6Y2xhc3M9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnID8gJ3dhcm4tY2VsbCcgOiAoaXRlbS53YXJuU3RhdHVzID09PSAn5q2j5bi4JyA/ICdvay1jZWxsJyA6ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIml0ZW0ud2FyblN0YXR1cyA9PT0gJ+mihOitpidcIiBjbGFzcz1cIndhcm4tYmFkZ2VcIj7orablkYo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS53YXJuU3RhdHVzIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25UaW1lID8gJ+S4i+acuicgOiAn5Zyo5py6JyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhdG9vbFJlY29yZHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTJcIj7mmoLml6DmlbDmja48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwvdmlldz5cclxuICAgIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbiAgICBleHBvcnQgZGVmYXVsdCB7XHJcbiAgICAgICAgZGF0YSgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG1hY2hpbmVObzogJycsLy/mnLrlj7DnvJbnoIFcclxuICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiAnJywvL+W3peWNleWPt1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRUb29sTm86ICcnLFxyXG4gICAgICAgICAgICAgICAgdG9vbE5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgICAgdXNlTGltaXRJbnB1dDogJycsXHJcbiAgICAgICAgICAgICAgICBsaWZlV2FybklucHV0OiAnJywgLy8g5a+/5ZG95q+U6aKE6K2m5YC85Y6f5aeL6L6T5YWlXHJcbiAgICAgICAgICAgICAgICB0b29sUmVjb3JkczogW10sXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nRm9ybTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBzdWJtaXR0aW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHdvcmtPcmRlckN1cnJlbnRDak51bTogbnVsbCwgLy8g5bel5Y2V5b2T5YmN5pWw6YeHXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIC8vIOWIt+aWsOaMiemSruWkhOeQhuaWueazlVxyXG4gICAgICAgICAgICBhc3luYyBoYW5kbGVSZWZyZXNoKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFjaGluZU5vICYmIHRoaXMud29ya09yZGVyTm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRm9ybURhdGEoKTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5Yi35paw5ZCO6LWL5YC856ys5LiA6KGMIGN1cnJlbnRDak51bVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+WIt+aWsOWujOaIkCcpO1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy8g6Ieq5Yqo5bim5Ye65bel5Y2V5YiA5YW35L+h5oGv77yM5bm26I635Y+W5bel5Y2V5pyA5paw6YeH6ZuG5pWwXHJcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSAwICYmIEFycmF5LmlzQXJyYXkocmVzLmRhdGE/LnRiQmlsbExpc3QpICYmIHJlcy5kYXRhLnRiQmlsbExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IHJlcy5kYXRhLnRiQmlsbExpc3RbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sTm8gPSBvcmRlci5jdXR0ZXJJZCB8fCBvcmRlci5jdXR0ZVJfSUQgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbE5hbWUgPSBvcmRlci5jdXR0ZXJOYW1lIHx8IG9yZGVyLmN1dHRlUl9OQU1FIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDojrflj5blt6XljZXmnIDmlrDph4fpm4bmlbBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBvcmRlci5DdXJyZW50Q2pOdW0gPz8gb3JkZXIuY3VycmVudENqTnVtID8/IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOiHquWKqOWhq+WFheWvv+WRveavlOmihOitpuWAvFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JkZXIubW9kbExpZmVXb3JuaW5nICE9PSB1bmRlZmluZWQgJiYgb3JkZXIubW9kbExpZmVXb3JuaW5nICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJuID0gTnVtYmVyKG9yZGVyLm1vZGxMaWZlV29ybmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSB3YXJuIDw9IDEgPyAod2FybiAqIDEwMCkudG9GaXhlZCgwKSA6IHdhcm4udG9GaXhlZCgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlmZVdhcm5JbnB1dCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+iHquWKqOW4puWHuuW3peWNleWIgOWFt+Wksei0pScsIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRm9ybURhdGEoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMud29ya09yZGVyTm8gfHwgIXRoaXMubWFjaGluZU5vKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCflt6XljZXlj7fmiJbmnLrlj7Dlj7fkuLrnqbrvvIzot7Pov4fojrflj5booajljZXmlbDmja4nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd29ya09yZGVyTm86IHRoaXMud29ya09yZGVyTm8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8udHJpbSgpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9HZXRGb3JtRGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKHJlcy5tZXNzYWdlIHx8ICfojrflj5booajljZXmlbDmja7lpLHotKUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLnRiQmlsbExpc3QpID8gcmVzLmRhdGEudGJCaWxsTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocmVzLmRhdGEgJiYgcmVzLmRhdGEuZGF0YSkgPyByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0RmllbGQgPSAob2JqLCAuLi5rZXlzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSBpZiAob2JqPy5ba10gIT09IHVuZGVmaW5lZCAmJiBvYmo/LltrXSAhPT0gbnVsbCkgcmV0dXJuIG9ialtrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkID0gKGxpc3QgfHwgW10pLm1hcCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBUaW1lUmF3ID0gZ2V0RmllbGQodCwgJ3VQX1RJTUUnLCAnVVBfVElNRScsICd1UFRpbWUnLCAnVVBUSU1FJywgJ1VwVGltZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb3duVGltZVJhdyA9IGdldEZpZWxkKHQsICdkb3dOX1RJTUUnLCAnRE9XTl9USU1FJywgJ2Rvd25UaW1lJywgJ0RPV05USU1FJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuUmF3ID0gZ2V0RmllbGQodCwgJ2xpZkVfV0FSTicsICdMSUZFX1dBUk4nLCAnbGlmZVdhcm4nLCAnTElGRVdBUk4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENqTnVtID0gZ2V0RmllbGQodCwgJ2N1cnJlbnRDak51bScsICdDVVJSRU5UQ0pOVU0nLCAnQ3VycmVudENqTnVtJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VDb3VudCA9IGdldEZpZWxkKHQsICd1c0VfQ09VTlQnLCAnVVNFX0NPVU5UJywgJ3VzZUNvdW50Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZUxpbWl0ID0gZ2V0RmllbGQodCwgJ3VzRV9MSU1JVCcsICdVU0VfTElNSVQnLCAndXNlTGltaXQnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwZXJjZW50ID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VDb3VudCAhPSBudWxsICYmIHVzZUxpbWl0ICE9IG51bGwgJiYgIWlzTmFOKHVzZUNvdW50KSAmJiAhaXNOYU4odXNlTGltaXQpICYmIE51bWJlcih1c2VMaW1pdCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gKChOdW1iZXIodXNlQ291bnQpIC8gTnVtYmVyKHVzZUxpbWl0KSkgKiAxMDApLnRvRml4ZWQoMCkgKyAnJSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlTnVtYmVyID0gdiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IFN0cmluZyh2KS5yZXBsYWNlKC9bLO+8hSVdL2csICcnKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gcGFyc2VGbG9hdChzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0UGVyY2VudCA9IG4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT09IG51bGwgfHwgbiA9PT0gdW5kZWZpbmVkIHx8IGlzTmFOKG4pKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA8PSAxKSByZXR1cm4gYCR7KG4gKiAxMDApLnRvRml4ZWQoMCl9JWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7TnVtYmVyKG4pLnRvRml4ZWQoMCl9JWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuTnVtID0gcGFyc2VOdW1iZXIobGlmZVdhcm5SYXcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdhcm5TdGF0dXMgPSBnZXRGaWVsZCh0LCAnc3RhdHVzJywgJ1NUQVRVUycpIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlmZVdhcm5OdW0gIT09IG51bGwgJiYgdXNlQ291bnQgIT0gbnVsbCAmJiB1c2VMaW1pdCAhPSBudWxsICYmICFpc05hTih1c2VDb3VudCkgJiYgIWlzTmFOKHVzZUxpbWl0KSAmJiBOdW1iZXIodXNlTGltaXQpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudE51bSA9IE51bWJlcih1c2VDb3VudCkgLyBOdW1iZXIodXNlTGltaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyA9IChwZXJjZW50TnVtID49IGxpZmVXYXJuTnVtKSA/ICfpooToraYnIDogJ+ato+W4uCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU3RhdHVzID0gd2FyblN0YXR1cyB8fCAn5pyq55+lJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBnZXRGaWVsZCh0LCAnaWQnLCAnSUQnKSB8fCBgJHtnZXRGaWVsZCh0LCAnY3V0dGVSX0lEJykgfHwgZ2V0RmllbGQodCwgJ0NVVFRFUl9JRCcpIHx8ICcnfS0ke3VwVGltZVJhdyB8fCAnJ31gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm86IGdldEZpZWxkKHQsICdjdXR0ZVJfSUQnLCAnQ1VUVEVSX0lEJywgJ2N1dHRlcklkJywgJ25vJykgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXRGaWVsZCh0LCAnY3V0dGVSX05BTUUnLCAnQ1VUVEVSX05BTUUnLCAnY3V0dGVyTmFtZScsICduYW1lJykgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cFRpbWU6IHRoaXMuZm9ybWF0RGF0ZVRpbWUodXBUaW1lUmF3KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwQ291bnQ6IGdldEZpZWxkKHQsICd1UF9DT1VOVCcsICdVUF9DT1VOVCcsICd1cENvdW50JykgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duVGltZTogdGhpcy5mb3JtYXREYXRlVGltZShkb3duVGltZVJhdyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duQ291bnQ6IGdldEZpZWxkKHQsICdkb3dOX0NPVU5UJywgJ0RPV05fQ09VTlQnLCAnZG93bkNvdW50JykgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDb3VudDogdXNlQ291bnQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMaW1pdDogdXNlTGltaXQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlUGVyY2VudDogcGVyY2VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZmVXYXJuOiBmb3JtYXRQZXJjZW50KGxpZmVXYXJuTnVtKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5oyJ5LiK5YiA5pe26Ze06ZmN5bqP5o6S5bqP77yI6LaK5pma55qE6LaK5LiK6Z2i77yJXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwcGVkLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2UgPSBzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcykgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke3llYXJ9LSR7cy5yZXBsYWNlKC8tL2csICctJyl9OjAwYCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2UoYi51cFRpbWUpIC0gcGFyc2UoYS51cFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gbWFwcGVkO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5booajljZXmlbDmja7plJnor686JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfojrflj5bmlbDmja7lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5zov57mjqUnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gW107XHJcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGZvcm1hdERhdGVUaW1lKGRhdGVUaW1lU3RyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVUaW1lU3RyKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcoZGF0ZVRpbWVTdHIpLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoL15cXGR7MTB9JC8udGVzdChzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoTnVtYmVyKHMpICogMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9eXFxkezEzfSQvLnRlc3QocykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKE51bWJlcihzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVUaW1lU3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZGF0ZS5nZXRNb250aCgpICsgMX0tJHtkYXRlLmdldERhdGUoKX0gJHtkYXRlLmdldEhvdXJzKCl9OiR7U3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gU3RyaW5nKGRhdGVUaW1lU3RyKS5tYXRjaCgvKFxcZHsxLDR9Wy1cXC9dXFxkezEsMn1bLVxcL11cXGR7MSwyfSkuKj8oXFxkezEsMn06XFxkezJ9KS8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgcmV0dXJuIGAke21hdGNoWzFdLnJlcGxhY2UoLy0vZywgJy8nKS5yZXBsYWNlKC9eXFxkezR9XFwvLywgKG0pID0+IG0pfSAke21hdGNoWzJdfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRlVGltZVN0cik7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGVUaW1lU3RyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbW91bnRlZCgpIHtcclxuICAgICAgICAgICAgdGhpcy5tYWNoaW5lTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycpIHx8ICcnO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtPcmRlck5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdkYWEwMDEnKSB8fCAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hY2hpbmVObyAmJiB0aGlzLndvcmtPcmRlck5vKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRm9ybURhdGEoKS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6L+b5YWl6aG16Z2i5pe26LWL5YC856ys5LiA6KGMIGN1cnJlbnRDak51bVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+acuuWPsOWPt+aIluW3peWNleWPt+S4uuepuu+8jOaXoOazleiOt+WPluihqOWNleaVsOaNricpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG4gICAgLnBhZ2Uge1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi1yb3cge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAzMnB4O1xyXG4gICAgICAgIG1hcmdpbjogMnZoIDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNhdmUtYnRuLCAuY2FuY2VsLWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDI4JTtcclxuICAgICAgICBwYWRkaW5nOiAxLjV2aDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYW5jZWwtYnRuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xyXG4gICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgfVxyXG5cclxuICAgIC5zYXZlLWJ0bjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQwYTlmZjtcclxuICAgIH1cclxuXHJcbiAgICAuc2F2ZS1idG46YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk2ZGQ5O1xyXG4gICAgfVxyXG5cclxuICAgIC5zYXZlLWJ0bjpkaXNhYmxlZCwgLmNhbmNlbC1idG46ZGlzYWJsZWQge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcclxuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWJsZS1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMXZoIDA7XHJcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB0YWJsZS5zdHlsZWQtdGFibGUge1xyXG4gICAgICAgIG1heC13aWR0aDogMTgwMHB4O1xyXG4gICAgICAgIHdpZHRoOiA5OHZ3O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2JmYmZiZjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwwLDAsMC4wNik7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0aGVhZCB0aCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYmZiZmJmO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0Ym9keSB0ZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDEwcHg7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAudGFibGUtc2VjdGlvbiB0YWJsZSB0aDpmaXJzdC1jaGlsZCwgLnRhYmxlLXNlY3Rpb24gdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2JmYmZiZjtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGUtc2VjdGlvbiB0YWJsZSB0aDpsYXN0LWNoaWxkLCAudGFibGUtc2VjdGlvbiB0YWJsZSB0ZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjYmZiZmJmO1xyXG4gICAgfVxyXG5cclxuICAgIC5yb3ctb2RkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucm93LW9kZCArIHRyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcclxuICAgICAgICB9XHJcblxyXG4gICAgLm51bSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxuICAgIH1cclxuXHJcbiAgICAubGVmdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuXHJcbiAgICAud2Fybi1jZWxsIHtcclxuICAgICAgICBjb2xvcjogI2Q5MzAyNTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAub2stY2VsbCB7XHJcbiAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICB9XHJcblxyXG4gICAgLndhcm4tYmFkZ2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY0ZDRmO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIOWTjeW6lOW8j+iwg+aVtCAqL1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xyXG4gICAgICAgIC5zYXZlLWJ0biwgLmNhbmNlbC1idG4ge1xyXG4gICAgICAgICAgICB3aWR0aDogNDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///119\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 machineNo: '',\n //鏈哄彴缂栫爜\n workOrderNo: '',\n //宸ュ崟鍙穃n selectedToolNo: '',\n toolName: '',\n useLimitInput: '',\n lifeWarnInput: '',\n // 瀵垮懡姣旈璀﹀�煎師濮嬭緭鍏n toolRecords: [],\n loadingForm: false,\n submitting: false,\n workOrderCurrentCjNum: null,\n // 宸ュ崟褰撳墠鏁伴噰\n isExpanded: false,\n // 鏄惁灞曞紑琛ㄦ牸\n defaultVisibleRows: 3 // 榛樿鏄剧ず鐨勮鏁帮紙涓�鍗婇珮搴︼級\n };\n },\n\n computed: {\n // 璁$畻榛樿鏄剧ず澶氬皯琛岋紙鎬昏鏁扮殑涓�鍗婏級\n defaultRows: function defaultRows() {\n var total = this.toolRecords.length;\n if (total <= 3) return total; // 濡傛灉鎬昏鏁板皬浜庣瓑浜�3锛屽叏閮ㄦ樉绀篭n return Math.max(3, Math.floor(total / 2)); // 鏈�灏戞樉绀�3琛岋紝鏈�澶氭樉绀轰竴鍗奬n },\n // 褰撳墠鍙鐨勮褰昞n visibleRecords: function visibleRecords() {\n if (this.isExpanded) {\n return this.toolRecords;\n } else {\n return this.toolRecords.slice(0, this.defaultRows);\n }\n },\n // 鏄惁杩樻湁鏇村璁板綍\n hasMoreRecords: function hasMoreRecords() {\n return this.toolRecords.length > this.defaultRows;\n },\n // 鍓╀綑璁板綍鏁癨n remainingRecords: function remainingRecords() {\n return this.toolRecords.length - this.defaultRows;\n }\n },\n methods: {\n // 鍒囨崲灞曞紑/鏀惰捣\n toggleExpand: function toggleExpand() {\n this.isExpanded = !this.isExpanded;\n },\n // 鍒锋柊鎸夐挳澶勭悊鏂规硶\n handleRefresh: function handleRefresh() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.machineNo && _this.workOrderNo)) {\n _context.next = 6;\n break;\n }\n _context.next = 3;\n return _this.fetchFormData();\n case 3:\n _context.next = 5;\n return _this.fetchDefaultToolFromWorkOrder();\n case 5:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this.toolRecords.length > 0) {\n _this.$set(_this.toolRecords[0], 'currentCjNum', _this.workOrderCurrentCjNum);\n }\n case 6:\n _this.$showMessage('鍒锋柊瀹屾垚');\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 鑷姩甯﹀嚭宸ュ崟鍒�鍏蜂俊鎭紝骞惰幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var _res$data, res, _ref, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this2.machineNo) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n _context2.prev = 2;\n _context2.next = 5;\n return _this2.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this2.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context2.sent;\n if (res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0];\n _this2.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this2.toolName = order.cutterName || order.cutteR_NAME || '';\n // 鑾峰彇宸ュ崟鏈�鏂伴噰闆嗘暟\n _this2.workOrderCurrentCjNum = (_ref = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref !== void 0 ? _ref : null;\n // 鑷姩濉厖瀵垮懡姣旈璀﹀�糪n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this2.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this2.lifeWarnInput = '';\n }\n } else {\n _this2.workOrderCurrentCjNum = null;\n }\n _context2.next = 13;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context2.t0, \" at pages/moldRecord.vue:194\");\n _this2.workOrderCurrentCjNum = null;\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[2, 9]]);\n }))();\n },\n fetchFormData: function fetchFormData() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var payload, res, list, getField, mapped;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!(!_this3.workOrderNo || !_this3.machineNo)) {\n _context3.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:201\");\n return _context3.abrupt(\"return\");\n case 3:\n _this3.loadingForm = true;\n payload = {\n workOrderNo: _this3.workOrderNo.trim(),\n machineNo: _this3.machineNo.trim()\n };\n _context3.prev = 5;\n _context3.next = 8;\n return _this3.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context3.sent;\n if (!(res.status !== 0)) {\n _context3.next = 13;\n break;\n }\n _this3.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this3.toolRecords = [];\n return _context3.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this3.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this3.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n }); // 鎸変笂鍒�鏃堕棿闄嶅簭鎺掑簭锛堣秺鏅氱殑瓒婁笂闈級\n mapped.sort(function (a, b) {\n var parse = function parse(s) {\n if (!s) return 0;\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime);\n });\n _this3.toolRecords = mapped;\n _context3.next = 25;\n break;\n case 20:\n _context3.prev = 20;\n _context3.t0 = _context3[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context3.t0, \" at pages/moldRecord.vue:294\");\n _this3.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this3.toolRecords = [];\n case 25:\n _context3.prev = 25;\n _this3.loadingForm = false;\n return _context3.finish(25);\n case 28:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[5, 20, 25, 28]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var _d = new Date(Number(s) * 1000);\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d2 = new Date(Number(s));\n return \"\".concat(_d2.getMonth() + 1, \"-\").concat(_d2.getDate(), \" \").concat(_d2.getHours(), \":\").concat(String(_d2.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused) {\n return String(dateTimeStr);\n }\n }\n },\n mounted: function mounted() {\n var _this4 = this;\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return _this4.fetchDefaultToolFromWorkOrder();\n case 2:\n // 杩涘叆椤甸潰鏃惰祴鍊肩涓�琛� currentCjNum\n if (_this4.toolRecords.length > 0) {\n _this4.$set(_this4.toolRecords[0], 'currentCjNum', _this4.workOrderCurrentCjNum);\n }\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:339\");\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 */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9sZFJlY29yZC52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm1hY2hpbmVObyIsIndvcmtPcmRlck5vIiwic2VsZWN0ZWRUb29sTm8iLCJ0b29sTmFtZSIsInVzZUxpbWl0SW5wdXQiLCJsaWZlV2FybklucHV0IiwidG9vbFJlY29yZHMiLCJsb2FkaW5nRm9ybSIsInN1Ym1pdHRpbmciLCJ3b3JrT3JkZXJDdXJyZW50Q2pOdW0iLCJpc0V4cGFuZGVkIiwiZGVmYXVsdFZpc2libGVSb3dzIiwiY29tcHV0ZWQiLCJkZWZhdWx0Um93cyIsInZpc2libGVSZWNvcmRzIiwiaGFzTW9yZVJlY29yZHMiLCJyZW1haW5pbmdSZWNvcmRzIiwibWV0aG9kcyIsInRvZ2dsZUV4cGFuZCIsImhhbmRsZVJlZnJlc2giLCJmZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlciIsInVybCIsImhlYWRlcnMiLCJyZXMiLCJvcmRlciIsIndhcm4iLCJmZXRjaEZvcm1EYXRhIiwicGF5bG9hZCIsImxpc3QiLCJnZXRGaWVsZCIsImtleXMiLCJtYXBwZWQiLCJwZXJjZW50Iiwid2FyblN0YXR1cyIsImlkIiwibm8iLCJuYW1lIiwidXBUaW1lIiwidXBDb3VudCIsImRvd25UaW1lIiwiZG93bkNvdW50IiwidXNlQ291bnQiLCJ1c2VMaW1pdCIsImxpZmVQZXJjZW50IiwibGlmZVdhcm4iLCJjdXJyZW50Q2pOdW0iLCJmb3JtYXREYXRlVGltZSIsIm1vdW50ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUEyR0E7RUFDQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7SUFDQTtFQUNBOztFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsTUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUNBO2NBQUE7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2dCQUNBO2dCQUNBO2tCQUNBO2dCQUNBO2NBQUE7Z0JBRUE7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUVBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsSUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUFBLE9BRUE7a0JBQ0FDO2tCQUNBdEI7b0JBQUFDO2tCQUFBO2tCQUNBc0I7b0JBQUE7a0JBQUE7Z0JBQ0E7Y0FBQTtnQkFKQUM7Z0JBS0E7a0JBQ0FDO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO29CQUNBQztvQkFDQTtrQkFDQTtvQkFDQTtrQkFDQTtnQkFDQTtrQkFDQTtnQkFDQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUVBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7SUFFQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQSxNQUNBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2dCQUFBO2NBQUE7Z0JBR0E7Z0JBQ0FDO2tCQUNBMUI7a0JBQ0FEO2dCQUNBO2dCQUFBO2dCQUFBO2dCQUFBLE9BRUE7a0JBQ0FxQjtrQkFDQXRCO2tCQUNBdUI7b0JBQUE7a0JBQUE7Z0JBQ0E7Y0FBQTtnQkFKQUM7Z0JBQUEsTUFLQUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFHQUssNENBQ0FMLHdEQUNBQSw0Q0FDQTtnQkFFQU07a0JBQUE7b0JBQUFDO2tCQUFBO2tCQUNBO29CQUFBO29CQUFBO2tCQUFBO2tCQUNBO2dCQUNBO2dCQUVBQztrQkFBQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFFQTtrQkFDQTtrQkFFQTtrQkFDQTtvQkFDQUM7a0JBQ0E7a0JBRUE7b0JBQ0E7b0JBQ0E7b0JBQ0E7b0JBQ0E7a0JBQ0E7a0JBQ0E7b0JBQ0E7b0JBQ0E7b0JBQ0E7a0JBQ0E7a0JBQ0E7a0JBRUE7a0JBQ0E7b0JBQ0E7b0JBQ0FDO2tCQUNBO29CQUNBQTtrQkFDQTtrQkFFQTtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBWDtvQkFDQVk7a0JBQ0E7Z0JBQ0EsSUFFQTtnQkFDQWQ7a0JBQ0E7b0JBQ0E7b0JBQ0E7b0JBQ0E7a0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBRUE7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFFQTtnQkFDQTtnQkFDQTtjQUFBO2dCQUFBO2dCQUVBO2dCQUFBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7SUFFQWU7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQUE7UUFBQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7SUFDQTtJQUVBO01BQ0E7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQSxPQUNBO2NBQUE7Z0JBQ0E7Z0JBQ0E7a0JBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUEsQ0FDQTtJQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgICA8dmlldyBjbGFzcz1cInBhZ2VcIj5cclxuXHJcbiAgICAgICAgPCEtLSDmk43kvZzmjInpkq4gLS0+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJidXR0b24tcm93XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlLWJ0blwiIEBjbGljaz1cImhhbmRsZVJlZnJlc2hcIiA6ZGlzYWJsZWQ9XCJsb2FkaW5nRm9ybSB8fCBzdWJtaXR0aW5nXCI+5Yi35pawPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJleHBhbmQtYnRuXCIgQGNsaWNrPVwidG9nZ2xlRXhwYW5kXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpc0V4cGFuZGVkID8gJ+aUtui1tycgOiAn5bGV5byAJyB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3ZpZXc+XHJcblxyXG4gICAgICAgIDwhLS0g5YiA5YW35L2/55So6K6w5b2V6KGo5qC8IC0tPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwidGFibGUtc2VjdGlvblwiIDpjbGFzcz1cInsnZXhwYW5kZWQnOiBpc0V4cGFuZGVkfVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJzdHlsZWQtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjclXCI+5YiA5YW357yW5Y+3PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTIlXCI+5YiA5YW35ZCN56ewPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5LiK5YiA5pe26Ze0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4iuWIgOiuoeaVsDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEwJVwiPuS4i+WIgOaXtumXtDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kuIvliIDorqHmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5L2/55So5qyh5pWwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS9v+eUqOS4iumZkDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7lr7/lkb3mr5QlPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlOmihOitpuWAvDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjclXCI+6aKE6K2m54q25oCBPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NyVcIj7liIDlhbflnKjmnLrnirbmgIE8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihpdGVtLCBpZHgpIGluIHZpc2libGVSZWNvcmRzXCIgOmtleT1cIml0ZW0uaWRcIiA6Y2xhc3M9XCJ7J3Jvdy1vZGQnOiBpZHggJSAyID09PSAwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5ubyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIj57eyBpdGVtLm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS51cFRpbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IGl0ZW0udXBDb3VudCA6ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZG93blRpbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOWPquacieesrOS4gOihjOaYvuekuiBjdXJyZW50Q2pOdW3vvIzlhbblroPooYzmmL7npLogZG93bkNvdW50IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzvvJrkuIvmnLrml7bkuI3lrp7ml7bmmL7npLogY3VycmVudENqTnVt77yM5pi+56S6IGRvd25Db3VudCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiFpdGVtLmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY3VycmVudENqTnVtICE9IG51bGwgPyBpdGVtLmN1cnJlbnRDak51bSA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLeS9v+eUqOasoeaVsC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzlrp7ml7borqHnrpfkvb/nlKjmrKHmlbDvvIzoi6XkuLrkuIvmnLrliJnkuI3lrp7ml7bmmL7npLogLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uY3VycmVudENqTnVtICE9IG51bGwgJiYgaXRlbS51cENvdW50ICE9IG51bGwgPyAoTnVtYmVyKGl0ZW0uY3VycmVudENqTnVtKSAtIE51bWJlcihpdGVtLnVwQ291bnQpKSA6IChpdGVtLnVzZUNvdW50ICE9IG51bGwgPyBpdGVtLnVzZUNvdW50IDogJycpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnVzZUNvdW50ICE9IG51bGwgPyBpdGVtLnVzZUNvdW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS51c2VDb3VudCAhPSBudWxsID8gaXRlbS51c2VDb3VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLnVzZUxpbWl0ICE9IG51bGwgPyBpdGVtLnVzZUxpbWl0IDogJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0t5a+/5ZG95q+UJS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzlrp7ml7borqHnrpflr7/lkb3mr5Ql77yM6Iul5Li65LiL5py65YiZ5LiN5a6e5pe25pi+56S6IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsICYmIGl0ZW0udXBDb3VudCAhPSBudWxsICYmIGl0ZW0udXNlTGltaXQgIT0gbnVsbCAmJiBOdW1iZXIoaXRlbS51c2VMaW1pdCkgPiAwID8gTWF0aC5yb3VuZCgoTnVtYmVyKGl0ZW0uY3VycmVudENqTnVtKSAtIE51bWJlcihpdGVtLnVwQ291bnQpKSAvIE51bWJlcihpdGVtLnVzZUxpbWl0KSAqIDEwMCkgKyAnJScgOiAoaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGlmZVBlcmNlbnQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0ubGlmZVdhcm4gfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgOmNsYXNzPVwiaXRlbS53YXJuU3RhdHVzID09PSAn6aKE6K2mJyA/ICd3YXJuLWNlbGwnIDogKGl0ZW0ud2FyblN0YXR1cyA9PT0gJ+ato+W4uCcgPyAnb2stY2VsbCcgOiAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnXCIgY2xhc3M9XCJ3YXJuLWJhZGdlXCI+6K2m5ZGKPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1lbHNlPnt7IGl0ZW0ud2FyblN0YXR1cyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kb3duVGltZSA/ICfkuIvmnLonIDogJ+WcqOacuicgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiIXRvb2xSZWNvcmRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCI+5pqC5peg5pWw5o2uPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiaGFzTW9yZVJlY29yZHMgJiYgIWlzRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMlwiIGNsYXNzPVwibW9yZS1yZWNvcmRzLXRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+6L+Y5pyJIHt7IHJlbWFpbmluZ1JlY29yZHMgfX0g5p2h6K6w5b2V77yM54K55Ye7XCLlsZXlvIBcIuaMiemSruafpeeci+WFqOmDqDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gICAgZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgICAgIGRhdGEoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBtYWNoaW5lTm86ICcnLC8v5py65Y+w57yW56CBXHJcbiAgICAgICAgICAgICAgICB3b3JrT3JkZXJObzogJycsLy/lt6XljZXlj7dcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVG9vbE5vOiAnJyxcclxuICAgICAgICAgICAgICAgIHRvb2xOYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIHVzZUxpbWl0SW5wdXQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgbGlmZVdhcm5JbnB1dDogJycsIC8vIOWvv+WRveavlOmihOitpuWAvOWOn+Wni+i+k+WFpVxyXG4gICAgICAgICAgICAgICAgdG9vbFJlY29yZHM6IFtdLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZ0Zvcm06IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgc3VibWl0dGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB3b3JrT3JkZXJDdXJyZW50Q2pOdW06IG51bGwsIC8vIOW3peWNleW9k+WJjeaVsOmHh1xyXG4gICAgICAgICAgICAgICAgaXNFeHBhbmRlZDogZmFsc2UsIC8vIOaYr+WQpuWxleW8gOihqOagvFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZpc2libGVSb3dzOiAzLCAvLyDpu5jorqTmmL7npLrnmoTooYzmlbDvvIjkuIDljYrpq5jluqbvvIlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXB1dGVkOiB7XHJcbiAgICAgICAgICAgIC8vIOiuoeeul+m7mOiupOaYvuekuuWkmuWwkeihjO+8iOaAu+ihjOaVsOeahOS4gOWNiu+8iVxyXG4gICAgICAgICAgICBkZWZhdWx0Um93cygpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b29sUmVjb3Jkcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBpZiAodG90YWwgPD0gMykgcmV0dXJuIHRvdGFsOyAvLyDlpoLmnpzmgLvooYzmlbDlsI/kuo7nrYnkuo4z77yM5YWo6YOo5pi+56S6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMywgTWF0aC5mbG9vcih0b3RhbCAvIDIpKTsgLy8g5pyA5bCR5pi+56S6M+ihjO+8jOacgOWkmuaYvuekuuS4gOWNilxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDlvZPliY3lj6/op4HnmoTorrDlvZVcclxuICAgICAgICAgICAgdmlzaWJsZVJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbFJlY29yZHM7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2xSZWNvcmRzLnNsaWNlKDAsIHRoaXMuZGVmYXVsdFJvd3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDmmK/lkKbov5jmnInmm7TlpJrorrDlvZVcclxuICAgICAgICAgICAgaGFzTW9yZVJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sUmVjb3Jkcy5sZW5ndGggPiB0aGlzLmRlZmF1bHRSb3dzO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDliankvZnorrDlvZXmlbBcclxuICAgICAgICAgICAgcmVtYWluaW5nUmVjb3JkcygpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCAtIHRoaXMuZGVmYXVsdFJvd3M7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1ldGhvZHM6IHtcclxuICAgICAgICAgICAgLy8g5YiH5o2i5bGV5byAL+aUtui1t1xyXG4gICAgICAgICAgICB0b2dnbGVFeHBhbmQoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy8g5Yi35paw5oyJ6ZKu5aSE55CG5pa55rOVXHJcbiAgICAgICAgICAgIGFzeW5jIGhhbmRsZVJlZnJlc2goKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYWNoaW5lTm8gJiYgdGhpcy53b3JrT3JkZXJObykge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDliLfmlrDlkI7otYvlgLznrKzkuIDooYwgY3VycmVudENqTnVtXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50b29sUmVjb3Jkc1swXSwgJ2N1cnJlbnRDak51bScsIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5Yi35paw5a6M5oiQJyk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvLyDoh6rliqjluKblh7rlt6XljZXliIDlhbfkv6Hmga/vvIzlubbojrflj5blt6XljZXmnIDmlrDph4fpm4bmlbBcclxuICAgICAgICAgICAgYXN5bmMgZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFjaGluZU5vKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvV29tZGFhL0dldFdvbWRhYXNCeVNob3cnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8gfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDAgJiYgQXJyYXkuaXNBcnJheShyZXMuZGF0YT8udGJCaWxsTGlzdCkgJiYgcmVzLmRhdGEudGJCaWxsTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gcmVzLmRhdGEudGJCaWxsTGlzdFswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2xObyA9IG9yZGVyLmN1dHRlcklkIHx8IG9yZGVyLmN1dHRlUl9JRCB8fCAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sTmFtZSA9IG9yZGVyLmN1dHRlck5hbWUgfHwgb3JkZXIuY3V0dGVSX05BTUUgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOiOt+WPluW3peWNleacgOaWsOmHh+mbhuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG9yZGVyLkN1cnJlbnRDak51bSA/PyBvcmRlci5jdXJyZW50Q2pOdW0gPz8gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g6Ieq5Yqo5aGr5YWF5a+/5ZG95q+U6aKE6K2m5YC8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmRlci5tb2RsTGlmZVdvcm5pbmcgIT09IHVuZGVmaW5lZCAmJiBvcmRlci5tb2RsTGlmZVdvcm5pbmcgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm4gPSBOdW1iZXIob3JkZXIubW9kbExpZmVXb3JuaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlmZVdhcm5JbnB1dCA9IHdhcm4gPD0gMSA/ICh3YXJuICogMTAwKS50b0ZpeGVkKDApIDogd2Fybi50b0ZpeGVkKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign6Ieq5Yqo5bim5Ye65bel5Y2V5YiA5YW35aSx6LSlJywgZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgYXN5bmMgZmV0Y2hGb3JtRGF0YSgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy53b3JrT3JkZXJObyB8fCAhdGhpcy5tYWNoaW5lTm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+W3peWNleWPt+aIluacuuWPsOWPt+S4uuepuu+8jOi3s+i/h+iOt+WPluihqOWNleaVsOaNricpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0Zvcm0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICAgICAgICAgICAgICB3b3JrT3JkZXJObzogdGhpcy53b3JrT3JkZXJOby50cmltKCksXHJcbiAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVOby50cmltKClcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvTWVzQ3V0dGVyTGVkZ2VyL0dldEZvcm1EYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UgfHwgJ+iOt+WPluihqOWNleaVsOaNruWksei0pScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IEFycmF5LmlzQXJyYXkocmVzLmRhdGEpID8gcmVzLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAocmVzLmRhdGEgJiYgcmVzLmRhdGEudGJCaWxsTGlzdCkgPyByZXMuZGF0YS50YkJpbGxMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS5kYXRhKSA/IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZXRGaWVsZCA9IChvYmosIC4uLmtleXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIGlmIChvYmo/LltrXSAhPT0gdW5kZWZpbmVkICYmIG9iaj8uW2tdICE9PSBudWxsKSByZXR1cm4gb2JqW2tdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBwZWQgPSAobGlzdCB8fCBbXSkubWFwKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cFRpbWVSYXcgPSBnZXRGaWVsZCh0LCAndVBfVElNRScsICdVUF9USU1FJywgJ3VQVGltZScsICdVUFRJTUUnLCAnVXBUaW1lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvd25UaW1lUmF3ID0gZ2V0RmllbGQodCwgJ2Rvd05fVElNRScsICdET1dOX1RJTUUnLCAnZG93blRpbWUnLCAnRE9XTlRJTUUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlmZVdhcm5SYXcgPSBnZXRGaWVsZCh0LCAnbGlmRV9XQVJOJywgJ0xJRkVfV0FSTicsICdsaWZlV2FybicsICdMSUZFV0FSTicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q2pOdW0gPSBnZXRGaWVsZCh0LCAnY3VycmVudENqTnVtJywgJ0NVUlJFTlRDSk5VTScsICdDdXJyZW50Q2pOdW0nKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZUNvdW50ID0gZ2V0RmllbGQodCwgJ3VzRV9DT1VOVCcsICdVU0VfQ09VTlQnLCAndXNlQ291bnQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlTGltaXQgPSBnZXRGaWVsZCh0LCAndXNFX0xJTUlUJywgJ1VTRV9MSU1JVCcsICd1c2VMaW1pdCcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBlcmNlbnQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZUNvdW50ICE9IG51bGwgJiYgdXNlTGltaXQgIT0gbnVsbCAmJiAhaXNOYU4odXNlQ291bnQpICYmICFpc05hTih1c2VMaW1pdCkgJiYgTnVtYmVyKHVzZUxpbWl0KSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnQgPSAoKE51bWJlcih1c2VDb3VudCkgLyBOdW1iZXIodXNlTGltaXQpKSAqIDEwMCkudG9GaXhlZCgwKSArICclJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VOdW1iZXIgPSB2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSAnJykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKHYpLnJlcGxhY2UoL1ss77yFJV0vZywgJycpLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBwYXJzZUZsb2F0KHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKSA/IG4gOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXRQZXJjZW50ID0gbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA9PT0gbnVsbCB8fCBuID09PSB1bmRlZmluZWQgfHwgaXNOYU4obikpIHJldHVybiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuIDw9IDEpIHJldHVybiBgJHsobiAqIDEwMCkudG9GaXhlZCgwKX0lYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtOdW1iZXIobikudG9GaXhlZCgwKX0lYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlmZVdhcm5OdW0gPSBwYXJzZU51bWJlcihsaWZlV2FyblJhdyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2FyblN0YXR1cyA9IGdldEZpZWxkKHQsICdzdGF0dXMnLCAnU1RBVFVTJykgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaWZlV2Fybk51bSAhPT0gbnVsbCAmJiB1c2VDb3VudCAhPSBudWxsICYmIHVzZUxpbWl0ICE9IG51bGwgJiYgIWlzTmFOKHVzZUNvdW50KSAmJiAhaXNOYU4odXNlTGltaXQpICYmIE51bWJlcih1c2VMaW1pdCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwZXJjZW50TnVtID0gTnVtYmVyKHVzZUNvdW50KSAvIE51bWJlcih1c2VMaW1pdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU3RhdHVzID0gKHBlcmNlbnROdW0gPj0gbGlmZVdhcm5OdW0pID8gJ+mihOitpicgOiAn5q2j5bi4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMgPSB3YXJuU3RhdHVzIHx8ICfmnKrnn6UnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGdldEZpZWxkKHQsICdpZCcsICdJRCcpIHx8IGAke2dldEZpZWxkKHQsICdjdXR0ZVJfSUQnKSB8fCBnZXRGaWVsZCh0LCAnQ1VUVEVSX0lEJykgfHwgJyd9LSR7dXBUaW1lUmF3IHx8ICcnfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBubzogZ2V0RmllbGQodCwgJ2N1dHRlUl9JRCcsICdDVVRURVJfSUQnLCAnY3V0dGVySWQnLCAnbm8nKSB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldEZpZWxkKHQsICdjdXR0ZVJfTkFNRScsICdDVVRURVJfTkFNRScsICdjdXR0ZXJOYW1lJywgJ25hbWUnKSB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwVGltZTogdGhpcy5mb3JtYXREYXRlVGltZSh1cFRpbWVSYXcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBDb3VudDogZ2V0RmllbGQodCwgJ3VQX0NPVU5UJywgJ1VQX0NPVU5UJywgJ3VwQ291bnQnKSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25UaW1lOiB0aGlzLmZvcm1hdERhdGVUaW1lKGRvd25UaW1lUmF3KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25Db3VudDogZ2V0RmllbGQodCwgJ2Rvd05fQ09VTlQnLCAnRE9XTl9DT1VOVCcsICdkb3duQ291bnQnKSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNvdW50OiB1c2VDb3VudCA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxpbWl0OiB1c2VMaW1pdCA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZmVQZXJjZW50OiBwZXJjZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlmZVdhcm46IGZvcm1hdFBlcmNlbnQobGlmZVdhcm5OdW0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDak51bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyDmjInkuIrliIDml7bpl7TpmY3luo/mjpLluo/vvIjotormmZrnmoTotorkuIrpnaLvvIlcclxuICAgICAgICAgICAgICAgICAgICBtYXBwZWQuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZSA9IHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzKSByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoYCR7eWVhcn0tJHtzLnJlcGxhY2UoLy0vZywgJy0nKX06MDBgKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZShiLnVwVGltZSkgLSBwYXJzZShhLnVwVGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbFJlY29yZHMgPSBtYXBwZWQ7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+iOt+WPluihqOWNleaVsOaNrumUmeivrzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+iOt+WPluaVsOaNruWksei0pe+8jOivt+ajgOafpee9kee7nOi/nuaOpScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbFJlY29yZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRm9ybSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgZm9ybWF0RGF0ZVRpbWUoZGF0ZVRpbWVTdHIpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZGF0ZVRpbWVTdHIpIHJldHVybiAnJztcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IFN0cmluZyhkYXRlVGltZVN0cikudHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXlxcZHsxMH0kLy50ZXN0KHMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShOdW1iZXIocykgKiAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2QuZ2V0TW9udGgoKSArIDF9LSR7ZC5nZXREYXRlKCl9ICR7ZC5nZXRIb3VycygpfToke1N0cmluZyhkLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoL15cXGR7MTN9JC8udGVzdChzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoTnVtYmVyKHMpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2QuZ2V0TW9udGgoKSArIDF9LSR7ZC5nZXREYXRlKCl9ICR7ZC5nZXRIb3VycygpfToke1N0cmluZyhkLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVRpbWVTdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkYXRlLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2RhdGUuZ2V0SG91cnMoKX06JHtTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBTdHJpbmcoZGF0ZVRpbWVTdHIpLm1hdGNoKC8oXFxkezEsNH1bLVxcL11cXGR7MSwyfVstXFwvXVxcZHsxLDJ9KS4qPyhcXGR7MSwyfTpcXGR7Mn0pLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSByZXR1cm4gYCR7bWF0Y2hbMV0ucmVwbGFjZSgvLS9nLCAnLycpLnJlcGxhY2UoL15cXGR7NH1cXC8vLCAobSkgPT4gbSl9ICR7bWF0Y2hbMl19YDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGVUaW1lU3RyKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGF0ZVRpbWVTdHIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtb3VudGVkKCkge1xyXG4gICAgICAgICAgICB0aGlzLm1hY2hpbmVObyA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJykgfHwgJyc7XHJcbiAgICAgICAgICAgIHRoaXMud29ya09yZGVyTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2RhYTAwMScpIHx8ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubWFjaGluZU5vICYmIHRoaXMud29ya09yZGVyTm8pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hGb3JtRGF0YSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDov5vlhaXpobXpnaLml7botYvlgLznrKzkuIDooYwgY3VycmVudENqTnVtXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50b29sUmVjb3Jkc1swXSwgJ2N1cnJlbnRDak51bScsIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign5py65Y+w5Y+35oiW5bel5Y2V5Y+35Li656m677yM5peg5rOV6I635Y+W6KGo5Y2V5pWw5o2uJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbiAgICAucGFnZSB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDMycHg7XHJcbiAgICAgICAgbWFyZ2luOiAydmggMDtcclxuICAgIH1cclxuXHJcbiAgICAuc2F2ZS1idG4sIC5jYW5jZWwtYnRuLCAuZXhwYW5kLWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICBwYWRkaW5nOiAxLjV2aDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5leHBhbmQtYnRuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTJjNDFhO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuZXhwYW5kLWJ0bjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3M2QxM2Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZXhwYW5kLWJ0bjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg5ZTBkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAuY2FuY2VsLWJ0biB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuICAgICAgICBjb2xvcjogIzMzMztcclxuICAgIH1cclxuXHJcbiAgICAuc2F2ZS1idG46aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MGE5ZmY7XHJcbiAgICB9XHJcblxyXG4gICAgLnNhdmUtYnRuOmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5NmRkOTtcclxuICAgIH1cclxuXHJcbiAgICAuc2F2ZS1idG46ZGlzYWJsZWQsIC5jYW5jZWwtYnRuOmRpc2FibGVkLCAuZXhwYW5kLWJ0bjpkaXNhYmxlZCB7XHJcbiAgICAgICAgb3BhY2l0eTogMC42O1xyXG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAxdmggMDtcclxuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OyAvKiDpu5jorqTpq5jluqbvvIzlpKfnuqbmmL7npLozLTTooYwgKi9cclxuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XHJcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC50YWJsZS1zZWN0aW9uLmV4cGFuZGVkIHtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogODAwcHg7IC8qIOWxleW8gOaXtueahOmrmOW6pu+8jOWPr+S7peaYvuekuuabtOWkmuihjCAqL1xyXG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB0YWJsZS5zdHlsZWQtdGFibGUge1xyXG4gICAgICAgIG1heC13aWR0aDogMTgwMHB4O1xyXG4gICAgICAgIHdpZHRoOiA5OHZ3O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2JmYmZiZjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwwLDAsMC4wNik7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0aGVhZCB0aCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYmZiZmJmO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0Ym9keSB0ZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDEwcHg7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAudGFibGUtc2VjdGlvbiB0YWJsZSB0aDpmaXJzdC1jaGlsZCwgLnRhYmxlLXNlY3Rpb24gdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2JmYmZiZjtcclxuICAgIH1cclxuXHJcbiAgICAudGFibGUtc2VjdGlvbiB0YWJsZSB0aDpsYXN0LWNoaWxkLCAudGFibGUtc2VjdGlvbiB0YWJsZSB0ZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjYmZiZmJmO1xyXG4gICAgfVxyXG5cclxuICAgIC5yb3ctb2RkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucm93LW9kZCArIHRyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcclxuICAgICAgICB9XHJcblxyXG4gICAgLm51bSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxuICAgIH1cclxuXHJcbiAgICAubGVmdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuXHJcbiAgICAud2Fybi1jZWxsIHtcclxuICAgICAgICBjb2xvcjogI2Q5MzAyNTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAub2stY2VsbCB7XHJcbiAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICB9XHJcblxyXG4gICAgLndhcm4tYmFkZ2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY0ZDRmO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb3JlLXJlY29yZHMtdGlwIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICM2NjY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAubW9yZS1yZWNvcmRzLXRpcCBzcGFuIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgI2NjYztcclxuICAgICAgICB9XHJcblxyXG4gICAgLyog5ZON5bqU5byP6LCD5pW0ICovXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAgICAgLnNhdmUtYnRuLCAuY2FuY2VsLWJ0biwgLmV4cGFuZC1idG4ge1xyXG4gICAgICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///119\n");
/***/ }),
/* 120 */
--
Gitblit v1.9.3