From 40659a66c9858fcbc2aa92bbbfa5fb441c2d20c6 Mon Sep 17 00:00:00 2001 From: jt <jt@activesoft.com> Date: 星期四, 16 二月 2023 11:22:00 +0800 Subject: [PATCH] test --- unpackage/dist/dev/app-plus/app-service.js | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index d35f62d..9e81824 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -2051,7 +2051,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import {\n// \tmapState,\n// \tmapMutations,\n// \tmapActions ,\n// } from 'vuex'\nvar _default = {\n data: function data() {\n //鑾峰彇鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n var server = uni.getStorageSync('server');\n var account = uni.getStorageSync('account');\n var password = uni.getStorageSync('password');\n var url = this.$store.state.url;\n var username = this.$store.state.username;\n var userpwd = this.$store.state.userpwd;\n var ischecked = false;\n if (!server) server = url;\n if (!account) account = username;\n if (account && password) ischecked = true;\n // console.log(url);\n return {\n login: \"寮�鐧诲綍\",\n userServer: server,\n userName: account,\n userPwd: password,\n ischecked: ischecked,\n version: \"1.0.0\"\n };\n },\n // computed: mapState({\n // \t// 浠巗tate涓嬁鍒版暟鎹�绠ご鍑芥暟鍙娇浠g爜鏇寸畝缁僜n // \thasLogin: state => state.hasLogin,\n // \tloginprovider: state => state.loginProvider,\n // \tappinfo:state=>state.appInfo\n // }),\n methods: {\n // ...mapMutations({\n // \tmutatLogin:'login'\n // }),\n // ...mapActions({\n // \tactionLogin:'login'\n // }),\n inputDialogToggle: function inputDialogToggle() {\n this.$refs.inputDialog.open();\n },\n dialogInputConfirm: function dialogInputConfirm(val) {\n // console.log(val);\n // uni.showLoading({\n // \ttitle: '3绉掑悗浼氬叧闂�\n // })\n // setTimeout(() => {\n // uni.hideLoading();\n this.userServer = val;\n uni.setStorageSync('server', val);\n // this.value = val\n // 鍏抽棴绐楀彛鍚庯紝鎭㈠榛樿鍐呭\n this.$refs.inputDialog.close();\n // }, 3000)\n },\n rememberPwd: function rememberPwd(e) {\n //璁颁綇瀵嗙爜\n __f__(\"log\", e.target, \" at pages/login/index.vue:231\");\n uni.setStorageSync('account', '');\n uni.setStorageSync('password', '');\n if (e.target.value[0] == '1') {\n uni.setStorageSync('account', this.userName);\n uni.setStorageSync('password', this.userPwd);\n }\n },\n // getCookie(key){\n // \tif(document.cookie.length>0){\n // \t\tvar start = document.cookie.indexOf(key +'=');\n // \t\tif(start !== -1){\n // \t\t\tstart = start+key.length+1;\n // \t\t\tvar end = document.cookie.indexOf(';',start);\n // \t\t\tif(end === -1) end=document.cookie.length;\n // \t\t\treturn document.cookie.substring(start,end);\n // \t\t}\n // \t}\n // \treturn '';\n // },\n // setCookie(cName,value,expiredays){\n // \tvar exdate = new Date();\n // \texdate.setDate(exdate.getDate(),expiredays)\n // \tdocument.cookie = cName+'='+ documentURLComponent(value)+\n // \t((expiredays==null)?'':';expires='+exdate.toGMTString());\n // },\n logind: function logind() {\n var _this = this;\n if (!this.userServer) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ョ綉绔欏湴鍧�紝璇烽噸鏂伴厤缃緭鍏ワ紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!this.userName) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ョ敤鎴峰悕锛岃閲嶆柊杈撳叆锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!this.userPwd) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ュ瘑鐮侊紝璇烽噸鏂拌緭鍏ワ紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n //妫�煡 \"鐧诲綍鐘舵�/閿佸睆鐘舵�\" 缁撴潫\n var loginInfo = {\n server: this.userServer,\n uname: this.userName,\n pwd: this.userPwd,\n cname: plus.device.model,\n type: \"0\"\n };\n __f__(\"log\", loginInfo, \" at pages/login/index.vue:279\");\n this.$data.login = \"loading......\";\n //鐧诲綍\n this.$store.dispatch('login', loginInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/login/index.vue:284\");\n if (success.code == '00000') {\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶ser-鐢ㄦ埛淇℃伅\n uni.setStorageSync('server', loginInfo.server);\n // uni.setStorageSync('account',loginInfo.uname);\n // uni.setStorageSync('password',loginInfo.pwd);\n // this.mutatLogin({loginid:success});\n _this.$store.commit('login', {\n loginid: success\n });\n uni.navigateTo({\n url: '../index/index?args=9999999999'\n });\n // uni.redirectTo({\n // \turl:'../index/index?args=9999999999'\n // });\n _this.login = \"寮�鐧诲綍\";\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n _this.login = \"寮�鐧诲綍\";\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/login/index.vue:306\");\n uni.showModal({\n title: \"閿欒\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n _this.login = \"寮�鐧诲綍\";\n });\n }\n },\n onLoad: function onLoad() {\n var _this2 = this;\n plus.runtime.getProperty(plus.runtime.appid, function (info) {\n // console.log(info);\n _this2.$data.version = info.version;\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 */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJzZXJ2ZXIiLCJ1bmkiLCJnZXRTdG9yYWdlU3luYyIsImFjY291bnQiLCJwYXNzd29yZCIsInVybCIsIiRzdG9yZSIsInN0YXRlIiwidXNlcm5hbWUiLCJ1c2VycHdkIiwiaXNjaGVja2VkIiwibG9naW4iLCJ1c2VyU2VydmVyIiwidXNlck5hbWUiLCJ1c2VyUHdkIiwidmVyc2lvbiIsIm1ldGhvZHMiLCJpbnB1dERpYWxvZ1RvZ2dsZSIsIiRyZWZzIiwiaW5wdXREaWFsb2ciLCJvcGVuIiwiZGlhbG9nSW5wdXRDb25maXJtIiwidmFsIiwic2V0U3RvcmFnZVN5bmMiLCJjbG9zZSIsInJlbWVtYmVyUHdkIiwiZSIsInRhcmdldCIsInZhbHVlIiwibG9naW5kIiwic2hvd01vZGFsIiwidGl0bGUiLCJjb250ZW50Iiwic2hvd0NhbmNlbCIsImNvbmZpcm1UZXh0IiwibG9naW5JbmZvIiwidW5hbWUiLCJwd2QiLCJjbmFtZSIsInBsdXMiLCJkZXZpY2UiLCJtb2RlbCIsInR5cGUiLCIkZGF0YSIsImRpc3BhdGNoIiwidGhlbiIsInN1Y2Nlc3MiLCJjb2RlIiwiY29tbWl0IiwibG9naW5pZCIsIm5hdmlnYXRlVG8iLCJtc2ciLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwib25Mb2FkIiwicnVudGltZSIsImdldFByb3BlcnR5IiwiYXBwaWQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLGVBQ2U7RUFDZEEsSUFBSSxrQkFBRTtJQUNMO0lBQ0EsSUFBSUMsTUFBTSxHQUFHQyxHQUFHLENBQUNDLGNBQWMsQ0FBQyxRQUFRLENBQUM7SUFDekMsSUFBSUMsT0FBTyxHQUFHRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDM0MsSUFBSUUsUUFBUSxHQUFHSCxHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFDN0MsSUFBSUcsR0FBRyxHQUFHLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLENBQUNGLEdBQUc7SUFD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QUFDLENBQUMsQ0FBQ3lDLEtBQUssQ0FBQyxVQUFBQyxFQUFFLEVBQUU7UUFDWixhQUFZQSxFQUFFO1FBQ2RwRCxHQUFHLENBQUM2QixTQUFTLENBQUM7VUFBQ0MsS0FBSyxFQUFDLElBQUk7VUFBQ0MsT0FBTyxFQUFDcUIsRUFBRSxDQUFDQyxNQUFNO1VBQUNyQixVQUFVLEVBQUMsS0FBSztVQUFDQyxXQUFXLEVBQUM7UUFBSSxDQUFDLENBQUM7UUFDL0UsS0FBSSxDQUFDdkIsS0FBSyxHQUFDLE1BQU07TUFDbEIsQ0FBQyxDQUFDO0lBQ0g7RUFDRCxDQUFDO0VBQ0Q0QyxNQUFNLG9CQUFHO0lBQUE7SUFDUmhCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDbEIsSUFBSSxDQUFDaUIsT0FBTyxDQUFDRSxLQUFLLEVBQUMsVUFBQ0MsSUFBSSxFQUFHO01BQ25EO01BQ0EsTUFBSSxDQUFDaEIsS0FBSyxDQUFDNUIsT0FBTyxHQUFDNEMsSUFBSSxDQUFDNUMsT0FBTztJQUNoQyxDQUFDLENBQUM7RUFDSDtBQUNELENBQUM7QUFBQSwyQiIsImZpbGUiOiI1MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG4vLyBpbXBvcnQge1xuLy8gXHRtYXBTdGF0ZSxcbi8vIFx0bWFwTXV0YXRpb25zLFxuLy8gXHRtYXBBY3Rpb25zICxcbi8vIH0gZnJvbSAndnVleCdcbmV4cG9ydCBkZWZhdWx0IHtcblx0ZGF0YSgpe1xuXHRcdC8v6I635Y+W5YWo5bGA5Y+C5pWw77yadXJsLeacjeWKoeWZqOWcsOWdgFxuXHRcdHZhciBzZXJ2ZXIgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3NlcnZlcicpO1xuXHRcdHZhciBhY2NvdW50ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdhY2NvdW50Jyk7XG5cdFx0dmFyIHBhc3N3b3JkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdwYXNzd29yZCcpO1xuXHRcdHZhciB1cmwgPSB0aGlzLiRzdG9yZS5zdGF0ZS51cmw7XG5cdFx0dmFyIHVzZXJuYW1lID0gdGhpcy4kc3RvcmUuc3RhdGUudXNlcm5hbWU7XG5cdFx0dmFyIHVzZXJwd2QgPSB0aGlzLiRzdG9yZS5zdGF0ZS51c2VycHdkO1xuXHRcdHZhciBpc2NoZWNrZWQ9ZmFsc2U7XG5cdFx0aWYoIXNlcnZlcilcblx0XHRcdHNlcnZlciA9IHVybDtcblx0XHRpZighYWNjb3VudClcblx0XHRcdGFjY291bnQgPSB1c2VybmFtZTtcblx0XHRpZihhY2NvdW50ICYmIHBhc3N3b3JkKVxuXHRcdFx0aXNjaGVja2VkPXRydWU7XG5cdFx0Ly8gY29uc29sZS5sb2codXJsKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bG9naW46XCLlvIDlp4vnmbvlvZVcIixcblx0XHRcdHVzZXJTZXJ2ZXI6c2VydmVyLFxuXHRcdFx0dXNlck5hbWU6YWNjb3VudCxcblx0XHRcdHVzZXJQd2Q6cGFzc3dvcmQsXG5cdFx0XHRpc2NoZWNrZWQ6aXNjaGVja2VkLFxuXHRcdFx0dmVyc2lvbjpcIjEuMC4wXCIsXG5cdFx0fVxuXHR9LFxuXHQvLyBjb21wdXRlZDogbWFwU3RhdGUoe1xuXHQvLyBcdC8vIOS7jnN0YXRl5Lit5ou/5Yiw5pWw5o2uIOeureWktOWHveaVsOWPr+S9v+S7o+eggeabtOeugOe7g1xuXHQvLyBcdGhhc0xvZ2luOiBzdGF0ZSA9PiBzdGF0ZS5oYXNMb2dpbixcblx0Ly8gXHRsb2dpbnByb3ZpZGVyOiBzdGF0ZSA9PiBzdGF0ZS5sb2dpblByb3ZpZGVyLFxuXHQvLyBcdGFwcGluZm86c3RhdGU9PnN0YXRlLmFwcEluZm9cblx0Ly8gfSksXG5cdG1ldGhvZHM6e1xuXHRcdC8vIC4uLm1hcE11dGF0aW9ucyh7XG5cdFx0Ly8gXHRtdXRhdExvZ2luOidsb2dpbidcblx0XHQvLyB9KSxcblx0XHQvLyAuLi5tYXBBY3Rpb25zKHtcblx0XHQvLyBcdGFjdGlvbkxvZ2luOidsb2dpbidcblx0XHQvLyB9KSxcblx0XHRpbnB1dERpYWxvZ1RvZ2dsZSgpIHtcblx0XHRcdHRoaXMuJHJlZnMuaW5wdXREaWFsb2cub3BlbigpXG5cdFx0fSxcblx0XHRkaWFsb2dJbnB1dENvbmZpcm0odmFsKSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyh2YWwpO1xuXHRcdFx0Ly8gdW5pLnNob3dMb2FkaW5nKHtcblx0XHRcdC8vIFx0dGl0bGU6ICcz56eS5ZCO5Lya5YWz6ZetJ1xuXHRcdFx0Ly8gfSlcblx0XHRcdC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Ly8gdW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHR0aGlzLnVzZXJTZXJ2ZXIgPSB2YWw7XG5cdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3NlcnZlcicsdmFsKTtcblx0XHRcdC8vIHRoaXMudmFsdWUgPSB2YWxcblx0XHRcdC8vIOWFs+mXreeql+WPo+WQju+8jOaBouWkjem7mOiupOWGheWuuVxuXHRcdFx0dGhpcy4kcmVmcy5pbnB1dERpYWxvZy5jbG9zZSgpXG5cdFx0XHQvLyB9LCAzMDAwKVxuXHRcdH0sXG5cdFx0cmVtZW1iZXJQd2QoZSl7ICAvL+iusOS9j+WvhueggVxuXHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdhY2NvdW50JywnJyk7XG5cdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3Bhc3N3b3JkJywnJyk7XG5cdFx0XHRpZihlLnRhcmdldC52YWx1ZVswXT09JzEnKXtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdhY2NvdW50Jyx0aGlzLnVzZXJOYW1lKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwYXNzd29yZCcsdGhpcy51c2VyUHdkKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8vIGdldENvb2tpZShrZXkpe1xuXHRcdC8vIFx0aWYoZG9jdW1lbnQuY29va2llLmxlbmd0aD4wKXtcblx0XHQvLyBcdFx0dmFyIHN0YXJ0ID0gZG9jdW1lbnQuY29va2llLmluZGV4T2Yoa2V5ICsnPScpO1xuXHRcdC8vIFx0XHRpZihzdGFydCAhPT0gLTEpe1xuXHRcdC8vIFx0XHRcdHN0YXJ0ID0gc3RhcnQra2V5Lmxlbmd0aCsxO1xuXHRcdC8vIFx0XHRcdHZhciBlbmQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZignOycsc3RhcnQpO1xuXHRcdC8vIFx0XHRcdGlmKGVuZCA9PT0gLTEpIGVuZD1kb2N1bWVudC5jb29raWUubGVuZ3RoO1xuXHRcdC8vIFx0XHRcdHJldHVybiBkb2N1bWVudC5jb29raWUuc3Vic3RyaW5nKHN0YXJ0LGVuZCk7XG5cdFx0Ly8gXHRcdH1cblx0XHQvLyBcdH1cblx0XHQvLyBcdHJldHVybiAnJztcblx0XHQvLyB9LFxuXHRcdC8vIHNldENvb2tpZShjTmFtZSx2YWx1ZSxleHBpcmVkYXlzKXtcblx0XHQvLyBcdHZhciBleGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdC8vIFx0ZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERhdGUoKSxleHBpcmVkYXlzKVxuXHRcdC8vIFx0ZG9jdW1lbnQuY29va2llID0gY05hbWUrJz0nKyBkb2N1bWVudFVSTENvbXBvbmVudCh2YWx1ZSkrXG5cdFx0Ly8gXHQoKGV4cGlyZWRheXM9PW51bGwpPycnOic7ZXhwaXJlcz0nK2V4ZGF0ZS50b0dNVFN0cmluZygpKTtcblx0XHRcdFxuXHRcdC8vIH0sXG5cdFx0bG9naW5kKCl7XG5cdFx0XHRpZighdGhpcy51c2VyU2VydmVyKXtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5pyq6L6T5YWl572R56uZ5Zyw5Z2A77yM6K+36YeN5paw6YWN572u6L6T5YWl77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmKCF0aGlzLnVzZXJOYW1lKXtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5pyq6L6T5YWl55So5oi35ZCN77yM6K+36YeN5paw6L6T5YWl77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmKCF0aGlzLnVzZXJQd2Qpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmnKrovpPlhaXlr4bnoIHvvIzor7fph43mlrDovpPlhaXvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Ly/mo4Dmn6UgXCLnmbvlvZXnirbmgIEv6ZSB5bGP54q25oCBXCIg57uT5p2fXG5cdFx0XHR2YXIgbG9naW5JbmZvID0ge1xuXHRcdFx0XHRzZXJ2ZXI6IHRoaXMudXNlclNlcnZlcixcblx0XHRcdFx0dW5hbWU6IHRoaXMudXNlck5hbWUsXG5cdFx0XHRcdHB3ZDogdGhpcy51c2VyUHdkLFxuXHRcdFx0XHRjbmFtZTogcGx1cy5kZXZpY2UubW9kZWwsXG5cdFx0XHRcdHR5cGU6XCIwXCJcblx0XHRcdH07XG5cdFx0XHRjb25zb2xlLmxvZyhsb2dpbkluZm8pO1xuXHRcdFx0XG5cdFx0XHR0aGlzLiRkYXRhLmxvZ2luPVwibG9hZGluZy4uLi4uLlwiO1xuXHRcdFx0Ly/nmbvlvZVcblx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdsb2dpbicsbG9naW5JbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdGlmIChzdWNjZXNzLmNvZGUgPT0gJzAwMDAwJykge1xuXHRcdFx0XHRcdC8v6K6+572u5YWo5bGA5Y+C5pWw77yadXNlci3nlKjmiLfkv6Hmga9cblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3NlcnZlcicsbG9naW5JbmZvLnNlcnZlcik7XG5cdFx0XHRcdFx0Ly8gdW5pLnNldFN0b3JhZ2VTeW5jKCdhY2NvdW50Jyxsb2dpbkluZm8udW5hbWUpO1xuXHRcdFx0XHRcdC8vIHVuaS5zZXRTdG9yYWdlU3luYygncGFzc3dvcmQnLGxvZ2luSW5mby5wd2QpO1xuXHRcdFx0XHRcdC8vIHRoaXMubXV0YXRMb2dpbih7bG9naW5pZDpzdWNjZXNzfSk7XG5cdFx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdsb2dpbicse1xuXHRcdFx0XHRcdFx0bG9naW5pZDpzdWNjZXNzIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHRcdHVybDonLi4vaW5kZXgvaW5kZXg/YXJncz05OTk5OTk5OTk5J1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0Ly8gdW5pLnJlZGlyZWN0VG8oe1xuXHRcdFx0XHRcdC8vIFx0dXJsOicuLi9pbmRleC9pbmRleD9hcmdzPTk5OTk5OTk5OTknXG5cdFx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdFx0dGhpcy5sb2dpbj1cIuW8gOWni+eZu+W9lVwiO1xuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivr1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0dGhpcy5sb2dpbj1cIuW8gOWni+eZu+W9lVwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHRoaXMubG9naW49XCLlvIDlp4vnmbvlvZVcIjtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblx0b25Mb2FkKCkge1xuXHRcdHBsdXMucnVudGltZS5nZXRQcm9wZXJ0eShwbHVzLnJ1bnRpbWUuYXBwaWQsKGluZm8pPT57XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhpbmZvKTtcblx0XHRcdHRoaXMuJGRhdGEudmVyc2lvbj1pbmZvLnZlcnNpb247XG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///51\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import {\n// \tmapState,\n// \tmapMutations,\n// \tmapActions ,\n// } from 'vuex'\nvar _default = {\n data: function data() {\n //鑾峰彇鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n var server = uni.getStorageSync('server');\n var account = uni.getStorageSync('account');\n var password = uni.getStorageSync('password');\n var url = this.$store.state.url;\n var username = this.$store.state.username;\n var userpwd = this.$store.state.userpwd;\n var ischecked = false;\n if (!server) server = url;\n if (!account) account = username;\n if (account && password) ischecked = true;\n // console.log(url);\n return {\n login: \"寮�鐧诲綍\",\n userServer: server,\n userName: account,\n userPwd: password,\n ischecked: ischecked,\n version: \"1.0.0\"\n };\n },\n // computed: mapState({\n // \t// 浠巗tate涓嬁鍒版暟鎹�绠ご鍑芥暟鍙娇浠g爜鏇寸畝缁僜n // \thasLogin: state => state.hasLogin,\n // \tloginprovider: state => state.loginProvider,\n // \tappinfo:state=>state.appInfo\n // }),\n methods: {\n // ...mapMutations({\n // \tmutatLogin:'login'\n // }),\n // ...mapActions({\n // \tactionLogin:'login'\n // }),\n inputDialogToggle: function inputDialogToggle() {\n this.$refs.inputDialog.open();\n },\n dialogInputConfirm: function dialogInputConfirm(val) {\n // console.log(val);\n // uni.showLoading({\n // \ttitle: '3绉掑悗浼氬叧闂�\n // })\n // setTimeout(() => {\n // uni.hideLoading();\n this.userServer = val;\n uni.setStorageSync('server', val);\n // this.value = val\n // 鍏抽棴绐楀彛鍚庯紝鎭㈠榛樿鍐呭\n this.$refs.inputDialog.close();\n // }, 3000)\n },\n rememberPwd: function rememberPwd(e) {\n //璁颁綇瀵嗙爜\n __f__(\"log\", e.target, \" at pages/login/index.vue:231\");\n uni.setStorageSync('account', '');\n uni.setStorageSync('password', '');\n if (e.target.value[0] == '1') {\n uni.setStorageSync('account', this.userName);\n uni.setStorageSync('password', this.userPwd);\n }\n },\n // getCookie(key){\n // \tif(document.cookie.length>0){\n // \t\tvar start = document.cookie.indexOf(key +'=');\n // \t\tif(start !== -1){\n // \t\t\tstart = start+key.length+1;\n // \t\t\tvar end = document.cookie.indexOf(';',start);\n // \t\t\tif(end === -1) end=document.cookie.length;\n // \t\t\treturn document.cookie.substring(start,end);\n // \t\t}\n // \t}\n // \treturn '';\n // },\n // setCookie(cName,value,expiredays){\n // \tvar exdate = new Date();\n // \texdate.setDate(exdate.getDate(),expiredays)\n // \tdocument.cookie = cName+'='+ documentURLComponent(value)+\n // \t((expiredays==null)?'':';expires='+exdate.toGMTString());\n // },\n logind: function logind() {\n var _this = this;\n if (!this.userServer) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ョ綉绔欏湴鍧�紝璇烽噸鏂伴厤缃緭鍏ワ紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!this.userName) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ョ敤鎴峰悕锛岃閲嶆柊杈撳叆锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!this.userPwd) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈緭鍏ュ瘑鐮侊紝璇烽噸鏂拌緭鍏ワ紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n //妫�煡 \"鐧诲綍鐘舵�/閿佸睆鐘舵�\" 缁撴潫\n var loginInfo = {\n server: this.userServer,\n uname: this.userName,\n pwd: this.userPwd,\n cname: plus.device.model,\n type: \"0\"\n };\n __f__(\"log\", loginInfo, \" at pages/login/index.vue:279\");\n this.$data.login = \"loading......\";\n //鐧诲綍\n this.$store.dispatch('login', loginInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/login/index.vue:284\");\n if (success.code == '00000') {\n //鐧诲綍鎴愬姛鍚庢竻绌虹紦瀛樻暟鎹甛n _this.$store.commit(\"areaFunc\", null);\n _this.$store.commit(\"classAttrList\", null);\n _this.$store.commit(\"classGridStyleInfo\", null);\n _this.$store.commit(\"dicValueInfo\", null);\n _this.$store.commit(\"subClassAttrList\", null);\n _this.$store.commit(\"subClassGridStyleInfo\", null);\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶ser-鐢ㄦ埛淇℃伅\n uni.setStorageSync('server', loginInfo.server);\n uni.setStorageSync('account', loginInfo.uname);\n uni.setStorageSync('password', loginInfo.pwd);\n // this.mutatLogin({loginid:success});\n _this.$store.commit('login', {\n loginid: success\n });\n uni.navigateTo({\n url: '../index/index?args=9999999999'\n });\n // uni.redirectTo({\n // \turl:'../index/index?args=9999999999'\n // });\n _this.login = \"寮�鐧诲綍\";\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n _this.login = \"寮�鐧诲綍\";\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/login/index.vue:314\");\n uni.showModal({\n title: \"閿欒\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n _this.login = \"寮�鐧诲綍\";\n });\n }\n },\n onLoad: function onLoad() {\n var _this2 = this;\n plus.runtime.getProperty(plus.runtime.appid, function (info) {\n // console.log(info);\n _this2.$data.version = info.version;\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 */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJzZXJ2ZXIiLCJ1bmkiLCJnZXRTdG9yYWdlU3luYyIsImFjY291bnQiLCJwYXNzd29yZCIsInVybCIsIiRzdG9yZSIsInN0YXRlIiwidXNlcm5hbWUiLCJ1c2VycHdkIiwiaXNjaGVja2VkIiwibG9naW4iLCJ1c2VyU2VydmVyIiwidXNlck5hbWUiLCJ1c2VyUHdkIiwidmVyc2lvbiIsIm1ldGhvZHMiLCJpbnB1dERpYWxvZ1RvZ2dsZSIsIiRyZWZzIiwiaW5wdXREaWFsb2ciLCJvcGVuIiwiZGlhbG9nSW5wdXRDb25maXJtIiwidmFsIiwic2V0U3RvcmFnZVN5bmMiLCJjbG9zZSIsInJlbWVtYmVyUHdkIiwiZSIsInRhcmdldCIsInZhbHVlIiwibG9naW5kIiwic2hvd01vZGFsIiwidGl0bGUiLCJjb250ZW50Iiwic2hvd0NhbmNlbCIsImNvbmZpcm1UZXh0IiwibG9naW5JbmZvIiwidW5hbWUiLCJwd2QiLCJjbmFtZSIsInBsdXMiLCJkZXZpY2UiLCJtb2RlbCIsInR5cGUiLCIkZGF0YSIsImRpc3BhdGNoIiwidGhlbiIsInN1Y2Nlc3MiLCJjb2RlIiwiY29tbWl0IiwibG9naW5pZCIsIm5hdmlnYXRlVG8iLCJtc2ciLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwib25Mb2FkIiwicnVudGltZSIsImdldFByb3BlcnR5IiwiYXBwaWQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLGVBQ2U7RUFDZEEsSUFBSSxrQkFBRTtJQUNMO0lBQ0EsSUFBSUMsTUFBTSxHQUFHQyxHQUFHLENBQUNDLGNBQWMsQ0FBQyxRQUFRLENBQUM7SUFDekMsSUFBSUMsT0FBTyxHQUFHRixHQUFHLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDM0MsSUFBSUUsUUFBUSxHQUFHSCxHQUFHLENBQUNDLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFDN0MsSUFBSUcsR0FBRyxHQUFHLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLENBQUNGLEdBQUc7SUFD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QUM0QyxJQUFJLENBQUM1QyxPQUFPO0lBQ2hDLENBQUMsQ0FBQztFQUNIO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbi8vIGltcG9ydCB7XG4vLyBcdG1hcFN0YXRlLFxuLy8gXHRtYXBNdXRhdGlvbnMsXG4vLyBcdG1hcEFjdGlvbnMgLFxuLy8gfSBmcm9tICd2dWV4J1xuZXhwb3J0IGRlZmF1bHQge1xuXHRkYXRhKCl7XG5cdFx0Ly/ojrflj5blhajlsYDlj4LmlbDvvJp1cmwt5pyN5Yqh5Zmo5Zyw5Z2AXG5cdFx0dmFyIHNlcnZlciA9IHVuaS5nZXRTdG9yYWdlU3luYygnc2VydmVyJyk7XG5cdFx0dmFyIGFjY291bnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2FjY291bnQnKTtcblx0XHR2YXIgcGFzc3dvcmQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Bhc3N3b3JkJyk7XG5cdFx0dmFyIHVybCA9IHRoaXMuJHN0b3JlLnN0YXRlLnVybDtcblx0XHR2YXIgdXNlcm5hbWUgPSB0aGlzLiRzdG9yZS5zdGF0ZS51c2VybmFtZTtcblx0XHR2YXIgdXNlcnB3ZCA9IHRoaXMuJHN0b3JlLnN0YXRlLnVzZXJwd2Q7XG5cdFx0dmFyIGlzY2hlY2tlZD1mYWxzZTtcblx0XHRpZighc2VydmVyKVxuXHRcdFx0c2VydmVyID0gdXJsO1xuXHRcdGlmKCFhY2NvdW50KVxuXHRcdFx0YWNjb3VudCA9IHVzZXJuYW1lO1xuXHRcdGlmKGFjY291bnQgJiYgcGFzc3dvcmQpXG5cdFx0XHRpc2NoZWNrZWQ9dHJ1ZTtcblx0XHQvLyBjb25zb2xlLmxvZyh1cmwpO1xuXHRcdHJldHVybiB7XG5cdFx0XHRsb2dpbjpcIuW8gOWni+eZu+W9lVwiLFxuXHRcdFx0dXNlclNlcnZlcjpzZXJ2ZXIsXG5cdFx0XHR1c2VyTmFtZTphY2NvdW50LFxuXHRcdFx0dXNlclB3ZDpwYXNzd29yZCxcblx0XHRcdGlzY2hlY2tlZDppc2NoZWNrZWQsXG5cdFx0XHR2ZXJzaW9uOlwiMS4wLjBcIixcblx0XHR9XG5cdH0sXG5cdC8vIGNvbXB1dGVkOiBtYXBTdGF0ZSh7XG5cdC8vIFx0Ly8g5LuOc3RhdGXkuK3mi7/liLDmlbDmja4g566t5aS05Ye95pWw5Y+v5L2/5Luj56CB5pu0566A57uDXG5cdC8vIFx0aGFzTG9naW46IHN0YXRlID0+IHN0YXRlLmhhc0xvZ2luLFxuXHQvLyBcdGxvZ2lucHJvdmlkZXI6IHN0YXRlID0+IHN0YXRlLmxvZ2luUHJvdmlkZXIsXG5cdC8vIFx0YXBwaW5mbzpzdGF0ZT0+c3RhdGUuYXBwSW5mb1xuXHQvLyB9KSxcblx0bWV0aG9kczp7XG5cdFx0Ly8gLi4ubWFwTXV0YXRpb25zKHtcblx0XHQvLyBcdG11dGF0TG9naW46J2xvZ2luJ1xuXHRcdC8vIH0pLFxuXHRcdC8vIC4uLm1hcEFjdGlvbnMoe1xuXHRcdC8vIFx0YWN0aW9uTG9naW46J2xvZ2luJ1xuXHRcdC8vIH0pLFxuXHRcdGlucHV0RGlhbG9nVG9nZ2xlKCkge1xuXHRcdFx0dGhpcy4kcmVmcy5pbnB1dERpYWxvZy5vcGVuKClcblx0XHR9LFxuXHRcdGRpYWxvZ0lucHV0Q29uZmlybSh2YWwpIHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKHZhbCk7XG5cdFx0XHQvLyB1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0Ly8gXHR0aXRsZTogJzPnp5LlkI7kvJrlhbPpl60nXG5cdFx0XHQvLyB9KVxuXHRcdFx0Ly8gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHQvLyB1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdHRoaXMudXNlclNlcnZlciA9IHZhbDtcblx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnc2VydmVyJyx2YWwpO1xuXHRcdFx0Ly8gdGhpcy52YWx1ZSA9IHZhbFxuXHRcdFx0Ly8g5YWz6Zet56qX5Y+j5ZCO77yM5oGi5aSN6buY6K6k5YaF5a65XG5cdFx0XHR0aGlzLiRyZWZzLmlucHV0RGlhbG9nLmNsb3NlKClcblx0XHRcdC8vIH0sIDMwMDApXG5cdFx0fSxcblx0XHRyZW1lbWJlclB3ZChlKXsgIC8v6K6w5L2P5a+G56CBXG5cdFx0XHRjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2FjY291bnQnLCcnKTtcblx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygncGFzc3dvcmQnLCcnKTtcblx0XHRcdGlmKGUudGFyZ2V0LnZhbHVlWzBdPT0nMScpe1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2FjY291bnQnLHRoaXMudXNlck5hbWUpO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3Bhc3N3b3JkJyx0aGlzLnVzZXJQd2QpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Ly8gZ2V0Q29va2llKGtleSl7XG5cdFx0Ly8gXHRpZihkb2N1bWVudC5jb29raWUubGVuZ3RoPjApe1xuXHRcdC8vIFx0XHR2YXIgc3RhcnQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZihrZXkgKyc9Jyk7XG5cdFx0Ly8gXHRcdGlmKHN0YXJ0ICE9PSAtMSl7XG5cdFx0Ly8gXHRcdFx0c3RhcnQgPSBzdGFydCtrZXkubGVuZ3RoKzE7XG5cdFx0Ly8gXHRcdFx0dmFyIGVuZCA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCc7JyxzdGFydCk7XG5cdFx0Ly8gXHRcdFx0aWYoZW5kID09PSAtMSkgZW5kPWRvY3VtZW50LmNvb2tpZS5sZW5ndGg7XG5cdFx0Ly8gXHRcdFx0cmV0dXJuIGRvY3VtZW50LmNvb2tpZS5zdWJzdHJpbmcoc3RhcnQsZW5kKTtcblx0XHQvLyBcdFx0fVxuXHRcdC8vIFx0fVxuXHRcdC8vIFx0cmV0dXJuICcnO1xuXHRcdC8vIH0sXG5cdFx0Ly8gc2V0Q29va2llKGNOYW1lLHZhbHVlLGV4cGlyZWRheXMpe1xuXHRcdC8vIFx0dmFyIGV4ZGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0Ly8gXHRleGRhdGUuc2V0RGF0ZShleGRhdGUuZ2V0RGF0ZSgpLGV4cGlyZWRheXMpXG5cdFx0Ly8gXHRkb2N1bWVudC5jb29raWUgPSBjTmFtZSsnPScrIGRvY3VtZW50VVJMQ29tcG9uZW50KHZhbHVlKStcblx0XHQvLyBcdCgoZXhwaXJlZGF5cz09bnVsbCk/Jyc6JztleHBpcmVzPScrZXhkYXRlLnRvR01UU3RyaW5nKCkpO1xuXHRcdFx0XG5cdFx0Ly8gfSxcblx0XHRsb2dpbmQoKXtcblx0XHRcdGlmKCF0aGlzLnVzZXJTZXJ2ZXIpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmnKrovpPlhaXnvZHnq5nlnLDlnYDvvIzor7fph43mlrDphY3nva7ovpPlhaXvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYoIXRoaXMudXNlck5hbWUpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmnKrovpPlhaXnlKjmiLflkI3vvIzor7fph43mlrDovpPlhaXvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYoIXRoaXMudXNlclB3ZCl7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuacqui+k+WFpeWvhuegge+8jOivt+mHjeaWsOi+k+WFpe+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHQvL+ajgOafpSBcIueZu+W9leeKtuaAgS/plIHlsY/nirbmgIFcIiDnu5PmnZ9cblx0XHRcdHZhciBsb2dpbkluZm8gPSB7XG5cdFx0XHRcdHNlcnZlcjogdGhpcy51c2VyU2VydmVyLFxuXHRcdFx0XHR1bmFtZTogdGhpcy51c2VyTmFtZSxcblx0XHRcdFx0cHdkOiB0aGlzLnVzZXJQd2QsXG5cdFx0XHRcdGNuYW1lOiBwbHVzLmRldmljZS5tb2RlbCxcblx0XHRcdFx0dHlwZTpcIjBcIlxuXHRcdFx0fTtcblx0XHRcdGNvbnNvbGUubG9nKGxvZ2luSW5mbyk7XG5cdFx0XHRcblx0XHRcdHRoaXMuJGRhdGEubG9naW49XCJsb2FkaW5nLi4uLi4uXCI7XG5cdFx0XHQvL+eZu+W9lVxuXHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2xvZ2luJyxsb2dpbkluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZSA9PSAnMDAwMDAnKSB7XG5cdFx0XHRcdFx0Ly/nmbvlvZXmiJDlip/lkI7muIXnqbrnvJPlrZjmlbDmja5cblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJhcmVhRnVuY1wiLG51bGwpO1xuXHRcdFx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdChcImNsYXNzQXR0ckxpc3RcIixudWxsKTtcblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJjbGFzc0dyaWRTdHlsZUluZm9cIixudWxsKTtcblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJkaWNWYWx1ZUluZm9cIixudWxsKTtcblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJzdWJDbGFzc0F0dHJMaXN0XCIsbnVsbCk7XG5cdFx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KFwic3ViQ2xhc3NHcmlkU3R5bGVJbmZvXCIsbnVsbCk7XG5cdFx0XHRcdFx0Ly/orr7nva7lhajlsYDlj4LmlbDvvJp1c2VyLeeUqOaIt+S/oeaBr1xuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnc2VydmVyJyxsb2dpbkluZm8uc2VydmVyKTtcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2FjY291bnQnLGxvZ2luSW5mby51bmFtZSk7XG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwYXNzd29yZCcsbG9naW5JbmZvLnB3ZCk7XG5cdFx0XHRcdFx0Ly8gdGhpcy5tdXRhdExvZ2luKHtsb2dpbmlkOnN1Y2Nlc3N9KTtcblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2xvZ2luJyx7XG5cdFx0XHRcdFx0XHRsb2dpbmlkOnN1Y2Nlc3MgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdFx0dXJsOicuLi9pbmRleC9pbmRleD9hcmdzPTk5OTk5OTk5OTknXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQvLyB1bmkucmVkaXJlY3RUbyh7XG5cdFx0XHRcdFx0Ly8gXHR1cmw6Jy4uL2luZGV4L2luZGV4P2FyZ3M9OTk5OTk5OTk5OSdcblx0XHRcdFx0XHQvLyB9KTtcblx0XHRcdFx0XHR0aGlzLmxvZ2luPVwi5byA5aeL55m75b2VXCI7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR0aGlzLmxvZ2luPVwi5byA5aeL55m75b2VXCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0dGhpcy5sb2dpbj1cIuW8gOWni+eZu+W9lVwiO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHRvbkxvYWQoKSB7XG5cdFx0cGx1cy5ydW50aW1lLmdldFByb3BlcnR5KHBsdXMucnVudGltZS5hcHBpZCwoaW5mbyk9Pntcblx0XHRcdC8vIGNvbnNvbGUubG9nKGluZm8pO1xuXHRcdFx0dGhpcy4kZGF0YS52ZXJzaW9uPWluZm8udmVyc2lvbjtcblx0XHR9KTtcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n"); /***/ }), /* 52 */ @@ -2240,7 +2240,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 onNavigationBarButtonTap: function onNavigationBarButtonTap(e) {\n // console.log(e.text);\n // console.log(e.fontSize);\n this.$store.state.areaFunc = '';\n this.$store.commit(\"classAttrList\", null);\n this.$store.commit(\"classGridStyleInfo\", null);\n this.$store.commit(\"dicValueInfo\", null);\n //鍒锋柊褰撳墠椤甸潰\n // location.reload();\n uni.redirectTo({\n url: '../index/index?args=9999999999'\n });\n },\n data: function data() {\n return {\n title: 'Hello',\n data: []\n };\n },\n onLoad: function onLoad(options) {\n var _this = this;\n __f__(\"log\", options, \" at pages/index/index.vue:106\");\n\n // 鑾峰彇鎵�湁AppType=\"MES\",ClientType=\"2\"(PDA)鐨勫紩鐢ㄩ鍩熷姛鑳界偣淇℃伅\n if (this.$store.state.areaFunc) this.data = this.$store.state.areaFunc.data;else this.$store.dispatch('areaFunc', {}).then(function (success) {\n __f__(\"log\", success, \" at pages/index/index.vue:113\");\n if (success.code == '00000') {\n _this.data = success.data;\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n\n // var data = {\n // \t\tin1:\"ll1\",\n // \t\tin2:\"ll2\",\n // \t\tin3:\"ll3\",\n // \t\tin4:\"ll4\",\n // \t\tin5:\"ll5\",\n // \t\tin6:\"ll6\",\n // \t};\n // for(var i in data)\n // \tthis.$data.keys.push(i)\n // this.$data.data = data;\n // console.log(this.$data.keys);\n },\n\n methods: {\n appCreate: function appCreate(app) {\n //鐐瑰嚮鍔熻兘鐐硅烦杞〉闈n __f__(\"log\", app, \" at pages/index/index.vue:139\");\n if (!app.Param) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃弬鏁帮紝璇烽噸鏂伴厤缃弬鏁帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (app.DefCode == '3018') {\n uni.navigateTo({\n url: '../modal/classAttr?param=' + app.Param + \"&titlename=\" + app.Name\n });\n } else if (app.DefCode == '3037') {\n uni.navigateTo({\n url: '../modal/ms_classAttr?param=' + app.Param + \"&titlename=\" + app.Name\n });\n }\n // uni.redirectTo({\n // \turl:'../index/index?args=9999999999'\n // });\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n // console.log(e.target)\n getApp().onScan(function (result) {\n // console.log(result.decodedata);\n _this2.$data.data[e.target.dataset['key']] = result.decodedata;\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbIm9uTmF2aWdhdGlvbkJhckJ1dHRvblRhcCIsImUiLCIkc3RvcmUiLCJzdGF0ZSIsImFyZWFGdW5jIiwiY29tbWl0IiwidW5pIiwicmVkaXJlY3RUbyIsInVybCIsImRhdGEiLCJ0aXRsZSIsIm9uTG9hZCIsIm9wdGlvbnMiLCJkaXNwYXRjaCIsInRoZW4iLCJzdWNjZXNzIiwiY29kZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJtc2ciLCJzaG93Q2FuY2VsIiwiY29uZmlybVRleHQiLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwibWV0aG9kcyIsImFwcENyZWF0ZSIsImFwcCIsIlBhcmFtIiwiRGVmQ29kZSIsIm5hdmlnYXRlVG8iLCJOYW1lIiwib250YXAiLCJnZXRBcHAiLCJvblNjYW4iLCJyZXN1bHQiLCIkZGF0YSIsInRhcmdldCIsImRhdGFzZXQiLCJkZWNvZGVkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEsZUFFZTtFQUNkQSx3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Q0FBQyxDQUFDO01BQ0g7TUFDQTtNQUNBO01BQ0E7SUFDRCxDQUFDO0lBQ0RDLEtBQUssaUJBQUMvQixDQUFDLEVBQUM7TUFBQTtNQUFFO01BQ1Q7TUFDQWdDLE1BQU0sRUFBRSxDQUFDQyxNQUFNLENBQUMsVUFBQ0MsTUFBTSxFQUFHO1FBQ3pCO1FBQ0EsTUFBSSxDQUFDQyxLQUFLLENBQUMzQixJQUFJLENBQUNSLENBQUMsQ0FBQ29DLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUNILE1BQU0sQ0FBQ0ksVUFBVTtNQUMzRCxDQUFDLENBQUM7SUFDSDtFQUVEO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0b25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwKGUpIHtcblx0XHQvLyBjb25zb2xlLmxvZyhlLnRleHQpO1xuXHRcdC8vIGNvbnNvbGUubG9nKGUuZm9udFNpemUpO1xuXHRcdHRoaXMuJHN0b3JlLnN0YXRlLmFyZWFGdW5jPScnO1xuXHRcdHRoaXMuJHN0b3JlLmNvbW1pdChcImNsYXNzQXR0ckxpc3RcIixudWxsKTtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJjbGFzc0dyaWRTdHlsZUluZm9cIixudWxsKTtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJkaWNWYWx1ZUluZm9cIixudWxsKTtcblx0XHQvL+WIt+aWsOW9k+WJjemhtemdolxuXHRcdC8vIGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdHVuaS5yZWRpcmVjdFRvKHtcblx0XHRcdHVybDonLi4vaW5kZXgvaW5kZXg/YXJncz05OTk5OTk5OTk5J1xuXHRcdH0pXG5cdH0sXG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRpdGxlOiAnSGVsbG8nLFxuXHRcdFx0ZGF0YTpbXVxuXHRcdH1cblx0fSxcblx0b25Mb2FkKG9wdGlvbnMpIHtcblx0XHRjb25zb2xlLmxvZyhvcHRpb25zKTtcblx0XHRcblx0XHQvLyDojrflj5bmiYDmnIlBcHBUeXBlPVwiTUVTXCIsQ2xpZW50VHlwZT1cIjJcIihQREEp55qE5byV55So6aKG5Z+f5Yqf6IO954K55L+h5oGvXG5cdFx0aWYodGhpcy4kc3RvcmUuc3RhdGUuYXJlYUZ1bmMpXG5cdFx0XHR0aGlzLmRhdGEgPSB0aGlzLiRzdG9yZS5zdGF0ZS5hcmVhRnVuYy5kYXRhO1xuXHRcdGVsc2Vcblx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcmVhRnVuYycse30pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdHRoaXMuZGF0YSA9IHN1Y2Nlc3MuZGF0YTtcblx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHR9KTtcblx0XHRcblx0XHQvLyB2YXIgZGF0YSA9IHtcblx0XHQvLyBcdFx0aW4xOlwibGwxXCIsXG5cdFx0Ly8gXHRcdGluMjpcImxsMlwiLFxuXHRcdC8vIFx0XHRpbjM6XCJsbDNcIixcblx0XHQvLyBcdFx0aW40OlwibGw0XCIsXG5cdFx0Ly8gXHRcdGluNTpcImxsNVwiLFxuXHRcdC8vIFx0XHRpbjY6XCJsbDZcIixcblx0XHQvLyBcdH07XG5cdFx0Ly8gZm9yKHZhciBpIGluIGRhdGEpXG5cdFx0Ly8gXHR0aGlzLiRkYXRhLmtleXMucHVzaChpKVxuXHRcdC8vIHRoaXMuJGRhdGEuZGF0YSA9IGRhdGE7XG5cdFx0Ly8gY29uc29sZS5sb2codGhpcy4kZGF0YS5rZXlzKTtcblx0fSxcblx0bWV0aG9kczoge1xuXHRcdGFwcENyZWF0ZShhcHApeyAvL+eCueWHu+WKn+iDveeCuei3s+i9rOmhtemdolxuXHRcdFx0Y29uc29sZS5sb2coYXBwKTtcblx0XHRcdGlmKCFhcHAuUGFyYW0pe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7lj4LmlbDvvIzor7fph43mlrDphY3nva7lj4LmlbDvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYoYXBwLkRlZkNvZGUgPT0gJzMwMTgnKXtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vbW9kYWwvY2xhc3NBdHRyP3BhcmFtPScrYXBwLlBhcmFtK1wiJnRpdGxlbmFtZT1cIithcHAuTmFtZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIGlmKGFwcC5EZWZDb2RlID09ICczMDM3Jyl7XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHR1cmw6Jy4uL21vZGFsL21zX2NsYXNzQXR0cj9wYXJhbT0nK2FwcC5QYXJhbStcIiZ0aXRsZW5hbWU9XCIrYXBwLk5hbWVcblx0XHRcdFx0fSlcblx0XHRcdH0gXG5cdFx0XHQvLyB1bmkucmVkaXJlY3RUbyh7XG5cdFx0XHQvLyBcdHVybDonLi4vaW5kZXgvaW5kZXg/YXJncz05OTk5OTk5OTk5J1xuXHRcdFx0Ly8gfSk7XG5cdFx0fSxcblx0XHRvbnRhcChlKXsgLy/miavnoIHlip/og71cblx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KVxuXHRcdFx0Z2V0QXBwKCkub25TY2FuKChyZXN1bHQpPT57XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlc3VsdC5kZWNvZGVkYXRhKTtcblx0XHRcdFx0dGhpcy4kZGF0YS5kYXRhW2UudGFyZ2V0LmRhdGFzZXRbJ2tleSddXT1yZXN1bHQuZGVjb2RlZGF0YTtcblx0XHRcdH0pXG5cdFx0fVxuXHRcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///56\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 onNavigationBarButtonTap: function onNavigationBarButtonTap(e) {\n // console.log(e.text);\n // console.log(e.fontSize);\n this.$store.state.areaFunc = '';\n this.$store.commit(\"classAttrList\", null);\n this.$store.commit(\"classGridStyleInfo\", null);\n this.$store.commit(\"dicValueInfo\", null);\n this.$store.commit(\"subClassAttrList\", null);\n this.$store.commit(\"subClassGridStyleInfo\", null);\n //鍒锋柊褰撳墠椤甸潰\n // location.reload();\n uni.redirectTo({\n url: '../index/index?args=9999999999'\n });\n },\n data: function data() {\n return {\n title: 'Hello',\n data: []\n };\n },\n onLoad: function onLoad(options) {\n var _this = this;\n __f__(\"log\", options, \" at pages/index/index.vue:108\");\n\n // 鑾峰彇鎵�湁AppType=\"MES\",ClientType=\"2\"(PDA)鐨勫紩鐢ㄩ鍩熷姛鑳界偣淇℃伅\n if (this.$store.state.areaFunc) this.data = this.$store.state.areaFunc.data;else this.$store.dispatch('areaFunc', {}).then(function (success) {\n __f__(\"log\", success, \" at pages/index/index.vue:115\");\n if (success.code == '00000') {\n _this.data = success.data;\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n\n // var data = {\n // \t\tin1:\"ll1\",\n // \t\tin2:\"ll2\",\n // \t\tin3:\"ll3\",\n // \t\tin4:\"ll4\",\n // \t\tin5:\"ll5\",\n // \t\tin6:\"ll6\",\n // \t};\n // for(var i in data)\n // \tthis.$data.keys.push(i)\n // this.$data.data = data;\n // console.log(this.$data.keys);\n },\n\n methods: {\n appCreate: function appCreate(app) {\n //鐐瑰嚮鍔熻兘鐐硅烦杞〉闈n __f__(\"log\", app, \" at pages/index/index.vue:141\");\n if (!app.Param) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃弬鏁帮紝璇烽噸鏂伴厤缃弬鏁帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (app.DefCode == '3018') {\n uni.navigateTo({\n url: '../modal/classAttr?param=' + app.Param + \"&titlename=\" + app.Name\n });\n } else if (app.DefCode == '3037') {\n uni.navigateTo({\n url: '../modal/ms_classAttr?param=' + app.Param + \"&titlename=\" + app.Name\n });\n }\n // uni.redirectTo({\n // \turl:'../index/index?args=9999999999'\n // });\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n // console.log(e.target)\n getApp().onScan(function (result) {\n // console.log(result.decodedata);\n _this2.$data.data[e.target.dataset['key']] = result.decodedata;\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbIm9uTmF2aWdhdGlvbkJhckJ1dHRvblRhcCIsImUiLCIkc3RvcmUiLCJzdGF0ZSIsImFyZWFGdW5jIiwiY29tbWl0IiwidW5pIiwicmVkaXJlY3RUbyIsInVybCIsImRhdGEiLCJ0aXRsZSIsIm9uTG9hZCIsIm9wdGlvbnMiLCJkaXNwYXRjaCIsInRoZW4iLCJzdWNjZXNzIiwiY29kZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJtc2ciLCJzaG93Q2FuY2VsIiwiY29uZmlybVRleHQiLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwibWV0aG9kcyIsImFwcENyZWF0ZSIsImFwcCIsIlBhcmFtIiwiRGVmQ29kZSIsIm5hdmlnYXRlVG8iLCJOYW1lIiwib250YXAiLCJnZXRBcHAiLCJvblNjYW4iLCJyZXN1bHQiLCIkZGF0YSIsInRhcmdldCIsImRhdGFzZXQiLCJkZWNvZGVkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEsZUFFZTtFQUNkQSx3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TUFBTSxFQUFDO1FBQy9CdkIsR0FBRyxDQUFDd0IsVUFBVSxDQUFDO1VBQ2R0QixHQUFHLEVBQUMsOEJBQThCLEdBQUNtQixHQUFHLENBQUNDLEtBQUssR0FBQyxhQUFhLEdBQUNELEdBQUcsQ0FBQ0k7UUFDaEUsQ0FBQyxDQUFDO01BQ0g7TUFDQTtNQUNBO01BQ0E7SUFDRCxDQUFDO0lBQ0RDLEtBQUssaUJBQUMvQixDQUFDLEVBQUM7TUFBQTtNQUFFO01BQ1Q7TUFDQWdDLE1BQU0sRUFBRSxDQUFDQyxNQUFNLENBQUMsVUFBQ0MsTUFBTSxFQUFHO1FBQ3pCO1FBQ0EsTUFBSSxDQUFDQyxLQUFLLENBQUMzQixJQUFJLENBQUNSLENBQUMsQ0FBQ29DLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUNILE1BQU0sQ0FBQ0ksVUFBVTtNQUMzRCxDQUFDLENBQUM7SUFDSDtFQUVEO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0b25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwKGUpIHtcblx0XHQvLyBjb25zb2xlLmxvZyhlLnRleHQpO1xuXHRcdC8vIGNvbnNvbGUubG9nKGUuZm9udFNpemUpO1xuXHRcdHRoaXMuJHN0b3JlLnN0YXRlLmFyZWFGdW5jPScnO1xuXHRcdHRoaXMuJHN0b3JlLmNvbW1pdChcImNsYXNzQXR0ckxpc3RcIixudWxsKTtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJjbGFzc0dyaWRTdHlsZUluZm9cIixudWxsKTtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJkaWNWYWx1ZUluZm9cIixudWxsKTtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoXCJzdWJDbGFzc0F0dHJMaXN0XCIsbnVsbCk7XG5cdFx0dGhpcy4kc3RvcmUuY29tbWl0KFwic3ViQ2xhc3NHcmlkU3R5bGVJbmZvXCIsbnVsbCk7XG5cdFx0Ly/liLfmlrDlvZPliY3pobXpnaJcblx0XHQvLyBsb2NhdGlvbi5yZWxvYWQoKTtcblx0XHR1bmkucmVkaXJlY3RUbyh7XG5cdFx0XHR1cmw6Jy4uL2luZGV4L2luZGV4P2FyZ3M9OTk5OTk5OTk5OSdcblx0XHR9KTtcblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dGl0bGU6ICdIZWxsbycsXG5cdFx0XHRkYXRhOltdXG5cdFx0fVxuXHR9LFxuXHRvbkxvYWQob3B0aW9ucykge1xuXHRcdGNvbnNvbGUubG9nKG9wdGlvbnMpO1xuXHRcdFxuXHRcdC8vIOiOt+WPluaJgOaciUFwcFR5cGU9XCJNRVNcIixDbGllbnRUeXBlPVwiMlwiKFBEQSnnmoTlvJXnlKjpoobln5/lip/og73ngrnkv6Hmga9cblx0XHRpZih0aGlzLiRzdG9yZS5zdGF0ZS5hcmVhRnVuYylcblx0XHRcdHRoaXMuZGF0YSA9IHRoaXMuJHN0b3JlLnN0YXRlLmFyZWFGdW5jLmRhdGE7XG5cdFx0ZWxzZVxuXHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2FyZWFGdW5jJyx7fSkudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivr1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdH0pO1xuXHRcdFxuXHRcdC8vIHZhciBkYXRhID0ge1xuXHRcdC8vIFx0XHRpbjE6XCJsbDFcIixcblx0XHQvLyBcdFx0aW4yOlwibGwyXCIsXG5cdFx0Ly8gXHRcdGluMzpcImxsM1wiLFxuXHRcdC8vIFx0XHRpbjQ6XCJsbDRcIixcblx0XHQvLyBcdFx0aW41OlwibGw1XCIsXG5cdFx0Ly8gXHRcdGluNjpcImxsNlwiLFxuXHRcdC8vIFx0fTtcblx0XHQvLyBmb3IodmFyIGkgaW4gZGF0YSlcblx0XHQvLyBcdHRoaXMuJGRhdGEua2V5cy5wdXNoKGkpXG5cdFx0Ly8gdGhpcy4kZGF0YS5kYXRhID0gZGF0YTtcblx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmtleXMpO1xuXHR9LFxuXHRtZXRob2RzOiB7XG5cdFx0YXBwQ3JlYXRlKGFwcCl7IC8v54K55Ye75Yqf6IO954K56Lez6L2s6aG16Z2iXG5cdFx0XHRjb25zb2xlLmxvZyhhcHApO1xuXHRcdFx0aWYoIWFwcC5QYXJhbSl7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuivpeWKn+iDveeCueacqumFjee9ruWPguaVsO+8jOivt+mHjeaWsOmFjee9ruWPguaVsO+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZihhcHAuRGVmQ29kZSA9PSAnMzAxOCcpe1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOicuLi9tb2RhbC9jbGFzc0F0dHI/cGFyYW09JythcHAuUGFyYW0rXCImdGl0bGVuYW1lPVwiK2FwcC5OYW1lXG5cdFx0XHRcdH0pXG5cdFx0XHR9IGVsc2UgaWYoYXBwLkRlZkNvZGUgPT0gJzMwMzcnKXtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vbW9kYWwvbXNfY2xhc3NBdHRyP3BhcmFtPScrYXBwLlBhcmFtK1wiJnRpdGxlbmFtZT1cIithcHAuTmFtZVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBcblx0XHRcdC8vIHVuaS5yZWRpcmVjdFRvKHtcblx0XHRcdC8vIFx0dXJsOicuLi9pbmRleC9pbmRleD9hcmdzPTk5OTk5OTk5OTknXG5cdFx0XHQvLyB9KTtcblx0XHR9LFxuXHRcdG9udGFwKGUpeyAvL+aJq+eggeWKn+iDvVxuXHRcdFx0Ly8gY29uc29sZS5sb2coZS50YXJnZXQpXG5cdFx0XHRnZXRBcHAoKS5vblNjYW4oKHJlc3VsdCk9Pntcblx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzdWx0LmRlY29kZWRhdGEpO1xuXHRcdFx0XHR0aGlzLiRkYXRhLmRhdGFbZS50YXJnZXQuZGF0YXNldFsna2V5J11dPXJlc3VsdC5kZWNvZGVkYXRhO1xuXHRcdFx0fSlcblx0XHR9XG5cdFxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n"); /***/ }), /* 57 */ @@ -5420,7 +5420,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 67));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 69));\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 70));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 components: {\n pickerAddress: _pickerAddress.default\n },\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\",\n //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\",\n //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\",\n //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [],\n //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n inputValList: [{\n Name: \"test\"\n }, {\n Name: \"test2\"\n }, {\n Name: \"test3\"\n }, {\n Name: \"test4\"\n }, {\n Name: \"test5\"\n }, {\n Name: \"test6\"\n }, {\n Name: \"test7\"\n }]\n };\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({\n title: options.titlename\n }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n // console.log(param);\n if (!param.EditDlgMode) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!param.Edit_dlg.Name) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n this.$data.param = param;\n var edit_dlg = {\n Model: param.EditDlgMode,\n Name: param.Edit_dlg.Name\n };\n var dataInfo = {\n class_id: param.clsid\n };\n var $this = this;\n $this.$store.state.thisareaFuncID = param.clsid;\n // console.log($this.$store.getters.getclassAttrList);\n //鑾峰彇\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo();\n } else $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n $this.classGridStyleInfo();\n } else {\n uni.showModal({\n title: \"閿欒1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n methods: {\n cancel: function cancel(e) {\n uni.navigateBack({\n delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉\n });\n },\n classGridStyleInfo: function classGridStyleInfo() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var $this, gridstyleInfo;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: $this.$data.param.clsid,\n name: $this.$data.param.Edit_dlg.Name,\n type: '2'\n };\n $this.$store.state.thisEditName = $this.$data.param.Edit_dlg.Name;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n $this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:482\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n });\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:503\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:506\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/classAttr.vue:509\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {\n //涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n for (var v in item) {\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;\n iindex = j;\n dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:576\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/classAttr.vue:579\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) req.push({\n attr: ar.Name,\n val: itemvalue.Name\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n },\n onevent: function onevent(e) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info, data_attr);\n }\n }\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n inputValListIsDel: function inputValListIsDel(index) {\n // console.log(index);\n this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹筡n // console.log(this.$data.inputValList);\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/classAttr.vue:710\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"before_click_button-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!button_callback) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"button_callback-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:736\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:765\");\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n sava: function sava() {\n if (this.$data.edit_ok_event) this.OKDataObjRunCustomEvent();else this.add();\n },\n add: function add() {\n var _this3 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n name: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n name: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n name: ar.Name,\n value: valStr\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid\n }\n };\n var dataInfo = {\n class_id: this.$data.param.clsid,\n data_obj_id: '',\n masterclsid: '',\n req: JSON.stringify(req),\n upfile: JSON.stringify([]),\n post_data: JSON.stringify({}),\n compose: JSON.stringify([]),\n refdatastore: JSON.stringify([]),\n extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: ''\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:870\");\n // return\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:873\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({\n title: action.result,\n icon: \"success\",\n duration: 3000\n });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/classAttr?param=' + JSON.stringify(_this3.$data.param) + \"&titlename=\" + _this3.$data.title\n });\n // this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:892\");\n uni.hideLoading();\n uni.showModal({\n title: \"鎻愮ず\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n val: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n __f__(\"log\", req, \" at pages/modal/classAttr.vue:1009\");\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/classAttr.vue:1025\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/classAttr.vue:1026\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {\n var _this4 = this;\n var param = {\n EditStyle: this.$data.param.Edit_dlg.Name,\n ViewStyle: this.$data.param.Edit_dlg.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1056\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1058\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/classAttr.vue:1073\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this4.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this4.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this4.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this4.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this4.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this4.$data.refdatastore.length; j++) {\n if (_this4.$data.refdatastore[j].attr == val[i].attr) {\n _this4.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒2.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒2.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n if (data_attr) {\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: '',\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1160\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1162\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/classAttr.vue:1168\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/classAttr.vue:1195\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒3\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒3.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {\n var _this5 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n }\n };\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'val': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1315\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1317\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == result[i].attr) {\n _this5.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n _this5.add();\n } else {\n uni.showModal({\n title: \"閿欒4\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒4.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {\n var _this6 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'val': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n extinfo.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: \"0\",\n eventid: eventid,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: '',\n attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1406\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1408\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/classAttr.vue:1414\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this6;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr\n };\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:1444\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req,\n inputparameter: data\n };\n $this.DataObjRunCustomEvent(info, param.data_attr);\n }\n }\n });\n } else if (action.action_type == 'open_data_query_dlg') {} else if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧') priRel = '0';else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') priRel = '1';else if (action.value.select_range == '鎴戝垱寤虹殑') priRel = '2';else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑') priRel = '3';else if (action.value.select_range == '鎴戝叧娉ㄧ殑') priRel = '4';else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') priRel = '5';\n var $this = _this6;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req\n };\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req\n };\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n });\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n }\n }\n }\n } else {\n uni.showModal({\n title: \"鎻愮ず5.2\",\n content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒5\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"鎻愮ず5.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwicGlja2VyQWRkcmVzcyIsImRhdGEiLCJ0aXRsZSIsInBhcmFtIiwiY2xhc3NBdHRyTGlzdCIsImNsYXNzR3JpZFN0eWxlIiwiZWRpdF9pbml0YWxfZXZlbnQiLCJlZGl0X29rX2V2ZW50IiwiZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCIsImVkaXRfY29tcG9zZV9jbHNfaWQiLCJnbG9iYWxfYXR0ciIsInJlZmRhdGFzdG9yZSIsImlucHV0VmFsTGlzdCIsIk5hbWUiLCJvbkxvYWQiLCJvcHRpb25zIiwidW5pIiwic2V0TmF2aWdhdGlvbkJhclRpdGxlIiwidGl0bGVuYW1lIiwiSlNPTiIsInBhcnNlIiwiJGRhdGEiLCJBZGRfQnRuTmFtZSIsIkVkaXREbGdNb2RlIiwic2hvd01vZGFsIiwiY29udGVudCIsInNob3dDYW5jZWwiLCJjb25maXJtVGV4dCIsIkVkaXRfZGxnIiwiZWRpdF9kbGciLCJNb2RlbCIsImRhdGFJbmZvIiwiY2xhc3NfaWQiLCJjbHNpZCIsIiR0aGlzIiwiJHN0b3JlIiwic3RhdGUiLCJ0aGlzYXJlYUZ1bmNJRCIsImdldHRlcnMiLCJnZXRjbGFzc0F0dHJMaXN0IiwiY2xhc3NHcmlkU3R5bGVJbmZvIiwiZGlzcGF0Y2giLCJ0aGVuIiwic3VjY2VzcyIsImNvZGUiLCJtc2ciLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwibWV0aG9kcyIsImNhbmNlbCIsImUiLCJuYXZpZ2F0ZUJhY2siLCJkZWx0YSIsImdyaWRzdHlsZUluZm8iLCJuYW1lIiwidHlwZSIsInRoaXNFZGl0TmFtZSIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImNsYXNzX2F0dHJfaW5pdCIsIlN0eWxlRGVmIiwib250YXAiLCJnZXRBcHAiLCJvblNjYW4iLCJyZXN1bHQiLCJ0YXJnZXQiLCJkYXRhc2V0IiwiQXR0ciIsIlZhbHVlIiwiZGVjb2RlZGF0YSIsIm9uYXJyb3ciLCJpbmRleCIsIm9wZW4iLCJPcGVuIiwib25kYXRlVGltZSIsInZhbHVlIiwib25jaGFuZ2UiLCJkaWN0aXRlbSIsImRhdGFfYXR0ciIsImV2ZW50aWQiLCJhY3Rpb24iLCJyZXEiLCJhdHRybGlzdCIsImkiLCJsZW5ndGgiLCJhdHRyIiwiaiIsImFyIiwiVHlwZSIsInB1c2giLCJ2YWwiLCJWYWxJRCIsImluZm8iLCJlZHR5cGUiLCJwcm9qZWN0aWQiLCJyY2xzaWQiLCJyb2JqaWQiLCJ1c2VybG9naW4iLCJvYmppZCIsIkRhdGFPYmpSdW5DdXN0b21FdmVudCIsIm9uY2hhbmdlMiIsIml0ZW0iLCJkZWx2YWx1ZSIsImlpbmRleCIsImRpbmRleCIsImQiLCJ2IiwiaXRlbXZhbHVlIiwib25ldmVudCIsIm9uY2hlY2siLCJpc2NoZWNrZWQiLCJpc2NoZWNrIiwiaW5wdXRWYWxMaXN0SXNEZWwiLCJzcGxpY2UiLCJhZGRyZXNzY2hhbmdlIiwiam9pbiIsImNsYXNzQXR0cl9leHRCdXR0b24iLCJiZWZvcmVfY2xpY2tfYnV0dG9uIiwiYnV0dG9uX2NhbGxiYWNrIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybiIsImNsYXNzQXR0cl9BZGRQZXIiLCJuYXZpZ2F0ZVRvIiwidXJsIiwic3RyaW5naWZ5IiwiZXZlbnRzIiwiQWRkUGVyIiwiTG9naW4iLCJ0cmltIiwiY2xhc3NBdHRyX0FkZFJlZiIsImNsYXNzQXR0cl9BZGRQcmoiLCJJRCIsInNhdmEiLCJPS0RhdGFPYmpSdW5DdXN0b21FdmVudCIsImFkZCIsInNob3dMb2FkaW5nIiwic2VsZWN0IiwidmFsU3RyIiwiTm90RW1wdHkiLCJub3RlbXB0eSIsImhpZGVMb2FkaW5nIiwiRGlzcE5hbWUiLCJlbnZpcm9tZW50IiwiY2xzX2lkIiwiYnV0dG9uX25hbWUiLCJtYXN0ZXIiLCJkYXRhX29ial9pZCIsIm1hc3RlcmNsc2lkIiwidXBmaWxlIiwicG9zdF9kYXRhIiwiY29tcG9zZSIsImV4dGluZm8iLCJub3RfdHJpZ2dlcl9zeXNfZXZlbnQiLCJBY3Rpb24iLCJyZXQiLCJyZXN1bHRfdHlwZSIsInNob3dUb2FzdCIsImljb24iLCJkdXJhdGlvbiIsInJlZGlyZWN0VG8iLCJzaG93X3N0eWxlIiwibmV3YXR0cmxpc3QiLCJhdHRyZ3JvdXBfbmFtZSIsImF0dHJzIiwicyIsImNsc2F0dHIiLCJsIiwiY2EiLCJlZGl0IiwiZXh0X2J1dHRvbiIsImJ1dHRvbl9pbWciLCJidXR0b25fdG9vbHRpcCIsImhpZGRlbiIsInVuZGVmaW5lZCIsImRpY3RpdGVtbGlzdCIsImxhYmVsIiwiQ05fU19OQU1FIiwiQ05fQ19JU19ERUZBVUxUIiwibm93RGF0ZSIsIkRhdGUiLCJkYXRlIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJnZXRNb250aCIsImRheSIsImdldERhdGUiLCJyZWxDbHNMaXN0IiwiYXR0cl9yZXNjbHMiLCJSZWxDbHMiLCJzcGxpdCIsImlpIiwicmVzY2xzIiwiaWQiLCJSZWxDbHNMaXN0IiwiQmtDb2xvciIsIkhhc0FjZSIsIkltZ0ZvbnRTdHlsZSIsIk9yZGVyIiwiY29udHJvbF9zdHlsZSIsInRpdGxlX3Bfd2RpdGgiLCJldmVudGxpc3QiLCJldmVudCIsImV2ZW50X2lkIiwic2NyaXBfaWQiLCJjb21wb3NlX2Nsc19pZCIsImluaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJFZGl0U3R5bGUiLCJWaWV3U3R5bGUiLCJOb3RUcmlnZ2VyU3lzRXZlbnQiLCJpbnB1dHBhcmFtZXRlciIsImFjdGlvbmxpc3QiLCJhY3Rpb25fdHlwZSIsImEiLCJkaWN0SXRlbUxpc3QiLCJjaG9pY2VfbGlzdCIsImZpbHRlciIsImZvcm1fY29udHJvbCIsInRleHQiLCJncm91cF9uYW1lIiwiR3JvdXBOYW1lIiwicmVhZG9ubHkiLCJSZWFkT25seSIsInJlcGxhY2UiLCJjIiwiYWN0aW9ucyIsImRpYWxvZyIsInNob3ciLCJzdHlsZSIsImNhbGxiYWNrX2V2ZW50aWQiLCJwcmlSZWwiLCJzZWxlY3RfcmFuZ2UiLCJwYXJhbV8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWdZQztBQWhZRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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S0FBSztZQUFDQyxXQUFXLEVBQUM7VUFBSSxDQUFDLENBQUM7UUFDbkY7TUFDRCxDQUFDLENBQUMsQ0FBQ21CLEtBQUssQ0FBQyxVQUFBQyxFQUFFLEVBQUU7UUFDWjtRQUNBL0IsR0FBRyxDQUFDUSxTQUFTLENBQUM7VUFBQ3RCLEtBQUssRUFBQyxPQUFPO1VBQUN1QixPQUFPLEVBQUNzQixFQUFFLENBQUNDLE1BQU07VUFBQ3RCLFVBQVUsRUFBQyxLQUFLO1VBQUNDLFdBQVcsRUFBQztRQUFJLENBQUMsQ0FBQztNQUNuRixDQUFDLENBQUM7SUFDQTtFQUdKO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cblx0aW1wb3J0IHBpY2tlckFkZHJlc3MgZnJvbSAnLi4vLi4vanMvcGlja2VyQWRkcmVzcy9waWNrZXJBZGRyZXNzLnZ1ZSdcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHBpY2tlckFkZHJlc3NcbiAgICAgICAgfSxcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6ICfmlrDlop4nLFxuXHRcdFx0XHRwYXJhbTp7fSxcblx0XHRcdFx0Y2xhc3NBdHRyTGlzdDpbXSxcblx0XHRcdFx0Y2xhc3NHcmlkU3R5bGU6W10sXG5cdFx0XHRcdGVkaXRfaW5pdGFsX2V2ZW50OlwiXCIsICAvL+W8ueeql+WIneWni+WMluS6i+S7tklEXG5cdFx0XHRcdGVkaXRfb2tfZXZlbnQ6XCJcIiwgICAgICAvL+W8ueeql+eCueWHu09LIOinpuWPkeS6i+S7tklEXG5cdFx0XHRcdGVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQ6XCJcIiwgIC8v6YCJ5oup57uE5oiQ5a+56LGh5pe26LCD55SoXG5cdFx0XHRcdGVkaXRfY29tcG9zZV9jbHNfaWQ6XCJcIixcblx0XHRcdFx0Z2xvYmFsX2F0dHI6W10sXG5cdFx0XHRcdHJlZmRhdGFzdG9yZTogW10sXHQgICAvL+W8leeUqOaVsOaNruWtmOWCqOWMui8vIHthdHRyOidHX1BSSl8nICsgYmluZGF0dHIgKyAnX0lEJywgdmFsdWU6aW5mby5pZH1cblx0XHRcdFx0aW5wdXRWYWxMaXN0Olt7TmFtZTpcInRlc3RcIn0se05hbWU6XCJ0ZXN0MlwifSx7TmFtZTpcInRlc3QzXCJ9LHtOYW1lOlwidGVzdDRcIn0se05hbWU6XCJ0ZXN0NVwifSx7TmFtZTpcInRlc3Q2XCJ9LHtOYW1lOlwidGVzdDdcIn1dLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0b25Mb2FkKG9wdGlvbnMpIHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKG9wdGlvbnMpO1xuXHRcdFx0dW5pLnNldE5hdmlnYXRpb25CYXJUaXRsZSh7IHRpdGxlOiBvcHRpb25zLnRpdGxlbmFtZX0pOyAvL+iuvue9rumhtumDqOagh+mimCBcblx0XHRcdHZhciBwYXJhbSA9IEpTT04ucGFyc2Uob3B0aW9ucy5wYXJhbSk7XG5cdFx0XHR0aGlzLiRkYXRhLnRpdGxlID0gcGFyYW0uQWRkX0J0bk5hbWU/cGFyYW0uQWRkX0J0bk5hbWU6b3B0aW9ucy50aXRsZW5hbWU7IC8v6K6+572u5oyJ6ZKu5paH5a2XXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRpZighcGFyYW0uRWRpdERsZ01vZGUpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7nvJbovpHnqpflj6PvvIzor7fph43mlrDphY3nva7vvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYoIXBhcmFtLkVkaXRfZGxnLk5hbWUpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7nqpflj6PmoLflvI/vvIzor7fph43mlrDphY3nva7vvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy4kZGF0YS5wYXJhbSA9IHBhcmFtO1xuXHRcdFx0dmFyIGVkaXRfZGxnID0ge1xuXHRcdFx0ICAgIE1vZGVsOiBwYXJhbS5FZGl0RGxnTW9kZSxcblx0XHRcdCAgICBOYW1lOiBwYXJhbS5FZGl0X2RsZy5OYW1lXG5cdFx0XHR9XG5cdFx0XHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0XHRcdGNsYXNzX2lkOiBwYXJhbS5jbHNpZFxuXHRcdFx0fTtcblx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHQkdGhpcy4kc3RvcmUuc3RhdGUudGhpc2FyZWFGdW5jSUQgPSBwYXJhbS5jbHNpZDtcblx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3QpO1xuXHRcdFx0IC8v6I635Y+WXG5cdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0F0dHJMaXN0KXtcblx0XHRcdCBcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QgPSAkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0F0dHJMaXN0LmRhdGE7XG5cdFx0XHRcdCR0aGlzLmNsYXNzR3JpZFN0eWxlSW5mbygpO1xuXHRcdFx0fWVsc2Vcblx0XHRcdFx0JHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdjbGFzc0F0dHJMaXN0JyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCA9IHN1Y2Nlc3MuZGF0YTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0JHRoaXMuY2xhc3NHcmlkU3R5bGVJbmZvKCk7XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzFcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGNhbmNlbChlKXtcblx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XG5cdFx0XHRcdFx0ZGVsdGE6MSAvL+i/lOWbnuWxguaVsO+8jDLliJnkuIrkuIrpobVcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgY2xhc3NHcmlkU3R5bGVJbmZvKCl7XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHZhciBncmlkc3R5bGVJbmZvID0ge1xuXHRcdFx0XHRcdGNsYXNzX2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHRuYW1lOiAkdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lLFxuXHRcdFx0XHRcdHR5cGU6ICcyJ1xuXHRcdFx0XHR9O1xuXHRcdFx0XHQkdGhpcy4kc3RvcmUuc3RhdGUudGhpc0VkaXROYW1lID0gJHRoaXMuJGRhdGEucGFyYW0uRWRpdF9kbGcuTmFtZVxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8pO1xuXHRcdFx0XHQgLy/ojrflj5Zcblx0XHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvKXtcblx0XHRcdFx0IFx0JHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUgPSAkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8uZGF0YTtcblx0XHRcdFx0XHQkdGhpcy5jbGFzc19hdHRyX2luaXQoKTtcblx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhncmlkc3R5bGVJbmZvKTtcblx0XHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2NsYXNzR3JpZFN0eWxlSW5mbycsZ3JpZHN0eWxlSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdFx0c3VjY2Vzcy5kYXRhLlN0eWxlRGVmID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEuU3R5bGVEZWYpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSA9IHN1Y2Nlc3MuZGF0YTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjNcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdG9udGFwKGUpeyAvL+aJq+eggeWKn+iDvVxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKGUudGFyZ2V0KVxuXHRcdFx0XHRnZXRBcHAoKS5vblNjYW4oKHJlc3VsdCk9Pntcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKHJlc3VsdC5kZWNvZGVkYXRhKTtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9cmVzdWx0LmRlY29kZWRhdGE7XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0b25hcnJvdyhpbmRleCxvcGVuKXtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coaW5kZXgrJy0tJytvcGVuKTtcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5PcGVuPW9wZW49PXRydWU/ZmFsc2U6dHJ1ZTtcblx0XHRcdH0sXG5cdFx0XHRvbmRhdGVUaW1lKGUpIHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlLnRhcmdldClcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUudGFyZ2V0LnZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdG9uY2hhbmdlKGUpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgdmFsdWU9dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmRpY3RpdGVtW2UudGFyZ2V0LnZhbHVlXTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKHZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlLk5hbWU7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlKTtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmNoYW5nZTIoaXRlbSx2YWx1ZSxkZWx2YWx1ZSkge1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpdGVtKTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codmFsdWUpO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkZWx2YWx1ZSk7XG5cdFx0XHRcdGlmKGl0ZW0ubGVuZ3RoPT0wKXsgLy/kuLrnqbrml7bvvIzmuIXnqbrlsZ7mgKd2YWx1ZVxuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihkZWx2YWx1ZVswXS5OYW1lID09IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtW2RdLk5hbWUpe1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uVmFsdWU9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0Zm9yKHZhciB2IGluIGl0ZW0pe1xuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihpdGVtW3ZdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRpbmRleD1pO2lpbmRleD1qO2RpbmRleD1kO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR2YXIgaXRlbXZhbHVlID0gaXRlbVt2XTtcblx0XHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0XHRpZiAoaXRlbXZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5WYWx1ZT12YWx1ZTtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlKTtcblx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBpdGVtdmFsdWUuTmFtZX0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmV2ZW50KGUpe1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV07XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XG5cdFx0XHRcdGlmIChlLnRhcmdldC52YWx1ZSAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9ZS50YXJnZXQudmFsdWU7XG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xuXHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbywgZGF0YV9hdHRyKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmNoZWNrKGUpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgaXNjaGVja2VkID0gZS50YXJnZXQuZGF0YXNldC5pc2NoZWNrP2ZhbHNlOnRydWU7XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV07XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XG5cdFx0XHRcdGlmIChpc2NoZWNrZWQgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWlzY2hlY2tlZDtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0aW5wdXRWYWxMaXN0SXNEZWwoaW5kZXgpe1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5pbnB1dFZhbExpc3Quc3BsaWNlKGluZGV4LCAxKTsgLy/liKDpmaR0YWJQYWdlanNvbueahOWGheWuuVxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmlucHV0VmFsTGlzdCk7XG5cdFx0XHR9LFxuXHRcdFx0YWRkcmVzc2NoYW5nZShlKSB7XG5cdFx0XHQgICAgLy8gY29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0ICAgIGNvbnNvbGUubG9nKGUuZGF0YS5qb2luKCc7JykpXG5cdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLmRhdGEuam9pbignOycpO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9leHRCdXR0b24oaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIGJlZm9yZV9jbGlja19idXR0b24gPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYmVmb3JlX2NsaWNrX2J1dHRvbjtcblx0XHRcdFx0dmFyIGJ1dHRvbl9jYWxsYmFjayA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5idXR0b25fY2FsbGJhY2s7XG5cdFx0XHRcdGlmKCFiZWZvcmVfY2xpY2tfYnV0dG9uKXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCJiZWZvcmVfY2xpY2tfYnV0dG9uLWV2ZW50X2lk5Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKCFidXR0b25fY2FsbGJhY2spe1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcImJ1dHRvbl9jYWxsYmFjay1ldmVudF9pZOS4uuepuu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybihiZWZvcmVfY2xpY2tfYnV0dG9uLCBkYXRhX2F0dHIsIGJ1dHRvbl9jYWxsYmFjaywgaW5kZXgsaWluZGV4KTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc0F0dHJfQWRkUGVyKGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciBwYXJhbT17aW5kZXg6aW5kZXgsaWluZGV4OmlpbmRleH07XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHR1cmw6Jy4uL3NlbHBzbi9pbmRleD9tdWxpdD1mYWxzZSZwYXJhbT0nK0pTT04uc3RyaW5naWZ5KHBhcmFtKSxcblx0XHRcdFx0XHRldmVudHM6e1xuXHRcdFx0XHRcdFx0QWRkUGVyKGRhdGEscGFyYW0peyBcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocGFyYW0pO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKTtcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbHVlPWRhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uTG9naW4rJzsnK2RhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLmFjdGlvbjtcblx0XHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgIGV2ZW50aWQgPSBldmVudGlkLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0ICAgIGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCI0XCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogZGF0YVswXS5Mb2dpbixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogW10sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgZGF0YV9hdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdO1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFJlZihlKXtcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmraTlip/og73ov5jmnKrlrp7njrDvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0Ly8gdmFyIHZhbHVlPXRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5SZWxDbHNbZS50YXJnZXQudmFsdWVdO1xuXHRcdFx0XHQvLyB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9dmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFByaihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgcGFyYW09e2luZGV4OmluZGV4LGlpbmRleDppaW5kZXh9O1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOicuLi9zZWxQcmovaW5kZXg/cmVsYXRpb249LTEmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWx1ZT1kYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLklEKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICBldmVudGlkID0gZXZlbnRpZC50cmltKCk7XG5cdFx0XHRcdFx0XHRcdCAgICBpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6IGRhdGFbMF0uSUQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IFtdLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIC8vIHZhciBkYXRhX2F0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF07XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRzYXZhKCl7XG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLmVkaXRfb2tfZXZlbnQpXG5cdFx0XHRcdFx0dGhpcy5PS0RhdGFPYmpSdW5DdXN0b21FdmVudCgpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0dGhpcy5hZGQoKTtcblx0XHRcdH0sXG5cdFx0XHRhZGQoKXtcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcblx0XHRcdFx0XHR0aXRsZTpcIuWKoOi9veS4rS4uLlwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7fpgInmi6knIHx8IGFyLlZhbHVlPT0n4oCU4oCU6K+36YCJ5oup4oCU4oCUJykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRpZihhci5zZWxlY3Q9PXRydWUpeyAvL+WIpOaWreS4i+aLieaYr+WQpuWkmumAiVxuXHRcdFx0XHRcdFx0XHRcdHZhciB2YWxTdHIgPVwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciB2IGluIGFyLlZhbHVlKXtcblx0XHRcdFx0XHRcdFx0XHRcdGlmKHZhbFN0cilcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1cIjtcIjtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbFN0cis9YXIuVmFsdWVbdl07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xuXHRcdFx0XHRcdFx0XHR9ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlfSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRpZiAoKGFyLk5vdEVtcHR5ID09ICcxJyB8fCBhci5ub3RlbXB0eSA9PSB0cnVlKSAmJiAhYXIuVmFsdWUpIHtcblx0XHRcdFx0XHRcdC8vIGlmKGFyLm5vdEVtcHR5PT0nMScpe1xuXHRcdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNob3dUb2FzdCh7dGl0bGU6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsaWNvbjpcInN1Y2Nlc3NcIixkdXJhdGlvbjozMDAwfSk7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHRcdFx0ICAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdFx0XHQgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIFxuXHRcdFx0XHQgICAgIH1cblx0XHRcdFx0fTtcblx0XHRcdFx0IFxuXHRcdFx0XHR2YXIgZGF0YUluZm89e1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIGRhdGFfb2JqX2lkOiAnJywgbWFzdGVyY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgcmVxOiBKU09OLnN0cmluZ2lmeShyZXEpLCB1cGZpbGU6IEpTT04uc3RyaW5naWZ5KFtdKSwgcG9zdF9kYXRhOiBKU09OLnN0cmluZ2lmeSh7fSksXG5cdFx0XHRcdCAgICBjb21wb3NlOiBKU09OLnN0cmluZ2lmeShbXSksIHJlZmRhdGFzdG9yZTogSlNPTi5zdHJpbmdpZnkoW10pLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgXG5cdFx0XHRcdFx0bm90X3RyaWdnZXJfc3lzX2V2ZW50OiAnJ1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2FkZGNsYXNzYXR0cicsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBhY3Rpb24gPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5BY3Rpb24pO1xuXHRcdFx0XHRcdFx0aWYoYWN0aW9uLnJldD09JzAnKXtcblx0XHRcdFx0XHRcdFx0aWYoYWN0aW9uLnJlc3VsdF90eXBlPT0nMCcpe1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFjdGlvbi5yZXN1bHQsaWNvbjpcInN1Y2Nlc3NcIixkdXJhdGlvbjozMDAwfSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ly8gXCJ7XCJyZXRcIjowLCBcInJlc3VsdF90eXBlXCI6MCwgXCJyZXN1bHRcIjpcIuWIm+W7uuaIkOWKnzEyMzEyMzEyM1wiLFwiaW5mb1wiOlwiXCJ9XCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8v5Yi35pawXG5cdFx0XHRcdFx0XHR1bmkucmVkaXJlY3RUbyh7XG5cdFx0XHRcdFx0XHRcdHVybDonLi4vbW9kYWwvY2xhc3NBdHRyP3BhcmFtPScrSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5wYXJhbSkrXCImdGl0bGVuYW1lPVwiK3RoaXMuJGRhdGEudGl0bGVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0Ly8gdGhpcy5jbGFzc19hdHRyX2luaXQoKTtcblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzX2F0dHJfaW5pdCgpe1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0dmFyIG5ld2F0dHJsaXN0ID0gW107XG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIHZhciBvcGVuID0gYXR0cmxpc3RbaV0ub3Blbjtcblx0XHRcdFx0ICAgICAgICB2YXIgbmFtZSA9IGF0dHJsaXN0W2ldLmF0dHJncm91cF9uYW1lO1xuXHRcdFx0XHQgICAgICAgIHZhciBhdHRycyA9IGF0dHJsaXN0W2ldLmF0dHJzO1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIHMgPSAwOyBzIDwgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgcysrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIHZhciBjbHNhdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3NdO1xuXHRcdFx0XHQgICAgICAgICAgICBpZiAobmFtZSA9PSBjbHNhdHRyLk5hbWUpIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciBhdHRyID0gW107XG5cdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBjbHNhdHRyLkF0dHIubGVuZ3RoOyBsKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhID0gY2xzYXR0ci5BdHRyW2xdO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnNbal0uYXR0ciA9PSBjYS5OYW1lKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5hY3Rpb24gPSBhdHRyc1tqXS5hY3Rpb247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5lZGl0ID0gYXR0cnNbal0uZWRpdDtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLm5vdGVtcHR5ID0gYXR0cnNbal0ubm90ZW1wdHk7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5leHRfYnV0dG9uID0gYXR0cnNbal0uZXh0X2J1dHRvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9pbWcgPSBhdHRyc1tqXS5idXR0b25faW1nO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX3Rvb2x0aXAgPSBhdHRyc1tqXS5idXR0b25fdG9vbHRpcDtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJlZm9yZV9jbGlja19idXR0b24gPSBhdHRyc1tqXS5iZWZvcmVfY2xpY2tfYnV0dG9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX2NhbGxiYWNrID0gYXR0cnNbal0uYnV0dG9uX2NhbGxiYWNrO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuaGlkZGVuID0gYXR0cnNbal0uaGlkZGVuO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Euc2VsZWN0ID0gYXR0cnNbal0uc2VsZWN0PT11bmRlZmluZWQ/ZmFsc2U6YXR0cnNbal0uc2VsZWN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLnNlbGVjdCA9PSB0cnVlKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IFtdOy8vY2EuZGljdGl0ZW1bMF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+36YCJ5oupJzsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0aXRlbWxpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBkID0gMDsgZCA8IGNhLmRpY3RpdGVtLmxlbmd0aDsgZCsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLmxhYmVsPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW1bZF0udmFsdWU9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5kaWN0aXRlbVtkXS5DTl9DX0lTX0RFRkFVTFQ9PScxJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZT1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfml6XmnJ8nIHx8IGNhLlR5cGU9PSfml7bpl7QnKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkYXRlID0ge3llYXI6IG5vd0RhdGUuZ2V0RnVsbFllYXIoKSxtb250aDogbm93RGF0ZS5nZXRNb250aCgpICsgMSxkYXk6IG5vd0RhdGUuZ2V0RGF0ZSgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBkYXRlLnllYXIgKyAnLScgKyAoZGF0ZS5tb250aCA+PSAxMCA/IGRhdGUubW9udGggOiAnMCcgKyBkYXRlLm1vbnRoKSArICctJyArIChkYXRlLmRheSA+PSAxMCA/IGRhdGUuZGF5IDogJzAnICsgZGF0ZS5kYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZWxDbHNMaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHJfcmVzY2xzID0gY2EuUmVsQ2xzLnNwbGl0KCcsJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGlpIGluIGF0dHJfcmVzY2xzKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlc2NscyA9IGF0dHJfcmVzY2xzW2lpXS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZWxDbHNMaXN0LnB1c2goe2lkOnJlc2Nsc1swXSxuYW1lOnJlc2Nsc1sxXX0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuUmVsQ2xzTGlzdCA9IHJlbENsc0xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7cnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n55yB5biC5Yy6Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLnB1c2goY2EpO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgbmV3YXR0cmxpc3QucHVzaCh7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQmtDb2xvcjogY2xzYXR0ci5Ca0NvbG9yLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEhhc0FjZTogY2xzYXR0ci5IYXNBY2UsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgSW1nRm9udFN0eWxlOiBjbHNhdHRyLkltZ0ZvbnRTdHlsZSxcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBOYW1lOiBjbHNhdHRyLk5hbWUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3JkZXI6IGNsc2F0dHIuT3JkZXIsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3Blbjogb3Blbixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBBdHRyOiBhdHRyLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udHJvbF9zdHlsZTp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmNvbnRyb2xfc3R5bGUsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZV9wX3dkaXRoOnRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYudGl0bGVfcF93ZGl0aFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfSlcblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0ICAgIGlmIChuZXdhdHRybGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gbmV3YXR0cmxpc3Q7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmKSB7XG5cdFx0XHRcdCAgICAgICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgncmVhZG9ubHknLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBhdHRybGlzdFtpXS5hdHRyc1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuYXR0ciwgdmFsOiBhci52YWx1ZT9hci52YWx1ZTonJyB9KTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHR9XHRcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR2YXIgZXZlbnRsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5ldmVudDtcblx0XHRcdFx0XHRpZiAoZXZlbnRsaXN0KSB7XG5cdFx0XHRcdFx0ICAgIGlmIChldmVudGxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudGxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdiZWZvcmVfb2snKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9va19ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnaW5pdGlhbCcpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX3NlbGVjdF9jb21wb3NlJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQgPSBldmVudGxpc3RbaV0uc2NyaXBfaWQ7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9jb21wb3NlX2Nsc19pZCA9IGV2ZW50bGlzdFtpXS5jb21wb3NlX2Nsc19pZDtcblx0XHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQpIHtcblx0XHRcdFx0XHQgICAgdmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50LnNjcmlwX2lkO1xuXHRcdFx0XHRcdCAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHQgICAgdGhpcy5pbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuacquaJvuWIsOWPr+aYvuekuueahOeahOWxnuaAp1wiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0aW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKXtcblx0XHRcdFx0dmFyIHBhcmFtID0ge1xuXHRcdFx0XHQgICAgRWRpdFN0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLkVkaXRfZGxnLk5hbWUsXG5cdFx0XHRcdCAgICBWaWV3U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uRWRpdF9kbGcuTmFtZSxcblx0XHRcdFx0ICAgIE5vdFRyaWdnZXJTeXNFdmVudDogMCxcblx0XHRcdFx0ICAgIGVudmlyb21lbnQ6IHtcblx0XHRcdFx0ICAgICAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGlucHV0cGFyYW1ldGVyID0gJyc7XG5cdFx0XHRcdHZhciBnbG9iYWxfYXR0ciA9ICcnO1xuXHRcdFx0XHRcblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQsXG4gICAgICAgICAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkocGFyYW0pLCBpbnB1dHBhcmFtZXRlcjogaW5wdXRwYXJhbWV0ZXIsIGdsb2JhbF9hdHRyOiBnbG9iYWxfYXR0clxuICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhY3Rpb25saXN0Lmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25saXN0W2pdXG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb25fdHlwZSA9IGFjdGlvbi5hY3Rpb25fdHlwZTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhbCA9IEpTT04ucGFyc2UodmFsdWUpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codmFsKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGEgPSAwOyBhIDwgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBsID0gMDsgbCA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBjYSA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyW2xdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodmFsW2ldLmF0dHIgID09IGNhLk5hbWUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5a2X5YW4JyB8fCBjYS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiB2YWxbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID12YWxbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gdmFsW2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2EudmFsdWUgPSB2YWxbaV0udmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWxbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaCh2YWxbaV0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHZhbFtpXS5hdHRyKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ29wZW5fc2VsZWN0X3VzZXJkbGcnKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzIuMlwiLGNvbnRlbnQ6XCJvcGVuX3NlbGVjdF91c2VyZGxn6L+Z5LiqYWN0aW9uX3R5cGXov5jmnKrlpITnkIbvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMi4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHQgICAgRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sZGF0YV9hdHRyKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHQgICAgXHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHQgICAgXHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0ICAgIFx0ICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0ICAgIFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHQgICAgXHQgICAgbWFzdGVyOiB7XG5cdFx0ICAgIFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0ICAgIFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9O1xuXHRcdCAgICBcdGlmKGRhdGFfYXR0cil7XG5cdFx0XHRcdFx0ZW52aXJvbWVudC5lZGl0X2RsZyA9IHtcblx0XHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHRcdCAgICBjbGFzc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwvL+W9k+WJjeaVsOaNruexu2lkXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0XHQgICAgZW52aXJvbWVudC5lZGl0X2RsZy5mb3JtX2NvbnRyb2wgPSB7Ly/miYDlsZ7nmoTooajljZXmjqfku7Zcblx0XHRcdFx0XHQgICAgICAgIG5hbWU6IGRhdGFfYXR0ci5OYW1lLC8v5a2X5q615bGe5oCnXG5cdFx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0XHQgICAgICAgIGdyb3VwX25hbWU6IGRhdGFfYXR0ci5Hcm91cE5hbWUsLy/lsZ7mgKfnu4Rcblx0XHRcdFx0XHQgICAgICAgIHR5cGU6IGRhdGFfYXR0ci5UeXBlLC8v5a2X5q6157G75Z6LXG5cdFx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdFx0ICAgICAgICBidXR0b25faW1nOiBkYXRhX2F0dHIuYnV0dG9uX2ltZywvL+W8leeUqOaMiemSrueahOWbvuagh1xuXHRcdFx0XHRcdCAgICAgICAgYnV0dG9uX3Rvb2x0aXA6IGRhdGFfYXR0ci5idXR0b25fdG9vbHRpcC8v5byV55So5oyJ6ZKu55qEdG9vbHRpcFxuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdCAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZC5yZXBsYWNlKCd7JywnJykucmVwbGFjZSgnfScsJycpLFxuXHRcdCAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcblx0XHQgICAgICAgICAgICBhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgaW5wdXRwYXJhbWV0ZXI6ICcnLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcblx0XHQgICAgICAgIH1cblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHQgICAgXHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0ICAgIFx0XHRcdHZhciBhY3Rpb25saXN0ID0gZGF0YS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYgKGFjdGlvbmxpc3QpIHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYWN0aW9ubGlzdCk7XG5cdFx0ICAgIFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdGlvbmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtpXTtcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdzZXRfZGxnX2F0dHInKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIHZhciByZXN1bHQgPSBhY3Rpb24udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3VsdFtpXS5jaG9pY2VfbGlzdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5UeXBlPT0n5a2X5YW4JyB8fCBhdHRyW2pdLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdEl0ZW1MaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHJlc3VsdFtpXS5jaG9pY2VfbGlzdCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXJlc3VsdFtpXS5jaG9pY2VfbGlzdFtkXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGljdEl0ZW1MaXN0LnB1c2goe1wiQ05fU19OQU1FXCI6dmFsLFwiTmFtZVwiOnZhbCxcImxhYmVsXCI6dmFsLFwidmFsdWVcIjp2YWx9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGF0dHJbal0uZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gcmVzdWx0W2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhdHRyW2pdLk5hbWUrJz09JytyZXN1bHRbaV0uYXR0cik7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2gocmVzdWx0W2ldKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSBlbHNlIGlmIChkYXRhLmFjdGlvbltpXS5hY3Rpb25fdHlwZSA9PSAnc2V0X2dsb2JhbF9hdHRyJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgJHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIgPSBkYXRhLmFjdGlvbltpXS52YWx1ZSB8fCBbXTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFxuXHRcdCAgICBcdFx0XHRpZiAoZGF0YS5yZXN1bHQpIHtcblx0XHQgICAgXHRcdFx0ICAgIHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHR9ZWxzZXtcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68zXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHRcdH1cblx0XHQgICAgXHR9KS5jYXRjaChleD0+e1xuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68zLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHR9KTtcblx0XHQgICAgfSxcblx0XHRcdE9LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KCl7XG5cdFx0ICAgIFx0dmFyIGVudmlyb21lbnQgPSB7XG5cdFx0XHRcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdFx0XHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0XHRcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgbWFzdGVyOiB7XG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHQgICAgICAgIFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9O1xuXHRcdCAgICBcdFxuXHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuZWRpdF9va19ldmVudC5zY3JpcF9pZDtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0ICAgIFx0aWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aCA+IDApIHtcblx0XHQgICAgXHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdCAgICAgICAgaWYgKCFyZXEuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIgPT0gcy5uYW1lXG5cdFx0ICAgIFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdCAgICAgICAgICAgIHJlcS5wdXNoKHsgJ2F0dHInOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyLCAndmFsJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0udmFsdWUgfSk7XG5cdFx0ICAgIFx0ICAgICAgICB9XG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9XG5cdFx0ICAgIFx0dmFyIGluZm8gPSB7XG5cdFx0ICAgIFx0ICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0ICAgIFx0ICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0ICAgIFx0ICAgIHByb2plY3RpZDogJycsXG5cdFx0ICAgIFx0ICAgIHJjbHNpZDogJycsXG5cdFx0ICAgIFx0ICAgIHJvYmppZDogJycsXG5cdFx0ICAgIFx0ICAgIHVzZXJsb2dpbjogJycsXG5cdFx0ICAgIFx0ICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdCAgICBcdCAgICBvYmppZDogXCJcIixcblx0XHQgICAgXHQgICAgYXR0cjogcmVxLFxuXHRcdCAgICBcdH1cblx0XHQgICAgXHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLHJjbHNpZDogaW5mby5yY2xzaWQsIFxuXHRcdFx0XHRcdHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcblx0XHRcdFx0XHRhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1x0XHRcblx0XHQgICAgXHRcdFx0dmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xuXHRcdCAgICBcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgLy8gc2VsZi5jbGFzc19hdHRyX2VsZS5maW5kKCcuYXR0cl9maWVsZFtkYXRhLWZpZWxkPVwiJyArIHJlc3VsdFtpXS5hdHRyICsgJ1wiXScpLnZhbChyZXN1bHRbaV0udmFsdWUpLmRhdGEoJ3ZhbCcsIHJlc3VsdFtpXS52YWx1ZSk7XG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgIGlmICghdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLmFkZCgpO1xuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNFwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNC4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIERhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4oZXZlbnRpZCxkYXRhX2F0dHIsYnV0dG9uX2NhbGxiYWNrLGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcblx0XHRcdFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH07XG5cdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIGlmICghcmVxLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdFx0XHQgICAgICAgICAgICByZXR1cm4gdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciA9PSBzLm5hbWVcblx0XHRcdFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHRcdFx0ICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHRcdFx0ICAgICAgICAgICAgcmVxLnB1c2goeyAnYXR0cic6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIsICd2YWwnOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS52YWx1ZSB9KTtcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGV4dGluZm8gPSBlbnZpcm9tZW50O1xuXHRcdFx0XHRleHRpbmZvLmVkaXRfZGxnID0ge1xuXHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0ICAgIGV4dGluZm8uZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0XHRcdCAgICAgICAgbmFtZTogZGF0YV9hdHRyLk5hbWUsLy/lrZfmrrXlsZ7mgKdcblx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0XHRcdCAgICAgICAgdHlwZTogZGF0YV9hdHRyLlR5cGUsLy/lrZfmrrXnsbvlnotcblx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHRcdFx0ICAgICAgICBidXR0b25fdG9vbHRpcDogZGF0YV9hdHRyLmJ1dHRvbl90b29sdGlwLy/lvJXnlKjmjInpkq7nmoR0b29sdGlwXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdFx0XHRcdGVkdHlwZTogIFwiMFwiLCBldmVudGlkOiBldmVudGlkLCBwcm9qZWN0aWQ6ICcnLHJjbHNpZDogJycsIHJvYmppZDogJycsIHVzZXJsb2dpbjogJycsIFxuXHRcdFx0XHRcdGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCBvYmppZDogJycsYXR0cjogSlNPTi5zdHJpbmdpZnkocmVxKSwgXG5cdFx0XHRcdFx0ZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZXh0aW5mbyksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHRcdFx0XHRcdGlmIChkYXRhICE9IFwiXCIpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHZhciBhY3Rpb25zID0gZGF0YS5hY3Rpb247XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhY3Rpb25zKTtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25zKSB7XG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25zW2ldO1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgdmFsID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgZW52aXJvbWVudCA9IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpO1xuXHRcdFx0XHRcdFx0ICAgICAgICBcblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9wYW5lbCcpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgdGl0bGU6ICc8aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiAnICsgJ+aPkOekuicsXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICBjb250ZW50OiBhY3Rpb24uYWN0aW9uX3R5cGUgKyAn5q2kYWN0aW9u5bCa5pyq5aSE55CG77yBJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgZC5zaG93KCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgZWxzZSBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdvcGVuX3NlbGVjdF91c2VyZGxnJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHN0eWxlID0gdmFsLnN0eWxlO1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gc3R5bGUgPT0gJ3VzZXInID8gJ+mAieaLqeS6uuWRmCcgOiBzdHlsZSA9PSAnZGVwYXJ0bWVudCcgPyAn6YCJ5oup6YOo6ZeoJyA6IHN0eWxlID09ICdyb2xlJyA/ICfpgInmi6nop5LoibInIDogJydcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcGFyYW09e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpbmRleDogaW5kZXgsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlpbmRleDppaW5kZXgsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJ1dHRvbl9jYWxsYmFjazpidXR0b25fY2FsbGJhY2ssXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcTpyZXEsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGFfYXR0cjpkYXRhX2F0dHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0dXJsOicuLi9zZWxwc24vaW5kZXg/bXVsaXQ9ZmFsc2UmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0QWRkUGVyKGRhdGEscGFyYW0peyBcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0dmFyIGNhbGxiYWNrX2V2ZW50aWQgPSBwYXJhbS5idXR0b25fY2FsbGJhY2sudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZDogY2FsbGJhY2tfZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGF0dHI6IHBhcmFtLnJlcSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBpbnB1dHBhcmFtZXRlcjogZGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIHBhcmFtLmRhdGFfYXR0cik7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0fVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHR9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcdFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9kYXRhX3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9jb21tb25fZGxnJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9wcm9qZWN0X3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIC8vY29uc29sZS5sb2coYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5tdWxpdF9zZWxlY3QpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHByaVJlbCA9ICctMSc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5YWo6YOo55u45YWzJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMCc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHotJ/otKPnmoTpobnnm64nKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICcxJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWIm+W7uueahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzInO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5LiO55qEJyB8fCBhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHlj4LliqDnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICczJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWFs+azqOeahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzQnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5LiL5bGe55qE6aG555uuJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJpUmVsID0gJzUnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcGFyYW1fPXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRidXR0b25fY2FsbGJhY2s6YnV0dG9uX2NhbGxiYWNrLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDonLi4vc2VsUHJqL2luZGV4P3JlbGF0aW9uPScrcHJpUmVsKycmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbV8pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRldmVudHM6e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uSUQrJzsnK2RhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjYWxsYmFja19ldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGNhbGxiYWNrX2V2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGVkdHlwZTogXCIyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogZGF0YVswXS5JRCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcmNsc2lkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgYXR0cjogcGFyYW0ucmVxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGl0bGU6ICc8aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiAnICsgJ+aPkOekuicsXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZC5zaG93KCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLo1LjJcIixjb250ZW50OiAn6LCD55SoIGJlZm9yZV9jbGlja19idXR0b24g6ISa5pys6L+U5Zue56m677yMZXZlbnRfaWQnICsgZXZlbnRpZCxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekujUuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgXG5cdFx0XHRcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///66\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 67));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 69));\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 70));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 components: {\n pickerAddress: _pickerAddress.default\n },\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\",\n //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\",\n //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\",\n //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [],\n //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n inputValList: [{\n Name: \"test\"\n }, {\n Name: \"test2\"\n }, {\n Name: \"test3\"\n }, {\n Name: \"test4\"\n }, {\n Name: \"test5\"\n }, {\n Name: \"test6\"\n }, {\n Name: \"test7\"\n }]\n };\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({\n title: options.titlename\n }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n // console.log(param);\n if (!param.EditDlgMode) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃紪杈戠獥鍙o紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!param.Edit_dlg.Name) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n this.$data.param = param;\n var edit_dlg = {\n Model: param.EditDlgMode,\n Name: param.Edit_dlg.Name\n };\n var dataInfo = {\n class_id: param.clsid\n };\n var $this = this;\n $this.$store.state.thisareaFuncID = param.clsid;\n // console.log($this.$store.getters.getclassAttrList);\n //鑾峰彇\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo();\n } else $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n $this.classGridStyleInfo();\n } else {\n uni.showModal({\n title: \"閿欒1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n methods: {\n cancel: function cancel(e) {\n uni.navigateBack({\n delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉\n });\n },\n classGridStyleInfo: function classGridStyleInfo() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var $this, gridstyleInfo;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: $this.$data.param.clsid,\n name: $this.$data.param.Edit_dlg.Name,\n type: '2'\n };\n $this.$store.state.thisEditName = $this.$data.param.Edit_dlg.Name;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n $this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:482\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n var $ele = e;\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n uni.hideKeyboard();\n _this2.onevent($ele, result.decodedata);\n });\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:506\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:509\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/classAttr.vue:512\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {\n //涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n for (var v in item) {\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;\n iindex = j;\n dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n __f__(\"log\", data_attr, \" at pages/modal/classAttr.vue:579\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/classAttr.vue:582\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) req.push({\n attr: ar.Name,\n val: itemvalue.Name\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n },\n onevent: function onevent(e, decodedata) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(decodedata);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = decodedata ? decodedata : e.target.value;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info, data_attr);\n }\n }\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n inputValListIsDel: function inputValListIsDel(index) {\n // console.log(index);\n this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹筡n // console.log(this.$data.inputValList);\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/classAttr.vue:713\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"before_click_button-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!button_callback) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"button_callback-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:739\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/classAttr.vue:768\");\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n sava: function sava() {\n if (this.$data.edit_ok_event) this.OKDataObjRunCustomEvent();else this.add();\n },\n add: function add() {\n var _this3 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n name: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n name: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n name: ar.Name,\n value: valStr\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid\n }\n };\n var dataInfo = {\n class_id: this.$data.param.clsid,\n data_obj_id: '',\n masterclsid: '',\n req: JSON.stringify(req),\n upfile: JSON.stringify([]),\n post_data: JSON.stringify({}),\n compose: JSON.stringify([]),\n refdatastore: JSON.stringify([]),\n extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: ''\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:873\");\n // return\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:876\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({\n title: action.result,\n icon: \"success\",\n duration: 3000\n });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/classAttr?param=' + JSON.stringify(_this3.$data.param) + \"&titlename=\" + _this3.$data.title\n });\n // this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/classAttr.vue:895\");\n uni.hideLoading();\n uni.showModal({\n title: \"鎻愮ず\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n val: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n __f__(\"log\", req, \" at pages/modal/classAttr.vue:1012\");\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/classAttr.vue:1028\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/classAttr.vue:1029\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {\n var _this4 = this;\n var param = {\n EditStyle: this.$data.param.Edit_dlg.Name,\n ViewStyle: this.$data.param.Edit_dlg.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1059\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1061\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/classAttr.vue:1076\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this4.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this4.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this4.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this4.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this4.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this4.$data.refdatastore.length; j++) {\n if (_this4.$data.refdatastore[j].attr == val[i].attr) {\n _this4.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒2.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒2.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n if (data_attr) {\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: '',\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1163\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1165\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/classAttr.vue:1171\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/classAttr.vue:1198\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒3\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒3.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {\n var _this5 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n }\n };\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'val': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: \"\",\n attr: req\n };\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1318\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1320\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == result[i].attr) {\n _this5.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n _this5.add();\n } else {\n uni.showModal({\n title: \"閿欒4\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒4.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {\n var _this6 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.clsid,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.clsid // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'val': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.clsid //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n extinfo.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: \"0\",\n eventid: eventid,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.clsid,\n objid: '',\n attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/classAttr.vue:1409\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/classAttr.vue:1411\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/classAttr.vue:1417\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this6;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr\n };\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/classAttr.vue:1447\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req,\n inputparameter: data\n };\n $this.DataObjRunCustomEvent(info, param.data_attr);\n }\n }\n });\n } else if (action.action_type == 'open_data_query_dlg') {} else if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧') priRel = '0';else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') priRel = '1';else if (action.value.select_range == '鎴戝垱寤虹殑') priRel = '2';else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑') priRel = '3';else if (action.value.select_range == '鎴戝叧娉ㄧ殑') priRel = '4';else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') priRel = '5';\n var $this = _this6;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req\n };\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.clsid,\n objid: \"\",\n attr: param.req\n };\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n });\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n }\n }\n }\n } else {\n uni.showModal({\n title: \"鎻愮ず5.2\",\n content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒5\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"鎻愮ず5.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwicGlja2VyQWRkcmVzcyIsImRhdGEiLCJ0aXRsZSIsInBhcmFtIiwiY2xhc3NBdHRyTGlzdCIsImNsYXNzR3JpZFN0eWxlIiwiZWRpdF9pbml0YWxfZXZlbnQiLCJlZGl0X29rX2V2ZW50IiwiZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCIsImVkaXRfY29tcG9zZV9jbHNfaWQiLCJnbG9iYWxfYXR0ciIsInJlZmRhdGFzdG9yZSIsImlucHV0VmFsTGlzdCIsIk5hbWUiLCJvbkxvYWQiLCJvcHRpb25zIiwidW5pIiwic2V0TmF2aWdhdGlvbkJhclRpdGxlIiwidGl0bGVuYW1lIiwiSlNPTiIsInBhcnNlIiwiJGRhdGEiLCJBZGRfQnRuTmFtZSIsIkVkaXREbGdNb2RlIiwic2hvd01vZGFsIiwiY29udGVudCIsInNob3dDYW5jZWwiLCJjb25maXJtVGV4dCIsIkVkaXRfZGxnIiwiZWRpdF9kbGciLCJNb2RlbCIsImRhdGFJbmZvIiwiY2xhc3NfaWQiLCJjbHNpZCIsIiR0aGlzIiwiJHN0b3JlIiwic3RhdGUiLCJ0aGlzYXJlYUZ1bmNJRCIsImdldHRlcnMiLCJnZXRjbGFzc0F0dHJMaXN0IiwiY2xhc3NHcmlkU3R5bGVJbmZvIiwiZGlzcGF0Y2giLCJ0aGVuIiwic3VjY2VzcyIsImNvZGUiLCJtc2ciLCJjYXRjaCIsImV4IiwiZXJyTXNnIiwibWV0aG9kcyIsImNhbmNlbCIsImUiLCJuYXZpZ2F0ZUJhY2siLCJkZWx0YSIsImdyaWRzdHlsZUluZm8iLCJuYW1lIiwidHlwZSIsInRoaXNFZGl0TmFtZSIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImNsYXNzX2F0dHJfaW5pdCIsIlN0eWxlRGVmIiwib250YXAiLCIkZWxlIiwiZ2V0QXBwIiwib25TY2FuIiwicmVzdWx0IiwidGFyZ2V0IiwiZGF0YXNldCIsIkF0dHIiLCJWYWx1ZSIsImRlY29kZWRhdGEiLCJoaWRlS2V5Ym9hcmQiLCJvbmV2ZW50Iiwib25hcnJvdyIsImluZGV4Iiwib3BlbiIsIk9wZW4iLCJvbmRhdGVUaW1lIiwidmFsdWUiLCJvbmNoYW5nZSIsImRpY3RpdGVtIiwiZGF0YV9hdHRyIiwiZXZlbnRpZCIsImFjdGlvbiIsInJlcSIsImF0dHJsaXN0IiwiaSIsImxlbmd0aCIsImF0dHIiLCJqIiwiYXIiLCJUeXBlIiwicHVzaCIsInZhbCIsIlZhbElEIiwiaW5mbyIsImVkdHlwZSIsInByb2plY3RpZCIsInJjbHNpZCIsInJvYmppZCIsInVzZXJsb2dpbiIsIm9iamlkIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50Iiwib25jaGFuZ2UyIiwiaXRlbSIsImRlbHZhbHVlIiwiaWluZGV4IiwiZGluZGV4IiwiZCIsInYiLCJpdGVtdmFsdWUiLCJvbmNoZWNrIiwiaXNjaGVja2VkIiwiaXNjaGVjayIsImlucHV0VmFsTGlzdElzRGVsIiwic3BsaWNlIiwiYWRkcmVzc2NoYW5nZSIsImpvaW4iLCJjbGFzc0F0dHJfZXh0QnV0dG9uIiwiYmVmb3JlX2NsaWNrX2J1dHRvbiIsImJ1dHRvbl9jYWxsYmFjayIsIkRhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4iLCJjbGFzc0F0dHJfQWRkUGVyIiwibmF2aWdhdGVUbyIsInVybCIsInN0cmluZ2lmeSIsImV2ZW50cyIsIkFkZFBlciIsIkxvZ2luIiwidHJpbSIsImNsYXNzQXR0cl9BZGRSZWYiLCJjbGFzc0F0dHJfQWRkUHJqIiwiSUQiLCJzYXZhIiwiT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJhZGQiLCJzaG93TG9hZGluZyIsInNlbGVjdCIsInZhbFN0ciIsIk5vdEVtcHR5Iiwibm90ZW1wdHkiLCJoaWRlTG9hZGluZyIsIkRpc3BOYW1lIiwiZW52aXJvbWVudCIsImNsc19pZCIsImJ1dHRvbl9uYW1lIiwibWFzdGVyIiwiZGF0YV9vYmpfaWQiLCJtYXN0ZXJjbHNpZCIsInVwZmlsZSIsInBvc3RfZGF0YSIsImNvbXBvc2UiLCJleHRpbmZvIiwibm90X3RyaWdnZXJfc3lzX2V2ZW50IiwiQWN0aW9uIiwicmV0IiwicmVzdWx0X3R5cGUiLCJzaG93VG9hc3QiLCJpY29uIiwiZHVyYXRpb24iLCJyZWRpcmVjdFRvIiwic2hvd19zdHlsZSIsIm5ld2F0dHJsaXN0IiwiYXR0cmdyb3VwX25hbWUiLCJhdHRycyIsInMiLCJjbHNhdHRyIiwibCIsImNhIiwiZWRpdCIsImV4dF9idXR0b24iLCJidXR0b25faW1nIiwiYnV0dG9uX3Rvb2x0aXAiLCJoaWRkZW4iLCJ1bmRlZmluZWQiLCJkaWN0aXRlbWxpc3QiLCJsYWJlbCIsIkNOX1NfTkFNRSIsIkNOX0NfSVNfREVGQVVMVCIsIm5vd0RhdGUiLCJEYXRlIiwiZGF0ZSIsInllYXIiLCJnZXRGdWxsWWVhciIsIm1vbnRoIiwiZ2V0TW9udGgiLCJkYXkiLCJnZXREYXRlIiwicmVsQ2xzTGlzdCIsImF0dHJfcmVzY2xzIiwiUmVsQ2xzIiwic3BsaXQiLCJpaSIsInJlc2NscyIsImlkIiwiUmVsQ2xzTGlzdCIsIkJrQ29sb3IiLCJIYXNBY2UiLCJJbWdGb250U3R5bGUiLCJPcmRlciIsImNvbnRyb2xfc3R5bGUiLCJ0aXRsZV9wX3dkaXRoIiwiZXZlbnRsaXN0IiwiZXZlbnQiLCJldmVudF9pZCIsInNjcmlwX2lkIiwiY29tcG9zZV9jbHNfaWQiLCJpbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50IiwiRWRpdFN0eWxlIiwiVmlld1N0eWxlIiwiTm90VHJpZ2dlclN5c0V2ZW50IiwiaW5wdXRwYXJhbWV0ZXIiLCJhY3Rpb25saXN0IiwiYWN0aW9uX3R5cGUiLCJhIiwiZGljdEl0ZW1MaXN0IiwiY2hvaWNlX2xpc3QiLCJmaWx0ZXIiLCJmb3JtX2NvbnRyb2wiLCJ0ZXh0IiwiZ3JvdXBfbmFtZSIsIkdyb3VwTmFtZSIsInJlYWRvbmx5IiwiUmVhZE9ubHkiLCJyZXBsYWNlIiwiYyIsImFjdGlvbnMiLCJkaWFsb2ciLCJzaG93Iiwic3R5bGUiLCJjYWxsYmFja19ldmVudGlkIiwicHJpUmVsIiwic2VsZWN0X3JhbmdlIiwicGFyYW1fIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFnWUM7QUFoWUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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O2NBQUN4RCxVQUFVLEVBQUMsS0FBSztjQUFDQyxXQUFXLEVBQUM7WUFBSSxDQUFDLENBQUM7VUFDNUg7UUFDRCxDQUFDLE1BQUk7VUFDSlgsR0FBRyxDQUFDUSxTQUFTLENBQUM7WUFBQ3RCLEtBQUssRUFBQyxLQUFLO1lBQUN1QixPQUFPLEVBQUNrQixPQUFPLENBQUNFLEdBQUc7WUFBQ25CLFVBQVUsRUFBQyxLQUFLO1lBQUNDLFdBQVcsRUFBQztVQUFJLENBQUMsQ0FBQztRQUNuRjtNQUNELENBQUMsQ0FBQyxDQUFDbUIsS0FBSyxDQUFDLFVBQUFDLEVBQUUsRUFBRTtRQUNaO1FBQ0EvQixHQUFHLENBQUNRLFNBQVMsQ0FBQztVQUFDdEIsS0FBSyxFQUFDLE9BQU87VUFBQ3VCLE9BQU8sRUFBQ3NCLEVBQUUsQ0FBQ0MsTUFBTTtVQUFDdEIsVUFBVSxFQUFDLEtBQUs7VUFBQ0MsV0FBVyxFQUFDO1FBQUksQ0FBQyxDQUFDO01BQ25GLENBQUMsQ0FBQztJQUNBO0VBR0o7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuXHRpbXBvcnQgcGlja2VyQWRkcmVzcyBmcm9tICcuLi8uLi9qcy9waWNrZXJBZGRyZXNzL3BpY2tlckFkZHJlc3MudnVlJ1xuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0Y29tcG9uZW50czoge1xuICAgICAgICAgICAgcGlja2VyQWRkcmVzc1xuICAgICAgICB9LFxuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogJ+aWsOWinicsXG5cdFx0XHRcdHBhcmFtOnt9LFxuXHRcdFx0XHRjbGFzc0F0dHJMaXN0OltdLFxuXHRcdFx0XHRjbGFzc0dyaWRTdHlsZTpbXSxcblx0XHRcdFx0ZWRpdF9pbml0YWxfZXZlbnQ6XCJcIiwgIC8v5by556qX5Yid5aeL5YyW5LqL5Lu2SURcblx0XHRcdFx0ZWRpdF9va19ldmVudDpcIlwiLCAgICAgIC8v5by556qX54K55Ye7T0sg6Kem5Y+R5LqL5Lu2SURcblx0XHRcdFx0ZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudDpcIlwiLCAgLy/pgInmi6nnu4TmiJDlr7nosaHml7bosIPnlKhcblx0XHRcdFx0ZWRpdF9jb21wb3NlX2Nsc19pZDpcIlwiLFxuXHRcdFx0XHRnbG9iYWxfYXR0cjpbXSxcblx0XHRcdFx0cmVmZGF0YXN0b3JlOiBbXSxcdCAgIC8v5byV55So5pWw5o2u5a2Y5YKo5Yy6Ly8ge2F0dHI6J0dfUFJKXycgKyBiaW5kYXR0ciArICdfSUQnLCB2YWx1ZTppbmZvLmlkfVxuXHRcdFx0XHRpbnB1dFZhbExpc3Q6W3tOYW1lOlwidGVzdFwifSx7TmFtZTpcInRlc3QyXCJ9LHtOYW1lOlwidGVzdDNcIn0se05hbWU6XCJ0ZXN0NFwifSx7TmFtZTpcInRlc3Q1XCJ9LHtOYW1lOlwidGVzdDZcIn0se05hbWU6XCJ0ZXN0N1wifV0sXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRvbkxvYWQob3B0aW9ucykge1xuXHRcdFx0Ly8gY29uc29sZS5sb2cob3B0aW9ucyk7XG5cdFx0XHR1bmkuc2V0TmF2aWdhdGlvbkJhclRpdGxlKHsgdGl0bGU6IG9wdGlvbnMudGl0bGVuYW1lfSk7IC8v6K6+572u6aG26YOo5qCH6aKYIFxuXHRcdFx0dmFyIHBhcmFtID0gSlNPTi5wYXJzZShvcHRpb25zLnBhcmFtKTtcblx0XHRcdHRoaXMuJGRhdGEudGl0bGUgPSBwYXJhbS5BZGRfQnRuTmFtZT9wYXJhbS5BZGRfQnRuTmFtZTpvcHRpb25zLnRpdGxlbmFtZTsgLy/orr7nva7mjInpkq7mloflrZdcblx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdGlmKCFwYXJhbS5FZGl0RGxnTW9kZSl7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuivpeWKn+iDveeCueacqumFjee9rue8lui+keeql+WPo++8jOivt+mHjeaWsOmFjee9ru+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZighcGFyYW0uRWRpdF9kbGcuTmFtZSl7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuivpeWKn+iDveeCueacqumFjee9rueql+WPo+agt+W8j++8jOivt+mHjeaWsOmFjee9ru+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLiRkYXRhLnBhcmFtID0gcGFyYW07XG5cdFx0XHR2YXIgZWRpdF9kbGcgPSB7XG5cdFx0XHQgICAgTW9kZWw6IHBhcmFtLkVkaXREbGdNb2RlLFxuXHRcdFx0ICAgIE5hbWU6IHBhcmFtLkVkaXRfZGxnLk5hbWVcblx0XHRcdH1cblx0XHRcdHZhciBkYXRhSW5mbyA9IHtcblx0XHRcdFx0Y2xhc3NfaWQ6IHBhcmFtLmNsc2lkXG5cdFx0XHR9O1xuXHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzYXJlYUZ1bmNJRCA9IHBhcmFtLmNsc2lkO1xuXHRcdFx0Ly8gY29uc29sZS5sb2coJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdCk7XG5cdFx0XHQgLy/ojrflj5Zcblx0XHRcdGlmKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0IFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3QuZGF0YTtcblx0XHRcdFx0JHRoaXMuY2xhc3NHcmlkU3R5bGVJbmZvKCk7XG5cdFx0XHR9ZWxzZVxuXHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2NsYXNzQXR0ckxpc3QnLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8oKTtcblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFxuXHRcdH0sXG5cdFx0bWV0aG9kczoge1xuXHRcdFx0Y2FuY2VsKGUpe1xuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcblx0XHRcdFx0XHRkZWx0YToxIC8v6L+U5Zue5bGC5pWw77yMMuWImeS4iuS4iumhtVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRhc3luYyBjbGFzc0dyaWRTdHlsZUluZm8oKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIGdyaWRzdHlsZUluZm8gPSB7XG5cdFx0XHRcdFx0Y2xhc3NfaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdG5hbWU6ICR0aGlzLiRkYXRhLnBhcmFtLkVkaXRfZGxnLk5hbWUsXG5cdFx0XHRcdFx0dHlwZTogJzInXG5cdFx0XHRcdH07XG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzRWRpdE5hbWUgPSAkdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mbyk7XG5cdFx0XHRcdCAvL+iOt+WPllxuXHRcdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8pe1xuXHRcdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mby5kYXRhO1xuXHRcdFx0XHRcdCR0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKGdyaWRzdHlsZUluZm8pO1xuXHRcdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NHcmlkU3R5bGVJbmZvJyxncmlkc3R5bGVJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0XHRzdWNjZXNzLmRhdGEuU3R5bGVEZWYgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5TdHlsZURlZik7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0JHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjJcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuM1wiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0b250YXAoZSl7IC8v5omr56CB5Yqf6IO9XG5cdFx0XHRcdHZhciAkZWxlID0gZTtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlLnRhcmdldClcblx0XHRcdFx0Z2V0QXBwKCkub25TY2FuKChyZXN1bHQpPT57XG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhyZXN1bHQuZGVjb2RlZGF0YSk7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXJlc3VsdC5kZWNvZGVkYXRhO1xuXHRcdFx0XHRcdHVuaS5oaWRlS2V5Ym9hcmQoKTtcblx0XHRcdFx0XHR0aGlzLm9uZXZlbnQoJGVsZSxyZXN1bHQuZGVjb2RlZGF0YSk7XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0b25hcnJvdyhpbmRleCxvcGVuKXtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coaW5kZXgrJy0tJytvcGVuKTtcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5PcGVuPW9wZW49PXRydWU/ZmFsc2U6dHJ1ZTtcblx0XHRcdH0sXG5cdFx0XHRvbmRhdGVUaW1lKGUpIHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlLnRhcmdldClcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUudGFyZ2V0LnZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdG9uY2hhbmdlKGUpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgdmFsdWU9dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmRpY3RpdGVtW2UudGFyZ2V0LnZhbHVlXTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKHZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlLk5hbWU7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlKTtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmNoYW5nZTIoaXRlbSx2YWx1ZSxkZWx2YWx1ZSkge1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpdGVtKTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codmFsdWUpO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkZWx2YWx1ZSk7XG5cdFx0XHRcdGlmKGl0ZW0ubGVuZ3RoPT0wKXsgLy/kuLrnqbrml7bvvIzmuIXnqbrlsZ7mgKd2YWx1ZVxuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihkZWx2YWx1ZVswXS5OYW1lID09IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtW2RdLk5hbWUpe1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uVmFsdWU9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0Zm9yKHZhciB2IGluIGl0ZW0pe1xuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihpdGVtW3ZdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRpbmRleD1pO2lpbmRleD1qO2RpbmRleD1kO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR2YXIgaXRlbXZhbHVlID0gaXRlbVt2XTtcblx0XHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0XHRpZiAoaXRlbXZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5WYWx1ZT12YWx1ZTtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlKTtcblx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBpdGVtdmFsdWUuTmFtZX0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmV2ZW50KGUsZGVjb2RlZGF0YSl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGVjb2RlZGF0YSk7XG5cdFx0XHRcdGlmIChlLnRhcmdldC52YWx1ZSAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9ZGVjb2RlZGF0YT9kZWNvZGVkYXRhOmUudGFyZ2V0LnZhbHVlO1xuXHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmFjdGlvbjtcblx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0ICAgICAgICB2YXIgcmVxPVtdO1xuXHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIGRhdGFfYXR0cik7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0b25jaGVjayhlKSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGlzY2hlY2tlZCA9IGUudGFyZ2V0LmRhdGFzZXQuaXNjaGVjaz9mYWxzZTp0cnVlO1xuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRpZiAoaXNjaGVja2VkICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1pc2NoZWNrZWQ7XG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xuXHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdGlucHV0VmFsTGlzdElzRGVsKGluZGV4KXtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuaW5wdXRWYWxMaXN0LnNwbGljZShpbmRleCwgMSk7IC8v5Yig6ZmkdGFiUGFnZWpzb27nmoTlhoXlrrlcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codGhpcy4kZGF0YS5pbnB1dFZhbExpc3QpO1xuXHRcdFx0fSxcblx0XHRcdGFkZHJlc3NjaGFuZ2UoZSkge1xuXHRcdFx0ICAgIC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdCAgICBjb25zb2xlLmxvZyhlLmRhdGEuam9pbignOycpKVxuXHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9ZS5kYXRhLmpvaW4oJzsnKTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc0F0dHJfZXh0QnV0dG9uKGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHZhciBiZWZvcmVfY2xpY2tfYnV0dG9uID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLmJlZm9yZV9jbGlja19idXR0b247XG5cdFx0XHRcdHZhciBidXR0b25fY2FsbGJhY2sgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYnV0dG9uX2NhbGxiYWNrO1xuXHRcdFx0XHRpZighYmVmb3JlX2NsaWNrX2J1dHRvbil7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OlwiYmVmb3JlX2NsaWNrX2J1dHRvbi1ldmVudF9pZOS4uuepuu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZighYnV0dG9uX2NhbGxiYWNrKXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCJidXR0b25fY2FsbGJhY2stZXZlbnRfaWTkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdO1xuXHRcdFx0XHR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4oYmVmb3JlX2NsaWNrX2J1dHRvbiwgZGF0YV9hdHRyLCBidXR0b25fY2FsbGJhY2ssIGluZGV4LGlpbmRleCk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFBlcihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgcGFyYW09e2luZGV4OmluZGV4LGlpbmRleDppaW5kZXh9O1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOicuLi9zZWxwc24vaW5kZXg/bXVsaXQ9ZmFsc2UmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWx1ZT1kYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLkxvZ2luKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICBldmVudGlkID0gZXZlbnRpZC50cmltKCk7XG5cdFx0XHRcdFx0XHRcdCAgICBpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiNFwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46IGRhdGFbMF0uTG9naW4sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IFtdLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gdmFyIGRhdGFfYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XTtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRSZWYoZSl7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5q2k5Yqf6IO96L+Y5pyq5a6e546w77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdC8vIHZhciB2YWx1ZT10aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uUmVsQ2xzW2UudGFyZ2V0LnZhbHVlXTtcblx0XHRcdFx0Ly8gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRQcmooaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyIHBhcmFtPXtpbmRleDppbmRleCxpaW5kZXg6aWluZGV4fTtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vc2VsUHJqL2luZGV4P3JlbGF0aW9uPS0xJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsSUQ9ZGF0YVswXS5JRCsnOycrZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZCA9IGV2ZW50aWQudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHQgICAgaWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiBkYXRhWzBdLklELFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBhdHRyOiBbXSxcblx0XHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0ICAgICAgICAvLyB2YXIgZGF0YV9hdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdO1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0c2F2YSgpe1xuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5lZGl0X29rX2V2ZW50KVxuXHRcdFx0XHRcdHRoaXMuT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQoKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdHRoaXMuYWRkKCk7XG5cdFx0XHR9LFxuXHRcdFx0YWRkKCl7XG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XG5cdFx0XHRcdFx0dGl0bGU6XCLliqDovb3kuK0uLi5cIlxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+Wtl+WFuCcgfHwgYXIuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0aWYoYXIuc2VsZWN0PT10cnVlKXsgLy/liKTmlq3kuIvmi4nmmK/lkKblpJrpgIlcblx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsU3RyID1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgdiBpbiBhci5WYWx1ZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZih2YWxTdHIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbFN0cis9XCI7XCI7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPWFyLlZhbHVlW3ZdO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiB2YWxTdHJ9KTtcblx0XHRcdFx0XHRcdFx0fWVsc2Vcblx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZX0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYgKChhci5Ob3RFbXB0eSA9PSAnMScgfHwgYXIubm90ZW1wdHkgPT0gdHJ1ZSkgJiYgIWFyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHQvLyBpZihhci5ub3RFbXB0eT09JzEnKXtcblx0XHRcdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGVudmlyb21lbnQgPSB7XG5cdFx0XHRcdCAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHRcdFx0ICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgICBtYXN0ZXI6IHtcblx0XHRcdFx0ICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCBcblx0XHRcdFx0ICAgICB9XG5cdFx0XHRcdH07XG5cdFx0XHRcdCBcblx0XHRcdFx0dmFyIGRhdGFJbmZvPXtcblx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCBkYXRhX29ial9pZDogJycsIG1hc3RlcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgIHJlcTogSlNPTi5zdHJpbmdpZnkocmVxKSwgdXBmaWxlOiBKU09OLnN0cmluZ2lmeShbXSksIHBvc3RfZGF0YTogSlNPTi5zdHJpbmdpZnkoe30pLFxuXHRcdFx0XHQgICAgY29tcG9zZTogSlNPTi5zdHJpbmdpZnkoW10pLCByZWZkYXRhc3RvcmU6IEpTT04uc3RyaW5naWZ5KFtdKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIFxuXHRcdFx0XHRcdG5vdF90cmlnZ2VyX3N5c19ldmVudDogJydcblx0XHRcdFx0fTtcblx0XHRcdFx0XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHRcdFx0Ly8gcmV0dXJuXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRjbGFzc2F0dHInLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgYWN0aW9uID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEuQWN0aW9uKTtcblx0XHRcdFx0XHRcdGlmKGFjdGlvbi5yZXQ9PScwJyl7XG5cdFx0XHRcdFx0XHRcdGlmKGFjdGlvbi5yZXN1bHRfdHlwZT09JzAnKXtcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHt0aXRsZTphY3Rpb24ucmVzdWx0LGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIFwie1wicmV0XCI6MCwgXCJyZXN1bHRfdHlwZVwiOjAsIFwicmVzdWx0XCI6XCLliJvlu7rmiJDlip8xMjMxMjMxMjNcIixcImluZm9cIjpcIlwifVwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvL+WIt+aWsFxuXHRcdFx0XHRcdFx0dW5pLnJlZGlyZWN0VG8oe1xuXHRcdFx0XHRcdFx0XHR1cmw6Jy4uL21vZGFsL2NsYXNzQXR0cj9wYXJhbT0nK0pTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEucGFyYW0pK1wiJnRpdGxlbmFtZT1cIit0aGlzLiRkYXRhLnRpdGxlXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdC8vIHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivr1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc19hdHRyX2luaXQoKXtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlXG5cdFx0XHRcdHZhciBuZXdhdHRybGlzdCA9IFtdO1xuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICB2YXIgb3BlbiA9IGF0dHJsaXN0W2ldLm9wZW47XG5cdFx0XHRcdCAgICAgICAgdmFyIG5hbWUgPSBhdHRybGlzdFtpXS5hdHRyZ3JvdXBfbmFtZTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cnMgPSBhdHRybGlzdFtpXS5hdHRycztcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgY2xzYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtzXTtcblx0XHRcdFx0ICAgICAgICAgICAgaWYgKG5hbWUgPT0gY2xzYXR0ci5OYW1lKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IFtdO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgY2xzYXR0ci5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYSA9IGNsc2F0dHIuQXR0cltsXTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzW2pdLmF0dHIgPT0gY2EuTmFtZSkge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYWN0aW9uID0gYXR0cnNbal0uYWN0aW9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZWRpdCA9IGF0dHJzW2pdLmVkaXQ7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5ub3RlbXB0eSA9IGF0dHJzW2pdLm5vdGVtcHR5O1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZXh0X2J1dHRvbiA9IGF0dHJzW2pdLmV4dF9idXR0b247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25faW1nID0gYXR0cnNbal0uYnV0dG9uX2ltZztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl90b29sdGlwID0gYXR0cnNbal0uYnV0dG9uX3Rvb2x0aXA7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5iZWZvcmVfY2xpY2tfYnV0dG9uID0gYXR0cnNbal0uYmVmb3JlX2NsaWNrX2J1dHRvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9jYWxsYmFjayA9IGF0dHJzW2pdLmJ1dHRvbl9jYWxsYmFjaztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmhpZGRlbiA9IGF0dHJzW2pdLmhpZGRlbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLnNlbGVjdCA9IGF0dHJzW2pdLnNlbGVjdD09dW5kZWZpbmVkP2ZhbHNlOmF0dHJzW2pdLnNlbGVjdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5kaWN0aXRlbSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5zZWxlY3QgPT0gdHJ1ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBbXTsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7Ly9jYS5kaWN0aXRlbVswXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdGl0ZW1saXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgZCA9IDA7IGQgPCBjYS5kaWN0aXRlbS5sZW5ndGg7IGQrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS5sYWJlbD1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLnZhbHVlPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuZGljdGl0ZW1bZF0uQ05fQ19JU19ERUZBVUxUPT0nMScpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWU9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5pel5pyfJyB8fCBjYS5UeXBlPT0n5pe26Ze0Jyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGF0ZSA9IHt5ZWFyOiBub3dEYXRlLmdldEZ1bGxZZWFyKCksbW9udGg6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEsZGF5OiBub3dEYXRlLmdldERhdGUoKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gZGF0ZS55ZWFyICsgJy0nICsgKGRhdGUubW9udGggPj0gMTAgPyBkYXRlLm1vbnRoIDogJzAnICsgZGF0ZS5tb250aCkgKyAnLScgKyAoZGF0ZS5kYXkgPj0gMTAgPyBkYXRlLmRheSA6ICcwJyArIGRhdGUuZGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVsQ2xzTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyX3Jlc2NscyA9IGNhLlJlbENscy5zcGxpdCgnLCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBpaSBpbiBhdHRyX3Jlc2Nscyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZXNjbHMgPSBhdHRyX3Jlc2Nsc1tpaV0uc3BsaXQoJ3wnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVsQ2xzTGlzdC5wdXNoKHtpZDpyZXNjbHNbMF0sbmFtZTpyZXNjbHNbMV19KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlJlbENsc0xpc3QgPSByZWxDbHNMaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+3Jztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+ecgeW4guWMuicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ci5wdXNoKGNhKTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIG5ld2F0dHJsaXN0LnB1c2goe1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEJrQ29sb3I6IGNsc2F0dHIuQmtDb2xvcixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBIYXNBY2U6IGNsc2F0dHIuSGFzQWNlLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEltZ0ZvbnRTdHlsZTogY2xzYXR0ci5JbWdGb250U3R5bGUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgTmFtZTogY2xzYXR0ci5OYW1lLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9yZGVyOiBjbHNhdHRyLk9yZGVyLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9wZW46IG9wZW4sXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQXR0cjogYXR0cixcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRyb2xfc3R5bGU6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5jb250cm9sX3N0eWxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGVfcF93ZGl0aDp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnRpdGxlX3Bfd2RpdGhcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH0pXG5cdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdCAgICBpZiAobmV3YXR0cmxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCA9IG5ld2F0dHJsaXN0O1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdCAgICBpZiAodGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZikge1xuXHRcdFx0XHQgICAgICAgICBpZiAodGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgICAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlXG5cdFx0XHRcdCAgICAgICAgICAgIC8vICRlbC5maW5kKCcuYXR0cl9maWVsZCcpLnByb3AoJ3JlYWRvbmx5JywgdHJ1ZSk7XG5cdFx0XHRcdCAgICAgICAgICAgIC8vICRlbC5maW5kKCcuYXR0cl9maWVsZCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG5cdFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciBhdHRyID0gYXR0cmxpc3RbaV0uYXR0cnNcblx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLmF0dHIsIHZhbDogYXIudmFsdWU/YXIudmFsdWU6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0fVx0XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dmFyIGV2ZW50bGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuZXZlbnQ7XG5cdFx0XHRcdFx0aWYgKGV2ZW50bGlzdCkge1xuXHRcdFx0XHRcdCAgICBpZiAoZXZlbnRsaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX29rJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfb2tfZXZlbnQgPSBldmVudGxpc3RbaV07XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2luaXRpYWwnKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQgPSBldmVudGxpc3RbaV07XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2JlZm9yZV9zZWxlY3RfY29tcG9zZScpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X3NlbGVjdF9jb21wb3NlX2V2ZW50ID0gZXZlbnRsaXN0W2ldLnNjcmlwX2lkO1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfY29tcG9zZV9jbHNfaWQgPSBldmVudGxpc3RbaV0uY29tcG9zZV9jbHNfaWQ7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXEpO1xuXHRcdFx0XHRcdGlmICh0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50KSB7XG5cdFx0XHRcdFx0ICAgIHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudC5zY3JpcF9pZDtcblx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdCAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHQgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdCAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0ICAgIHRoaXMuaW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSk7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0KTtcblx0XHRcdFx0XHRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmnKrmib7liLDlj6/mmL7npLrnmoTnmoTlsZ7mgKdcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGluaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyl7XG5cdFx0XHRcdHZhciBwYXJhbSA9IHtcblx0XHRcdFx0ICAgIEVkaXRTdHlsZTogdGhpcy4kZGF0YS5wYXJhbS5FZGl0X2RsZy5OYW1lLFxuXHRcdFx0XHQgICAgVmlld1N0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLkVkaXRfZGxnLk5hbWUsXG5cdFx0XHRcdCAgICBOb3RUcmlnZ2VyU3lzRXZlbnQ6IDAsXG5cdFx0XHRcdCAgICBlbnZpcm9tZW50OiB7XG5cdFx0XHRcdCAgICAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHRcdFx0ICAgICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgICAgICBtYXN0ZXI6IHtcblx0XHRcdFx0ICAgICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHQgICAgICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBpbnB1dHBhcmFtZXRlciA9ICcnO1xuXHRcdFx0XHR2YXIgZ2xvYmFsX2F0dHIgPSAnJztcblx0XHRcdFx0XG5cdFx0XHRcdHZhciBkYXRhSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLFxuICAgICAgICAgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG4gICAgICAgICAgICAgICAgICAgIGF0dHI6IEpTT04uc3RyaW5naWZ5KGluZm8uYXR0ciksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KHBhcmFtKSwgaW5wdXRwYXJhbWV0ZXI6IGlucHV0cGFyYW1ldGVyLCBnbG9iYWxfYXR0cjogZ2xvYmFsX2F0dHJcbiAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHRcdFx0XHRcdHZhciBhY3Rpb25saXN0ID0gZGF0YS5hY3Rpb247XG5cdFx0XHRcdFx0XHRpZiAoYWN0aW9ubGlzdCkge1xuXHRcdFx0XHRcdFx0ICAgIGZvciAodmFyIGogPSAwOyBqIDwgYWN0aW9ubGlzdC5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtqXVxuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgYWN0aW9uX3R5cGUgPSBhY3Rpb24uYWN0aW9uX3R5cGU7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbl90eXBlID09ICdzZXRfZGxnX2F0dHInKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBpZiAodmFsdWUpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgdmFsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YWwgPSBKU09OLnBhcnNlKHZhbHVlKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHZhbCk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBhID0gMDsgYSA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGErKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgbCA9IDA7IGwgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbYV0uQXR0ci5sZW5ndGg7IGwrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgY2EgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbYV0uQXR0cltsXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHZhbFtpXS5hdHRyICA9PSBjYS5OYW1lKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+Wtl+WFuCcgfHwgY2EuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0SXRlbUxpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdmFsW2ldLmNob2ljZV9saXN0KXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHZhbCA9dmFsW2ldLmNob2ljZV9saXN0W2RdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaWN0SXRlbUxpc3QucHVzaCh7XCJDTl9TX05BTUVcIjp2YWwsXCJOYW1lXCI6dmFsLFwibGFiZWxcIjp2YWwsXCJ2YWx1ZVwiOnZhbH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtID0gZGljdEl0ZW1MaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYXR0cltqXS5kaWN0aXRlbSA9IHZhbFtpXS5jaG9pY2VfbGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNhLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsW2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2godmFsW2ldKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSB2YWxbaV0uYXR0cikge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHZhbFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbl90eXBlID09ICdvcGVuX3NlbGVjdF91c2VyZGxnJykge1xuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yLjJcIixjb250ZW50Olwib3Blbl9zZWxlY3RfdXNlcmRsZ+i/meS4qmFjdGlvbl90eXBl6L+Y5pyq5aSE55CG77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMlwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzIuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0ICAgIERhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLGRhdGFfYXR0cil7XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0ICAgIFx0dmFyIGVudmlyb21lbnQgPSB7XG5cdFx0ICAgIFx0ICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0ICAgIFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdCAgICBcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdCAgICBcdCAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0ICAgIFx0ICAgIG1hc3Rlcjoge1xuXHRcdCAgICBcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdCAgICBcdCAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fTtcblx0XHQgICAgXHRpZihkYXRhX2F0dHIpe1xuXHRcdFx0XHRcdGVudmlyb21lbnQuZWRpdF9kbGcgPSB7XG5cdFx0XHRcdFx0ICAgIHR5cGU6ICdzbWFsbCcsLy/lsI/nqpflj6Ncblx0XHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoZGF0YV9hdHRyKSB7XG5cdFx0XHRcdFx0ICAgIGVudmlyb21lbnQuZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0XHRcdFx0ICAgICAgICBuYW1lOiBkYXRhX2F0dHIuTmFtZSwvL+Wtl+auteWxnuaAp1xuXHRcdFx0XHRcdCAgICAgICAgdGV4dDogZGF0YV9hdHRyLkRpc3BOYW1lLC8v5pi+56S65paH5pysXG5cdFx0XHRcdFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0XHRcdFx0ICAgICAgICB0eXBlOiBkYXRhX2F0dHIuVHlwZSwvL+Wtl+auteexu+Wei1xuXHRcdFx0XHRcdCAgICAgICAgcmVhZG9ubHk6IGRhdGFfYXR0ci5SZWFkT25seSwvL+aYr+WQpuWPquivu1xuXHRcdFx0XHRcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHRcdFx0XHQgICAgICAgIGJ1dHRvbl90b29sdGlwOiBkYXRhX2F0dHIuYnV0dG9uX3Rvb2x0aXAvL+W8leeUqOaMiemSrueahHRvb2x0aXBcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQucmVwbGFjZSgneycsJycpLnJlcGxhY2UoJ30nLCcnKSxcblx0XHQgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0ICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGlucHV0cGFyYW1ldGVyOiAnJywgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdCAgICBcdFx0XHR2YXIgYWN0aW9ubGlzdCA9IGRhdGEuYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGFjdGlvbmxpc3QpO1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25saXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbmxpc3RbaV07XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnc2V0X2RsZ19hdHRyJykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYWN0aW9uLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHRbaV0uY2hvaWNlX2xpc3QpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uVHlwZT09J+Wtl+WFuCcgfHwgYXR0cltqXS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiByZXN1bHRbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID1yZXN1bHRbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhdHRyW2pdLmRpY3RpdGVtID0gZGljdEl0ZW1MaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYXR0cltqXS5kaWN0aXRlbSA9IHJlc3VsdFtpXS5jaG9pY2VfbGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYXR0cltqXS5OYW1lKyc9PScrcmVzdWx0W2ldLmF0dHIpO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5hY3Rpb25baV0uYWN0aW9uX3R5cGUgPT0gJ3NldF9nbG9iYWxfYXR0cicpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLmdsb2JhbF9hdHRyID0gZGF0YS5hY3Rpb25baV0udmFsdWUgfHwgW107XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYgKGRhdGEucmVzdWx0KSB7XG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgcmVzdWx0ID0gZGF0YS5yZXN1bHQ7XG5cdFx0ICAgIFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmICgkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vM1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMy4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0XHRPS0RhdGFPYmpSdW5DdXN0b21FdmVudCgpe1xuXHRcdCAgICBcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcblx0XHRcdFx0ICAgICAgICBcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fTtcblx0XHQgICAgXHRcblx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmVkaXRfb2tfZXZlbnQuc2NyaXBfaWQ7XG5cdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivt+mAieaLqScgfHwgYXIuVmFsdWU9PSfigJTigJTor7fpgInmi6nigJTigJQnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgaWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgfSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdCAgICBcdGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGggPiAwKSB7XG5cdFx0ICAgIFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHQgICAgICAgIGlmICghcmVxLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdCAgICAgICAgICAgIHJldHVybiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyID09IHMubmFtZVxuXHRcdCAgICBcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHQgICAgICAgICAgICByZXEucHVzaCh7ICdhdHRyJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciwgJ3ZhbCc6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLnZhbHVlIH0pO1xuXHRcdCAgICBcdCAgICAgICAgfVxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fVxuXHRcdCAgICBcdHZhciBpbmZvID0ge1xuXHRcdCAgICBcdCAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdCAgICBcdCAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdCAgICBcdCAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdCAgICBcdCAgICByY2xzaWQ6ICcnLFxuXHRcdCAgICBcdCAgICByb2JqaWQ6ICcnLFxuXHRcdCAgICBcdCAgICB1c2VybG9naW46ICcnLFxuXHRcdCAgICBcdCAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHQgICAgXHQgICAgb2JqaWQ6IFwiXCIsXG5cdFx0ICAgIFx0ICAgIGF0dHI6IHJlcSxcblx0XHQgICAgXHR9XG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdCAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZCxyY2xzaWQ6IGluZm8ucmNsc2lkLCBcblx0XHRcdFx0XHRyb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0XHRcdFx0YXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxuXHRcdCAgICAgICAgfVxuXHRcdCAgICBcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHQgICAgXHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdCAgICBcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0ICAgIFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcdFx0XG5cdFx0ICAgIFx0XHRcdHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgIC8vIHNlbGYuY2xhc3NfYXR0cl9lbGUuZmluZCgnLmF0dHJfZmllbGRbZGF0YS1maWVsZD1cIicgKyByZXN1bHRbaV0uYXR0ciArICdcIl0nKS52YWwocmVzdWx0W2ldLnZhbHVlKS5kYXRhKCd2YWwnLCByZXN1bHRbaV0udmFsdWUpO1xuXHRcdCAgICBcdFx0XHQgICAgdmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAoIXRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5hZGQoKTtcblx0XHQgICAgXHRcdH1lbHNle1xuXHRcdCAgICBcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzRcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdFx0fVxuXHRcdCAgICBcdH0pLmNhdGNoKGV4PT57XG5cdFx0ICAgIFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0ICAgIFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzQuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdH0pO1xuXHRcdCAgICB9LFxuXHRcdCAgICBEYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuKGV2ZW50aWQsZGF0YV9hdHRyLGJ1dHRvbl9jYWxsYmFjayxpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHRcdFx0ICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHRcdFx0ICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0XHRcdCAgICBtYXN0ZXI6IHtcblx0XHRcdFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uY2xzaWQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBpZiAoIXJlcS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIgPT0gcy5uYW1lXG5cdFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0XHRcdCAgICAgICAgICAgIHJlcS5wdXNoKHsgJ2F0dHInOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyLCAndmFsJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0udmFsdWUgfSk7XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBleHRpbmZvID0gZW52aXJvbWVudDtcblx0XHRcdFx0ZXh0aW5mby5lZGl0X2RsZyA9IHtcblx0XHRcdFx0ICAgIHR5cGU6ICdzbWFsbCcsLy/lsI/nqpflj6Ncblx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLmNsc2lkLC8v5b2T5YmN5pWw5o2u57G7aWRcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZGF0YV9hdHRyKSB7XG5cdFx0XHRcdCAgICBleHRpbmZvLmVkaXRfZGxnLmZvcm1fY29udHJvbCA9IHsvL+aJgOWxnueahOihqOWNleaOp+S7tlxuXHRcdFx0XHQgICAgICAgIG5hbWU6IGRhdGFfYXR0ci5OYW1lLC8v5a2X5q615bGe5oCnXG5cdFx0XHRcdCAgICAgICAgdGV4dDogZGF0YV9hdHRyLkRpc3BOYW1lLC8v5pi+56S65paH5pysXG5cdFx0XHRcdCAgICAgICAgZ3JvdXBfbmFtZTogZGF0YV9hdHRyLkdyb3VwTmFtZSwvL+WxnuaAp+e7hFxuXHRcdFx0XHQgICAgICAgIHR5cGU6IGRhdGFfYXR0ci5UeXBlLC8v5a2X5q6157G75Z6LXG5cdFx0XHRcdCAgICAgICAgcmVhZG9ubHk6IGRhdGFfYXR0ci5SZWFkT25seSwvL+aYr+WQpuWPquivu1xuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl9pbWc6IGRhdGFfYXR0ci5idXR0b25faW1nLC8v5byV55So5oyJ6ZKu55qE5Zu+5qCHXG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX3Rvb2x0aXA6IGRhdGFfYXR0ci5idXR0b25fdG9vbHRpcC8v5byV55So5oyJ6ZKu55qEdG9vbHRpcFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBkYXRhSW5mbyA9IHtcblx0XHRcdFx0XHRlZHR5cGU6ICBcIjBcIiwgZXZlbnRpZDogZXZlbnRpZCwgcHJvamVjdGlkOiAnJyxyY2xzaWQ6ICcnLCByb2JqaWQ6ICcnLCB1c2VybG9naW46ICcnLCBcblx0XHRcdFx0XHRjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCwgb2JqaWQ6ICcnLGF0dHI6IEpTT04uc3RyaW5naWZ5KHJlcSksIFxuXHRcdFx0XHRcdGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGV4dGluZm8pLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0XHRcdFx0XHRpZiAoZGF0YSAhPSBcIlwiKSB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR2YXIgYWN0aW9ucyA9IGRhdGEuYWN0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYWN0aW9ucyk7XG5cdFx0XHRcdFx0XHRpZiAoYWN0aW9ucykge1xuXHRcdFx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9uc1tpXTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbCA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGVudmlyb21lbnQgPSBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KTtcblx0XHRcdFx0XHRcdCAgICAgICAgXG5cdFx0XHRcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fcGFuZWwnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgIHZhciBkID0gZGlhbG9nKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcblx0XHRcdFx0XHRcdCAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9zZWxlY3RfdXNlcmRsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBzdHlsZSA9IHZhbC5zdHlsZTtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHN0eWxlID09ICd1c2VyJyA/ICfpgInmi6nkurrlkZgnIDogc3R5bGUgPT0gJ2RlcGFydG1lbnQnID8gJ+mAieaLqemDqOmXqCcgOiBzdHlsZSA9PSAncm9sZScgPyAn6YCJ5oup6KeS6ImyJyA6ICcnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHBhcmFtPXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRidXR0b25fY2FsbGJhY2s6YnV0dG9uX2NhbGxiYWNrLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhX2F0dHI6ZGF0YV9hdHRyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdHVybDonLi4vc2VscHNuL2luZGV4P211bGl0PWZhbHNlJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRldmVudHM6e1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHRjb25zb2xlLmxvZyhkYXRhKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGV2ZW50aWQ6IGNhbGxiYWNrX2V2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBhdHRyOiBwYXJhbS5yZXEsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgaW5wdXRwYXJhbWV0ZXI6IGRhdGFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBwYXJhbS5kYXRhX2F0dHIpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0fVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfSk7XHRcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fZGF0YV9xdWVyeV9kbGcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fY29tbW9uX2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBkID0gZGlhbG9nKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6Jyxcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBjb250ZW50OiBhY3Rpb24uYWN0aW9uX3R5cGUgKyAn5q2kYWN0aW9u5bCa5pyq5aSE55CG77yBJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBkLnNob3coKTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fcHJvamVjdF9xdWVyeV9kbGcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhhY3Rpb24udmFsdWUubXVsaXRfc2VsZWN0KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBwcmlSZWwgPSAnLTEnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+WFqOmDqOebuOWFsycpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzAnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR6LSf6LSj55qE6aG555uuJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMSc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHliJvlu7rnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICcyJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWPguS4jueahCcgfHwgYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5Yqg55qEJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMyc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHlhbPms6jnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICc0Jztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeS4i+WxnueahOmhueebricpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByaVJlbCA9ICc1Jztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHBhcmFtXz17XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGluZGV4OiBpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWluZGV4OmlpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnV0dG9uX2NhbGxiYWNrOmJ1dHRvbl9jYWxsYmFjayxcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxOnJlcVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR1cmw6Jy4uL3NlbFByai9pbmRleD9yZWxhdGlvbj0nK3ByaVJlbCsnJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW1fKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbHVlPWRhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLklEKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHR2YXIgY2FsbGJhY2tfZXZlbnRpZCA9IHBhcmFtLmJ1dHRvbl9jYWxsYmFjay50cmltKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tfZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBldmVudGlkOiBjYWxsYmFja19ldmVudGlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBwcm9qZWN0aWQ6IGRhdGFbMF0uSUQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICB1c2VybG9naW46IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5jbHNpZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGF0dHI6IHBhcmFtLnJlcSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9IGVsc2Uge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6NS4yXCIsY29udGVudDogJ+iwg+eUqCBiZWZvcmVfY2xpY2tfYnV0dG9uIOiEmuacrOi/lOWbnuepuu+8jGV2ZW50X2lkJyArIGV2ZW50aWQsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzVcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLo1LjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIFxuXHRcdFx0XG5cdFx0fVxuXHR9XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///66\n"); /***/ }), /* 67 */ @@ -9113,7 +9113,7 @@ value: _vm._$s(136, "a-value", _vm.scanCodeVal), _i: 136, }, - on: { focus: _vm.scan_ontap }, + on: { focus: _vm.scan_ontap, blur: _vm.scan_onevent }, }), _vm._$s(137, "i", _vm.param.Scan_Code.Have_Select_Button == true) ? _c( @@ -14922,7 +14922,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 67));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 69));\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 70));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 components: {\n pickerAddress: _pickerAddress.default\n },\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\",\n //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\",\n //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\",\n //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [],\n //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n scanCodeVal: \"\",\n subClassAttrList: [],\n subPanelList: [],\n subClassGridStyle: []\n };\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({\n title: options.titlename\n }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n __f__(\"log\", param, \" at pages/modal/ms_classAttr.vue:621\");\n if (!param.Master_Cls.View_Style) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃晫闈㈢獥鍙o紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!param.Master_Cls.View_Style.Name) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n this.$data.param = param;\n // var edit_dlg = {\n // Model: param.EditDlgMode,\n // Name: param.Master_Cls.View_Style.Name\n // }\n //涓绘暟鎹被鑾峰彇\n var dataInfo = {\n class_id: param.Master_Cls.ID\n };\n var $this = this;\n $this.$store.state.thisareaFuncID = param.Master_Cls.ID;\n // console.log($this.$store.getters.getclassAttrList);\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo(param.Master_Cls.ID, $this.$data.param.Master_Cls.View_Style.Name, 'Mast');\n } else {\n $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n $this.classGridStyleInfo(param.Master_Cls.ID, $this.$data.param.Master_Cls.View_Style.Name, 'Mast');\n } else {\n uni.showModal({\n title: \"閿欒1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n\n //浠庢暟鎹被鑾峰彇\n var subdataInfo = {\n class_id: param.Sub_Cls.ID\n };\n $this.$store.state.thisareaFuncSubID = param.Sub_Cls.ID;\n if ($this.$store.getters.getSubClassAttrList) {\n $this.$data.subClassAttrList = $this.$store.getters.getSubClassAttrList.data;\n $this.classGridStyleInfo(param.Sub_Cls.ID, $this.$data.param.Sub_Cls.View_Style.Name, 'Sub');\n } else {\n $this.$store.dispatch('subClassAttrList', subdataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.subClassAttrList = success.data;\n $this.classGridStyleInfo(param.Sub_Cls.ID, $this.$data.param.Sub_Cls.View_Style.Name, 'Sub');\n } else {\n uni.showModal({\n title: \"閿欒1_1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1_1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n },\n methods: {\n cancel: function cancel(e) {\n uni.navigateBack({\n delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉\n });\n },\n panel_del: function panel_del(index) {\n if (this.$data.subPanelList[index].scanCodeVal == this.$data.scanCodeVal) {\n this.$data.scanCodeVal = '';\n }\n this.$data.subPanelList.splice(index, 1);\n },\n classGridStyleInfo: function classGridStyleInfo(clsid, styleName, clsType) {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var $this, gridstyleInfo;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: clsid,\n name: styleName,\n type: '2'\n };\n $this.$store.state.thisEditName = styleName;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇涓绘暟鎹被鐣岄潰鏍峰紡\n if (clsType == 'Mast') {\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n $this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:724\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n } else if (clsType == 'Sub') {\n //鑾峰彇浠庢暟鎹被鐣岄潰鏍峰紡\n if ($this.$store.getters.getSubClassGridStyleInfo) {\n $this.$data.subClassGridStyle = $this.$store.getters.getSubClassGridStyleInfo.data;\n $this.subClass_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('subClassGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.subClassGridStyle = success.data;\n $this.subClass_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:745\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n var isVal = _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value;\n //涓绘暟鎹被鎵爜鏌ヨ鏁版嵁\n if (isVal != result.decodedata) {\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n //瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈琝n var eventid = _this2.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n var req = [];\n var attrlist = _this2.$data.classAttrList; //涓绘暟鎹被灞炴�\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: _this2.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: [],\n inputParamter: [{\n attr: 'mast_input_3037',\n value: result.decodedata\n }]\n };\n _this2.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n });\n },\n scan_ontap: function scan_ontap(e) {\n var _this3 = this;\n //鎵爜鍖烘壂鐮佸姛鑳絓n //console.log(e.target)\n getApp().onScan(function (result) {\n __f__(\"log\", result.decodedata, \" at pages/modal/ms_classAttr.vue:800\");\n var isflag = true;\n for (var i in _this3.$data.subPanelList) {\n if (_this3.$data.subPanelList[i].scanCodeVal == result.decodedata) isflag = false;\n }\n //瀛愭暟鎹被鎵爜鏌ヨ鏁版嵁\n if (isflag) {\n _this3.$data.scanCodeVal = result.decodedata;\n var eventid = _this3.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n var mast_req = [];\n //涓绘暟鎹被灞炴�\n var classattrlist = _this3.$data.classAttrList;\n for (var i = 0; i < classattrlist.length; i++) {\n var attr = classattrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') mast_req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) mast_req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else mast_req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var req = [];\n //瀛愭暟鎹被灞炴�\n var attrlist = _this3.$data.subClassAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: _this3.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: mast_req,\n inputParamter: [{\n attr: 'input_3037',\n value: _this3.$data.scanCodeVal\n }]\n };\n _this3.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n });\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/ms_classAttr.vue:873\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/ms_classAttr.vue:876\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/ms_classAttr.vue:879\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {\n //涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n for (var v in item) {\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;\n iindex = j;\n dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n __f__(\"log\", data_attr, \" at pages/modal/ms_classAttr.vue:946\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/ms_classAttr.vue:949\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) req.push({\n attr: ar.Name,\n val: itemvalue.Name\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n },\n onevent: function onevent(e) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info, data_attr);\n }\n }\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n inputValListIsDel: function inputValListIsDel(index) {\n // console.log(index);\n this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹筡n // console.log(this.$data.inputValList);\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/ms_classAttr.vue:1080\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"before_click_button-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!button_callback) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"button_callback-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n scan_classAttr_extButton: function scan_classAttr_extButton(e) {\n //---------鏈畬鎴�----------\n var $this = this;\n var Before_Select_Event = $this.$data.param.Scan_Code.Before_Select_Event.ID;\n var After_Select_Event = $this.$data.param.Scan_Code.After_Select_Event.ID;\n if (!Before_Select_Event) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"閫夋嫨鎸夐挳鍓嶄簨浠朵负绌猴紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!After_Select_Event) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏂板鎸夐挳鍚庝簨浠朵负绌猴紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n // var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(Before_Select_Event, '', After_Select_Event, '', '');\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/ms_classAttr.vue:1121\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/ms_classAttr.vue:1150\");\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n sava: function sava() {\n if (this.$data.param.Before_OK_Event)\n //鍒ゆ柇鍔熻兘鐐瑰弬鏁版槸鍚︽湁纭畾鍓嶈剼鏈琝n this.scan_OKDataObjRunCustomEvent(this.$data.param.Before_OK_Event.ID);else this.scan_OKDataObjRunCustomEvent(this.$data.param.After_OK_Event.ID);\n },\n add: function add() {\n var _this4 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n name: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n name: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n name: ar.Name,\n value: valStr\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID\n }\n };\n var dataInfo = {\n class_id: this.$data.param.Master_Cls.ID,\n data_obj_id: '',\n masterclsid: '',\n req: JSON.stringify(req),\n upfile: JSON.stringify([]),\n post_data: JSON.stringify({}),\n compose: JSON.stringify([]),\n refdatastore: JSON.stringify([]),\n extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: ''\n };\n\n // return\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1256\");\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1258\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({\n title: action.result,\n icon: \"success\",\n duration: 3000\n });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/ms_classAttr?param=' + JSON.stringify(_this4.$data.param) + \"&titlename=\" + _this4.$data.title\n });\n // this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:1277\");\n uni.hideLoading();\n uni.showModal({\n title: \"鎻愮ず\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith,\n Font: this.$data.classGridStyle.StyleDef.Font ? this.$data.classGridStyle.StyleDef.Font : {},\n Bk_Color: this.$data.classGridStyle.StyleDef.Bk_Color ? this.$data.classGridStyle.StyleDef.Bk_Color : '#FFFFFF',\n Text_Color: this.$data.classGridStyle.StyleDef.Text_Color ? this.$data.classGridStyle.StyleDef.Text_Color : '#000000'\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n value: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n // console.log(req);\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/ms_classAttr.vue:1413\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/ms_classAttr.vue:1414\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n subClass_attr_init: function subClass_attr_init() {\n var attrlist = this.$data.subClassGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.subClassAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.subClassAttrList.length; s++) {\n var clsattr = this.$data.subClassAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.subClassGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.subClassGridStyle.StyleDef.title_p_wdith,\n Font: this.$data.subClassGridStyle.StyleDef.Font ? this.$data.subClassGridStyle.StyleDef.Font : {},\n Bk_Color: this.$data.subClassGridStyle.StyleDef.Bk_Color ? this.$data.subClassGridStyle.StyleDef.Bk_Color : '#FFFFFF',\n Text_Color: this.$data.subClassGridStyle.StyleDef.Text_Color ? this.$data.subClassGridStyle.StyleDef.Text_Color : '#000000'\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.subClassAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.subClassGridStyle.StyleDef) {\n if (this.$data.subClassGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.subClassGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n value: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.subClassGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n // console.log(req);\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.scan_ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.subClassGridStyle, \" at pages/modal/ms_classAttr.vue:1551\");\n __f__(\"log\", this.$data.subClassAttrList, \" at pages/modal/ms_classAttr.vue:1552\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {\n var _this5 = this;\n var param = {\n EditStyle: this.$data.param.Master_Cls.View_Style.Name,\n ViewStyle: this.$data.param.Master_Cls.View_Style.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1582\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1584\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/ms_classAttr.vue:1599\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this5.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this5.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this5.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == val[i].attr) {\n _this5.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒2.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒2.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.Master_Cls.ID //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: '',\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1684\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1686\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/ms_classAttr.vue:1692\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/ms_classAttr.vue:1719\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒3\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒3.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {\n var _this6 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n }\n };\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'value': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1839\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1841\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this6.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this6.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this6.$data.refdatastore.length; j++) {\n if (_this6.$data.refdatastore[j].attr == result[i].attr) {\n _this6.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n _this6.add();\n } else {\n uni.showModal({\n title: \"閿欒4\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒4.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {\n var _this7 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'value': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.Master_Cls.ID //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n extinfo.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: \"0\",\n eventid: eventid,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: '',\n attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1930\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1932\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/ms_classAttr.vue:1938\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this7;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr\n };\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/ms_classAttr.vue:1968\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: param.req,\n inputparameter: data\n };\n $this.DataObjRunCustomEvent(info, param.data_attr);\n }\n }\n });\n } else if (action.action_type == 'open_data_query_dlg') {} else if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧') priRel = '0';else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') priRel = '1';else if (action.value.select_range == '鎴戝垱寤虹殑') priRel = '2';else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑') priRel = '3';else if (action.value.select_range == '鎴戝叧娉ㄧ殑') priRel = '4';else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') priRel = '5';\n var $this = _this7;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req\n };\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: param.req\n };\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n });\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n }\n }\n }\n } else {\n uni.showModal({\n title: \"鎻愮ず5.2\",\n content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒5\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"鎻愮ず5.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_ini_DataObjRunCustomEvent: function scan_ini_DataObjRunCustomEvent(info) {\n var _this8 = this;\n var param = {\n EditStyle: this.$data.param.Sub_Cls.View_Style.Name,\n ViewStyle: this.$data.param.Sub_Cls.View_Style.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Sub_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Sub_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2091\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2093\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/ms_classAttr.vue:2108\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this8.$data.subClassAttrList.length; a++) {\n for (var l = 0; l < _this8.$data.subClassAttrList[a].Attr.length; l++) {\n var ca = _this8.$data.subClassAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this8.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this8.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this8.$data.refdatastore.length; j++) {\n if (_this8.$data.refdatastore[j].attr == val[i].attr) {\n _this8.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒6.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒6\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒6.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_DataObjRunCustomEvent: function scan_DataObjRunCustomEvent(info, data_attr) {\n var _this9 = this;\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Sub_Cls.ID,\n // 鍔熻兘鐐逛粠鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Sub_Cls.ID,\n // button=bottom鏃�master鐨刢ls_id\n attr: info.mast_attr //涓绘暟鎹被灞炴�\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.Sub_Cls.ID //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: JSON.stringify(info.inputParamter),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2195\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2197\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/ms_classAttr.vue:2203\");\n for (var ii = 0; ii < actionlist.length; ii++) {\n var action = actionlist[ii];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {\n var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n }\n\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {\n var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/ms_classAttr.vue:2233\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (action.action_type == 'set_global_attr') {\n $this.$actiontr = action.value || [];\n } else if (action.action_type == 'add_subcls_panel') {\n //涓讳粠鏁版嵁绫绘壂鐮佹煡璇㈡暟鎹甛n var result = action.value;\n var list_1 = JSON.parse(JSON.stringify(_this9.$data.subClassAttrList));\n var scanCodeVal = $this.$data.scanCodeVal;\n if (info.inputParamter[0].attr == \"mast_input_3037\")\n //鍒ゆ柇鏄富鏁版嵁绫绘壂鐮佹煡璇㈡暟鎹甛n scanCodeVal = \"mast_input_3037-\" + ii;\n $this.$data.subPanelList.push({\n scanCodeVal: scanCodeVal,\n subClassAttr: list_1\n });\n for (var i = 0; i < result.length; i++) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n if ($this.$data.subPanelList[s].scanCodeVal == scanCodeVal) {\n var _subClassAttr = $this.$data.subPanelList[s].subClassAttr;\n for (var c = 0; c < _subClassAttr.length; c++) {\n var attr = _subClassAttr[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n // console.log(attr[j].Name+'=='+result[i].attr);\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n\n // $this.$data.subPanelList[s].subClassAttr=list_1;\n }\n }\n\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n }\n }\n if (data.result) {\n var _list_ = JSON.parse(JSON.stringify(_this9.$data.subClassAttrList));\n var scanCodeVal = $this.$data.scanCodeVal;\n if (info.inputParamter[0].attr == \"mast_input_3037\") scanCodeVal = \"mast_input_3037-\" + ii;\n $this.$data.subPanelList.push({\n scanCodeVal: scanCodeVal,\n subClassAttr: _list_\n });\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n if ($this.$data.subPanelList[s].scanCodeVal == scanCodeVal) {\n var _subClassAttr = $this.$data.subPanelList[s].subClassAttr;\n for (var c = 0; c < _subClassAttr.length; c++) {\n var attr = _subClassAttr[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n // console.log(attr[j].Name+'=='+result[i].attr);\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒7\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒7.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_OKDataObjRunCustomEvent: function scan_OKDataObjRunCustomEvent(eventID) {\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var $this = this;\n var req = [];\n var attrlist = $this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n attr: ar.Name,\n value: valStr\n });\n } else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n } else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var objects = [];\n var subPanelList = $this.$data.subPanelList;\n for (var s = 0; s < subPanelList.length; s++) {\n var sub_req = [];\n for (var i = 0; i < subPanelList[s].subClassAttr.length; i++) {\n var attr = subPanelList[s].subClassAttr[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') sub_req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) sub_req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n sub_req.push({\n attr: ar.Name,\n value: valStr\n });\n } else sub_req.push({\n attr: ar.Name,\n value: ar.Value\n });\n } else sub_req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n objects.push({\n obj_id: subPanelList[s].scanCodeVal,\n obj_attrs: sub_req\n });\n }\n var dataJson = {\n master_cls: {\n cls_name: $this.$data.param.Master_Cls.Name,\n obj_attrs: req\n },\n input_3037: $this.$data.scanCodeVal,\n //鎵爜鍐呭\n op_type: $this.$data.param.OperationType,\n //浣滀笟绫诲瀷瀹氫箟\n sub_cls: {\n cls_name: $this.$data.param.Sub_Cls.Name,\n objects: objects\n }\n };\n __f__(\"log\", JSON.stringify(dataJson), \" at pages/modal/ms_classAttr.vue:2451\");\n var dataInfo = {\n edtype: \"0\",\n eventid: eventID,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.Sub_Cls.ID,\n objid: '',\n attr: JSON.stringify([]),\n extinfo: JSON.stringify([]),\n global_attr: JSON.stringify($this.$data.global_attr),\n dataJson: JSON.stringify(dataJson)\n };\n __f__(\"log\", JSON.stringify(dataInfo), \" at pages/modal/ms_classAttr.vue:2457\");\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2458\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2460\");\n uni.hideLoading();\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n if (eventID != $this.$data.param.After_OK_Event.ID) $this.scan_OKDataObjRunCustomEvent($this.$data.param.After_OK_Event.ID);else {\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/ms_classAttr?param=' + JSON.stringify($this.$data.param) + \"&titlename=\" + $this.$data.title\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒8\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.hideLoading();\n uni.showModal({\n title: \"閿欒8.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvbXNfY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwicGlja2VyQWRkcmVzcyIsImRhdGEiLCJ0aXRsZSIsInBhcmFtIiwiY2xhc3NBdHRyTGlzdCIsImNsYXNzR3JpZFN0eWxlIiwiZWRpdF9pbml0YWxfZXZlbnQiLCJlZGl0X29rX2V2ZW50IiwiZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCIsImVkaXRfY29tcG9zZV9jbHNfaWQiLCJnbG9iYWxfYXR0ciIsInJlZmRhdGFzdG9yZSIsInNjYW5Db2RlVmFsIiwic3ViQ2xhc3NBdHRyTGlzdCIsInN1YlBhbmVsTGlzdCIsInN1YkNsYXNzR3JpZFN0eWxlIiwib25Mb2FkIiwib3B0aW9ucyIsInVuaSIsInNldE5hdmlnYXRpb25CYXJUaXRsZSIsInRpdGxlbmFtZSIsIkpTT04iLCJwYXJzZSIsIiRkYXRhIiwiQWRkX0J0bk5hbWUiLCJNYXN0ZXJfQ2xzIiwiVmlld19TdHlsZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwiY29uZmlybVRleHQiLCJOYW1lIiwiZGF0YUluZm8iLCJjbGFzc19pZCIsIklEIiwiJHRoaXMiLCIkc3RvcmUiLCJzdGF0ZSIsInRoaXNhcmVhRnVuY0lEIiwiZ2V0dGVycyIsImdldGNsYXNzQXR0ckxpc3QiLCJjbGFzc0dyaWRTdHlsZUluZm8iLCJkaXNwYXRjaCIsInRoZW4iLCJzdWNjZXNzIiwiY29kZSIsIm1zZyIsImNhdGNoIiwiZXgiLCJlcnJNc2ciLCJzdWJkYXRhSW5mbyIsIlN1Yl9DbHMiLCJ0aGlzYXJlYUZ1bmNTdWJJRCIsImdldFN1YkNsYXNzQXR0ckxpc3QiLCJtZXRob2RzIiwiY2FuY2VsIiwiZSIsIm5hdmlnYXRlQmFjayIsImRlbHRhIiwicGFuZWxfZGVsIiwiaW5kZXgiLCJzcGxpY2UiLCJjbHNpZCIsInN0eWxlTmFtZSIsImNsc1R5cGUiLCJncmlkc3R5bGVJbmZvIiwibmFtZSIsInR5cGUiLCJ0aGlzRWRpdE5hbWUiLCJnZXRjbGFzc0dyaWRTdHlsZUluZm8iLCJjbGFzc19hdHRyX2luaXQiLCJTdHlsZURlZiIsImdldFN1YkNsYXNzR3JpZFN0eWxlSW5mbyIsInN1YkNsYXNzX2F0dHJfaW5pdCIsIm9udGFwIiwiZ2V0QXBwIiwib25TY2FuIiwicmVzdWx0IiwiaXNWYWwiLCJ0YXJnZXQiLCJkYXRhc2V0IiwiQXR0ciIsIlZhbHVlIiwiZGVjb2RlZGF0YSIsImV2ZW50aWQiLCJTY2FuX0NvZGUiLCJJbnB1dF9DaGFuZ2VfRXZlbnQiLCJyZXEiLCJhdHRybGlzdCIsImkiLCJsZW5ndGgiLCJhdHRyIiwiaiIsImFyIiwiVHlwZSIsInB1c2giLCJ2YWwiLCJWYWxJRCIsImluZm8iLCJlZHR5cGUiLCJwcm9qZWN0aWQiLCJyY2xzaWQiLCJyb2JqaWQiLCJ1c2VybG9naW4iLCJvYmppZCIsIm1hc3RfYXR0ciIsImlucHV0UGFyYW10ZXIiLCJ2YWx1ZSIsInNjYW5fRGF0YU9ialJ1bkN1c3RvbUV2ZW50Iiwic2Nhbl9vbnRhcCIsImlzZmxhZyIsIm1hc3RfcmVxIiwiY2xhc3NhdHRybGlzdCIsIm9uYXJyb3ciLCJvcGVuIiwiT3BlbiIsIm9uZGF0ZVRpbWUiLCJvbmNoYW5nZSIsImRpY3RpdGVtIiwiZGF0YV9hdHRyIiwiYWN0aW9uIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50Iiwib25jaGFuZ2UyIiwiaXRlbSIsImRlbHZhbHVlIiwiaWluZGV4IiwiZGluZGV4IiwiZCIsInYiLCJpdGVtdmFsdWUiLCJvbmV2ZW50Iiwib25jaGVjayIsImlzY2hlY2tlZCIsImlzY2hlY2siLCJpbnB1dFZhbExpc3RJc0RlbCIsImlucHV0VmFsTGlzdCIsImFkZHJlc3NjaGFuZ2UiLCJqb2luIiwiY2xhc3NBdHRyX2V4dEJ1dHRvbiIsImJlZm9yZV9jbGlja19idXR0b24iLCJidXR0b25fY2FsbGJhY2siLCJEYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuIiwic2Nhbl9jbGFzc0F0dHJfZXh0QnV0dG9uIiwiQmVmb3JlX1NlbGVjdF9FdmVudCIsIkFmdGVyX1NlbGVjdF9FdmVudCIsImNsYXNzQXR0cl9BZGRQZXIiLCJuYXZpZ2F0ZVRvIiwidXJsIiwic3RyaW5naWZ5IiwiZXZlbnRzIiwiQWRkUGVyIiwiTG9naW4iLCJ0cmltIiwiY2xhc3NBdHRyX0FkZFJlZiIsImNsYXNzQXR0cl9BZGRQcmoiLCJzYXZhIiwiQmVmb3JlX09LX0V2ZW50Iiwic2Nhbl9PS0RhdGFPYmpSdW5DdXN0b21FdmVudCIsIkFmdGVyX09LX0V2ZW50IiwiYWRkIiwic2hvd0xvYWRpbmciLCJzZWxlY3QiLCJ2YWxTdHIiLCJOb3RFbXB0eSIsIm5vdGVtcHR5IiwiaGlkZUxvYWRpbmciLCJEaXNwTmFtZSIsImVudmlyb21lbnQiLCJjbHNfaWQiLCJidXR0b25fbmFtZSIsIm1hc3RlciIsImRhdGFfb2JqX2lkIiwibWFzdGVyY2xzaWQiLCJ1cGZpbGUiLCJwb3N0X2RhdGEiLCJjb21wb3NlIiwiZXh0aW5mbyIsIm5vdF90cmlnZ2VyX3N5c19ldmVudCIsIkFjdGlvbiIsInJldCIsInJlc3VsdF90eXBlIiwic2hvd1RvYXN0IiwiaWNvbiIsImR1cmF0aW9uIiwicmVkaXJlY3RUbyIsInNob3dfc3R5bGUiLCJuZXdhdHRybGlzdCIsImF0dHJncm91cF9uYW1lIiwiYXR0cnMiLCJzIiwiY2xzYXR0ciIsImwiLCJjYSIsImVkaXQiLCJleHRfYnV0dG9uIiwiYnV0dG9uX2ltZyIsImJ1dHRvbl90b29sdGlwIiwiaGlkZGVuIiwidW5kZWZpbmVkIiwiZGljdGl0ZW1saXN0IiwibGFiZWwiLCJDTl9TX05BTUUiLCJDTl9DX0lTX0RFRkFVTFQiLCJub3dEYXRlIiwiRGF0ZSIsImRhdGUiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJtb250aCIsImdldE1vbnRoIiwiZGF5IiwiZ2V0RGF0ZSIsInJlbENsc0xpc3QiLCJhdHRyX3Jlc2NscyIsIlJlbENscyIsInNwbGl0IiwiaWkiLCJyZXNjbHMiLCJpZCIsIlJlbENsc0xpc3QiLCJCa0NvbG9yIiwiSGFzQWNlIiwiSW1nRm9udFN0eWxlIiwiT3JkZXIiLCJjb250cm9sX3N0eWxlIiwidGl0bGVfcF93ZGl0aCIsIkZvbnQiLCJCa19Db2xvciIsIlRleHRfQ29sb3IiLCJldmVudGxpc3QiLCJldmVudCIsImV2ZW50X2lkIiwic2NyaXBfaWQiLCJjb21wb3NlX2Nsc19pZCIsImluaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJzY2FuX2luaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJFZGl0U3R5bGUiLCJWaWV3U3R5bGUiLCJOb3RUcmlnZ2VyU3lzRXZlbnQiLCJpbnB1dHBhcmFtZXRlciIsImFjdGlvbmxpc3QiLCJhY3Rpb25fdHlwZSIsImEiLCJkaWN0SXRlbUxpc3QiLCJjaG9pY2VfbGlzdCIsImZpbHRlciIsImVkaXRfZGxnIiwiZm9ybV9jb250cm9sIiwidGV4dCIsImdyb3VwX25hbWUiLCJHcm91cE5hbWUiLCJyZWFkb25seSIsIlJlYWRPbmx5IiwicmVwbGFjZSIsImMiLCJPS0RhdGFPYmpSdW5DdXN0b21FdmVudCIsImFjdGlvbnMiLCJkaWFsb2ciLCJzaG93Iiwic3R5bGUiLCJjYWxsYmFja19ldmVudGlkIiwicHJpUmVsIiwic2VsZWN0X3JhbmdlIiwicGFyYW1fIiwiJGFjdGlvbnRyIiwibGlzdF8xIiwic3ViQ2xhc3NBdHRyIiwiX3N1YkNsYXNzQXR0ciIsImV2ZW50SUQiLCJvYmplY3RzIiwic3ViX3JlcSIsIm9ial9pZCIsIm9ial9hdHRycyIsImRhdGFKc29uIiwibWFzdGVyX2NscyIsImNsc19uYW1lIiwiaW5wdXRfMzAzNyIsIm9wX3R5cGUiLCJPcGVyYXRpb25UeXBlIiwic3ViX2NscyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBZ2xCQztBQWhsQkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QU07VUFBQ3BCLFVBQVUsRUFBQyxLQUFLO1VBQUNDLFdBQVcsRUFBQztRQUFJLENBQUMsQ0FBQztNQUNuRixDQUFDLENBQUM7SUFDSDtFQUdKO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjgwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCBwaWNrZXJBZGRyZXNzIGZyb20gJy4uLy4uL2pzL3BpY2tlckFkZHJlc3MvcGlja2VyQWRkcmVzcy52dWUnXG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBwaWNrZXJBZGRyZXNzXG4gICAgICAgIH0sXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpdGxlOiAn5paw5aKeJyxcblx0XHRcdFx0cGFyYW06e30sXG5cdFx0XHRcdGNsYXNzQXR0ckxpc3Q6W10sXG5cdFx0XHRcdGNsYXNzR3JpZFN0eWxlOltdLFxuXHRcdFx0XHRlZGl0X2luaXRhbF9ldmVudDpcIlwiLCAgLy/lvLnnqpfliJ3lp4vljJbkuovku7ZJRFxuXHRcdFx0XHRlZGl0X29rX2V2ZW50OlwiXCIsICAgICAgLy/lvLnnqpfngrnlh7tPSyDop6blj5Hkuovku7ZJRFxuXHRcdFx0XHRlZGl0X3NlbGVjdF9jb21wb3NlX2V2ZW50OlwiXCIsICAvL+mAieaLqee7hOaIkOWvueixoeaXtuiwg+eUqFxuXHRcdFx0XHRlZGl0X2NvbXBvc2VfY2xzX2lkOlwiXCIsXG5cdFx0XHRcdGdsb2JhbF9hdHRyOltdLFxuXHRcdFx0XHRyZWZkYXRhc3RvcmU6IFtdLFx0ICAgLy/lvJXnlKjmlbDmja7lrZjlgqjljLovLyB7YXR0cjonR19QUkpfJyArIGJpbmRhdHRyICsgJ19JRCcsIHZhbHVlOmluZm8uaWR9XG5cdFx0XHRcdHNjYW5Db2RlVmFsOlwiXCIsXG5cdFx0XHRcdHN1YkNsYXNzQXR0ckxpc3Q6W10sXG5cdFx0XHRcdHN1YlBhbmVsTGlzdDpbXSxcblx0XHRcdFx0c3ViQ2xhc3NHcmlkU3R5bGU6W10sXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRvbkxvYWQob3B0aW9ucykge1xuXHRcdFx0Ly8gY29uc29sZS5sb2cob3B0aW9ucyk7XG5cdFx0XHR1bmkuc2V0TmF2aWdhdGlvbkJhclRpdGxlKHsgdGl0bGU6IG9wdGlvbnMudGl0bGVuYW1lfSk7IC8v6K6+572u6aG26YOo5qCH6aKYIFxuXHRcdFx0dmFyIHBhcmFtID0gSlNPTi5wYXJzZShvcHRpb25zLnBhcmFtKTtcblx0XHRcdHRoaXMuJGRhdGEudGl0bGUgPSBwYXJhbS5BZGRfQnRuTmFtZT9wYXJhbS5BZGRfQnRuTmFtZTpvcHRpb25zLnRpdGxlbmFtZTsgLy/orr7nva7mjInpkq7mloflrZdcblx0XHRcdGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdGlmKCFwYXJhbS5NYXN0ZXJfQ2xzLlZpZXdfU3R5bGUpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7nlYzpnaLnqpflj6PvvIzor7fph43mlrDphY3nva7vvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYoIXBhcmFtLk1hc3Rlcl9DbHMuVmlld19TdHlsZS5OYW1lKXtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi6K+l5Yqf6IO954K55pyq6YWN572u56qX5Y+j5qC35byP77yM6K+36YeN5paw6YWN572u77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuJGRhdGEucGFyYW0gPSBwYXJhbTtcblx0XHRcdC8vIHZhciBlZGl0X2RsZyA9IHtcblx0XHRcdC8vICAgICBNb2RlbDogcGFyYW0uRWRpdERsZ01vZGUsXG5cdFx0XHQvLyAgICAgTmFtZTogcGFyYW0uTWFzdGVyX0Nscy5WaWV3X1N0eWxlLk5hbWVcblx0XHRcdC8vIH1cblx0XHRcdC8v5Li75pWw5o2u57G76I635Y+WXG5cdFx0XHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0XHRcdGNsYXNzX2lkOiBwYXJhbS5NYXN0ZXJfQ2xzLklEXG5cdFx0XHR9O1xuXHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzYXJlYUZ1bmNJRCA9IHBhcmFtLk1hc3Rlcl9DbHMuSUQ7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0F0dHJMaXN0KTtcblx0XHRcdGlmKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0IFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3QuZGF0YTtcblx0XHRcdFx0JHRoaXMuY2xhc3NHcmlkU3R5bGVJbmZvKHBhcmFtLk1hc3Rlcl9DbHMuSUQsJHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5WaWV3X1N0eWxlLk5hbWUsJ01hc3QnKTtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2NsYXNzQXR0ckxpc3QnLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8ocGFyYW0uTWFzdGVyX0Nscy5JRCwkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLlZpZXdfU3R5bGUuTmFtZSwnTWFzdCcpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQvL+S7juaVsOaNruexu+iOt+WPllxuXHRcdFx0dmFyIHN1YmRhdGFJbmZvID0ge1xuXHRcdFx0XHRjbGFzc19pZDogcGFyYW0uU3ViX0Nscy5JRFxuXHRcdFx0fTtcblx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRCA9IHBhcmFtLlN1Yl9DbHMuSUQ7XG5cdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTdWJDbGFzc0F0dHJMaXN0KXtcblx0XHRcdCBcdCR0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QgPSAkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTdWJDbGFzc0F0dHJMaXN0LmRhdGE7XG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8ocGFyYW0uU3ViX0Nscy5JRCwkdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLlZpZXdfU3R5bGUuTmFtZSwnU3ViJyk7XG5cdFx0XHR9ZWxzZXtcblx0XHRcdFx0JHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdzdWJDbGFzc0F0dHJMaXN0JyxzdWJkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdCA9IHN1Y2Nlc3MuZGF0YTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0JHRoaXMuY2xhc3NHcmlkU3R5bGVJbmZvKHBhcmFtLlN1Yl9DbHMuSUQsJHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5WaWV3X1N0eWxlLk5hbWUsJ1N1YicpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xXzFcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xXzEuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGNhbmNlbChlKXtcblx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XG5cdFx0XHRcdFx0ZGVsdGE6MSAvL+i/lOWbnuWxguaVsO+8jDLliJnkuIrkuIrpobVcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0cGFuZWxfZGVsKGluZGV4KXtcblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W2luZGV4XS5zY2FuQ29kZVZhbCA9PSB0aGlzLiRkYXRhLnNjYW5Db2RlVmFsKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5zY2FuQ29kZVZhbD0nJztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdFx0fSxcblx0XHRcdGFzeW5jIGNsYXNzR3JpZFN0eWxlSW5mbyhjbHNpZCxzdHlsZU5hbWUsY2xzVHlwZSl7XG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHZhciBncmlkc3R5bGVJbmZvID0ge1xuXHRcdFx0XHRcdGNsYXNzX2lkOiBjbHNpZCxcblx0XHRcdFx0XHRuYW1lOiBzdHlsZU5hbWUsXG5cdFx0XHRcdFx0dHlwZTogJzInXG5cdFx0XHRcdH07XG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5zdGF0ZS50aGlzRWRpdE5hbWUgPSBzdHlsZU5hbWU7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzR3JpZFN0eWxlSW5mbyk7XG5cdFx0XHRcdC8v6I635Y+W5Li75pWw5o2u57G755WM6Z2i5qC35byPXG5cdFx0XHRcdGlmKGNsc1R5cGU9PSdNYXN0Jyl7XG5cdFx0XHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvKXtcblx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlID0gJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvLmRhdGE7XG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc19hdHRyX2luaXQoKTtcblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdC8vY29uc29sZS5sb2coZ3JpZHN0eWxlSW5mbyk7XG5cdFx0XHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2NsYXNzR3JpZFN0eWxlSW5mbycsZ3JpZHN0eWxlSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHRcdFx0c3VjY2Vzcy5kYXRhLlN0eWxlRGVmID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEuU3R5bGVEZWYpO1xuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuMlwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjNcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmKGNsc1R5cGU9PSdTdWInKXsgIC8v6I635Y+W5LuO5pWw5o2u57G755WM6Z2i5qC35byPXG5cdFx0XHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0U3ViQ2xhc3NHcmlkU3R5bGVJbmZvKXtcblx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlID0gJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0U3ViQ2xhc3NHcmlkU3R5bGVJbmZvLmRhdGE7XG5cdFx0XHRcdFx0XHQkdGhpcy5zdWJDbGFzc19hdHRyX2luaXQoKTtcblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdC8vY29uc29sZS5sb2coZ3JpZHN0eWxlSW5mbyk7XG5cdFx0XHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3N1YkNsYXNzR3JpZFN0eWxlSW5mbycsZ3JpZHN0eWxlSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHRcdFx0c3VjY2Vzcy5kYXRhLlN0eWxlRGVmID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEuU3R5bGVEZWYpO1xuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLnN1YkNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuMlwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjNcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdG9udGFwKGUpeyAvL+aJq+eggeWKn+iDvVxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKGUudGFyZ2V0KVxuXHRcdFx0XHRnZXRBcHAoKS5vblNjYW4oKHJlc3VsdCk9Pntcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKHJlc3VsdC5kZWNvZGVkYXRhKTtcblx0XHRcdFx0XHR2YXIgaXNWYWwgPXRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZTtcblx0XHRcdFx0XHQvL+S4u+aVsOaNruexu+aJq+eggeafpeivouaVsOaNrlxuXHRcdFx0XHRcdGlmIChpc1ZhbCE9cmVzdWx0LmRlY29kZWRhdGEpIHtcblx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1yZXN1bHQuZGVjb2RlZGF0YTtcblx0XHRcdFx0XHRcdC8v5a2Q5pWw5o2u57G75omr56CB5Yy65LqL5Lu26ISa5pysXG5cdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEucGFyYW0uU2Nhbl9Db2RlLklucHV0X0NoYW5nZV9FdmVudC5JRDtcblx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgcmVxPVtdO1xuXHRcdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0OyAgLy/kuLvmlbDmja7nsbvlsZ7mgKdcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCxcblx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0XHRcdFx0bWFzdF9hdHRyOiBbXSxcblx0XHRcdFx0XHRcdFx0XHRpbnB1dFBhcmFtdGVyOlt7IGF0dHI6ICdtYXN0X2lucHV0XzMwMzcnLCB2YWx1ZTogcmVzdWx0LmRlY29kZWRhdGEgfV1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0ICAgICAgICB0aGlzLnNjYW5fRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIFwiXCIpO1xuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdHNjYW5fb250YXAoZSl7IC8v5omr56CB5Yy65omr56CB5Yqf6IO9XG5cdFx0XHRcdC8vY29uc29sZS5sb2coZS50YXJnZXQpXG5cdFx0XHRcdGdldEFwcCgpLm9uU2NhbigocmVzdWx0KT0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdC5kZWNvZGVkYXRhKTtcblx0XHRcdFx0XHR2YXIgaXNmbGFnPXRydWU7XG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0KXtcblx0XHRcdFx0XHRcdGlmKHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W2ldLnNjYW5Db2RlVmFsID09IHJlc3VsdC5kZWNvZGVkYXRhKSBcblx0XHRcdFx0XHRcdFx0aXNmbGFnPWZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvL+WtkOaVsOaNruexu+aJq+eggeafpeivouaVsOaNrlxuXHRcdFx0XHRcdGlmIChpc2ZsYWcpIHtcblx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuc2NhbkNvZGVWYWw9cmVzdWx0LmRlY29kZWRhdGE7XG5cdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEucGFyYW0uU2Nhbl9Db2RlLklucHV0X0NoYW5nZV9FdmVudC5JRDtcblx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgbWFzdF9yZXE9W107XG5cdFx0XHRcdFx0XHRcdC8v5Li75pWw5o2u57G75bGe5oCnXG5cdFx0XHRcdFx0XHRcdHZhciBjbGFzc2F0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0OyAgXG5cdFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY2xhc3NhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyID0gY2xhc3NhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWFzdF9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1hc3RfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWFzdF9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0XHQgICAgICAgIC8v5a2Q5pWw5o2u57G75bGe5oCnXG5cdFx0XHRcdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHsgXG5cdFx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCxcblx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0XHRcdFx0bWFzdF9hdHRyOiBtYXN0X3JlcSxcblx0XHRcdFx0XHRcdFx0XHRpbnB1dFBhcmFtdGVyOlt7IGF0dHI6ICdpbnB1dF8zMDM3JywgdmFsdWU6IHRoaXMuJGRhdGEuc2NhbkNvZGVWYWwgfV1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0ICAgICAgICB0aGlzLnNjYW5fRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIFwiXCIpO1xuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdG9uYXJyb3coaW5kZXgsb3Blbil7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGluZGV4KyctLScrb3Blbik7XG5cdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uT3Blbj1vcGVuPT10cnVlP2ZhbHNlOnRydWU7XG5cdFx0XHR9LFxuXHRcdFx0b25kYXRlVGltZShlKSB7XG5cdFx0XHRcdC8vY29uc29sZS5sb2coZS50YXJnZXQpXG5cdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLnRhcmdldC52YWx1ZTtcblx0XHRcdH0sXG5cdFx0XHRvbmNoYW5nZShlKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIHZhbHVlPXRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5kaWN0aXRlbVtlLnRhcmdldC52YWx1ZV07XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV07XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XG5cdFx0XHRcdGlmICh2YWx1ZS5OYW1lICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT12YWx1ZS5OYW1lO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZSk7XG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xuXHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmNoYW5nZTIoaXRlbSx2YWx1ZSxkZWx2YWx1ZSkge1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpdGVtKTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codmFsdWUpO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkZWx2YWx1ZSk7XG5cdFx0XHRcdGlmKGl0ZW0ubGVuZ3RoPT0wKXsgLy/kuLrnqbrml7bvvIzmuIXnqbrlsZ7mgKd2YWx1ZVxuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihkZWx2YWx1ZVswXS5OYW1lID09IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtW2RdLk5hbWUpe1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uVmFsdWU9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0Zm9yKHZhciB2IGluIGl0ZW0pe1xuXHRcdFx0XHRcdHZhciBpbmRleCAsaWluZGV4LGRpbmRleD0wO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0XHRcdFx0Zm9yKHZhciBqIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyKXtcblx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpXS5BdHRyW2pdLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRpZihpdGVtW3ZdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRpbmRleD1pO2lpbmRleD1qO2RpbmRleD1kO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR2YXIgaXRlbXZhbHVlID0gaXRlbVt2XTtcblx0XHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0XHRpZiAoaXRlbXZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5WYWx1ZT12YWx1ZTtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlKTtcblx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHQgICAgICAgIC8vIHNlbGYuZXZlbnRfbm9fc3ViID0gMTtcblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBpdGVtdmFsdWUuTmFtZX0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdG9uZXZlbnQoZSl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKGUudGFyZ2V0LnZhbHVlICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLnRhcmdldC52YWx1ZTtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsXG5cdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIGRhdGFfYXR0cik7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0b25jaGVjayhlKSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGlzY2hlY2tlZCA9IGUudGFyZ2V0LmRhdGFzZXQuaXNjaGVjaz9mYWxzZTp0cnVlO1xuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRpZiAoaXNjaGVja2VkICE9IGRhdGFfYXR0ci5WYWx1ZSkge1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1pc2NoZWNrZWQ7XG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uYWN0aW9uO1xuXHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0aW5wdXRWYWxMaXN0SXNEZWwoaW5kZXgpe1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhpbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5pbnB1dFZhbExpc3Quc3BsaWNlKGluZGV4LCAxKTsgLy/liKDpmaR0YWJQYWdlanNvbueahOWGheWuuVxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLiRkYXRhLmlucHV0VmFsTGlzdCk7XG5cdFx0XHR9LFxuXHRcdFx0YWRkcmVzc2NoYW5nZShlKSB7XG5cdFx0XHQgICAgLy8gY29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0ICAgIGNvbnNvbGUubG9nKGUuZGF0YS5qb2luKCc7JykpXG5cdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5WYWx1ZT1lLmRhdGEuam9pbignOycpO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9leHRCdXR0b24oaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIGJlZm9yZV9jbGlja19idXR0b24gPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uYmVmb3JlX2NsaWNrX2J1dHRvbjtcblx0XHRcdFx0dmFyIGJ1dHRvbl9jYWxsYmFjayA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5idXR0b25fY2FsbGJhY2s7XG5cdFx0XHRcdGlmKCFiZWZvcmVfY2xpY2tfYnV0dG9uKXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCJiZWZvcmVfY2xpY2tfYnV0dG9uLWV2ZW50X2lk5Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKCFidXR0b25fY2FsbGJhY2spe1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcImJ1dHRvbl9jYWxsYmFjay1ldmVudF9pZOS4uuepuu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybihiZWZvcmVfY2xpY2tfYnV0dG9uLCBkYXRhX2F0dHIsIGJ1dHRvbl9jYWxsYmFjaywgaW5kZXgsaWluZGV4KTtcblx0XHRcdH0sXG5cdFx0XHRzY2FuX2NsYXNzQXR0cl9leHRCdXR0b24oZSl7ICAvLy0tLS0tLS0tLeacquWujOaIkC0tLS0tLS0tLS0tXG5cdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdHZhciBCZWZvcmVfU2VsZWN0X0V2ZW50ID0gJHRoaXMuJGRhdGEucGFyYW0uU2Nhbl9Db2RlLkJlZm9yZV9TZWxlY3RfRXZlbnQuSUQ7XG5cdFx0XHRcdHZhciBBZnRlcl9TZWxlY3RfRXZlbnQgPSAkdGhpcy4kZGF0YS5wYXJhbS5TY2FuX0NvZGUuQWZ0ZXJfU2VsZWN0X0V2ZW50LklEO1xuXHRcdFx0XHRpZighQmVmb3JlX1NlbGVjdF9FdmVudCl7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi6YCJ5oup5oyJ6ZKu5YmN5LqL5Lu25Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKCFBZnRlcl9TZWxlY3RfRXZlbnQpe1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuaWsOWinuaMiemSruWQjuS6i+S7tuS4uuepuu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyB2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF07XG5cdFx0XHRcdHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybihCZWZvcmVfU2VsZWN0X0V2ZW50LCAnJywgQWZ0ZXJfU2VsZWN0X0V2ZW50LCAnJywgJycpO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRQZXIoaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyIHBhcmFtPXtpbmRleDppbmRleCxpaW5kZXg6aWluZGV4fTtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vc2VscHNuL2luZGV4P211bGl0PWZhbHNlJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsSUQ9ZGF0YVswXS5Mb2dpbisnOycrZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZCA9IGV2ZW50aWQudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHQgICAgaWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjRcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiBkYXRhWzBdLkxvZ2luLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IFtdLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gdmFyIGRhdGFfYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XTtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRSZWYoZSl7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5q2k5Yqf6IO96L+Y5pyq5a6e546w77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdC8vIHZhciB2YWx1ZT10aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uUmVsQ2xzW2UudGFyZ2V0LnZhbHVlXTtcblx0XHRcdFx0Ly8gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdGNsYXNzQXR0cl9BZGRQcmooaW5kZXgsaWluZGV4KXtcblx0XHRcdFx0dmFyIHBhcmFtPXtpbmRleDppbmRleCxpaW5kZXg6aWluZGV4fTtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybDonLi4vc2VsUHJqL2luZGV4P3JlbGF0aW9uPS0xJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdGV2ZW50czp7XG5cdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsSUQ9ZGF0YVswXS5JRCsnOycrZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgZXZlbnRpZCA9IGV2ZW50aWQudHJpbSgpO1xuXHRcdFx0XHRcdFx0XHQgICAgaWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiBcIjJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiBkYXRhWzBdLklELFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IFtdLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQgICAgICAgIC8vIHZhciBkYXRhX2F0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF07XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRzYXZhKCl7XG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLnBhcmFtLkJlZm9yZV9PS19FdmVudCkgLy/liKTmlq3lip/og73ngrnlj4LmlbDmmK/lkKbmnInnoa7lrprliY3ohJrmnKxcblx0XHRcdFx0XHR0aGlzLnNjYW5fT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQodGhpcy4kZGF0YS5wYXJhbS5CZWZvcmVfT0tfRXZlbnQuSUQpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0dGhpcy5zY2FuX09LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KHRoaXMuJGRhdGEucGFyYW0uQWZ0ZXJfT0tfRXZlbnQuSUQpO1xuXHRcdFx0fSxcblx0XHRcdGFkZCgpe1xuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdHRpdGxlOlwi5Yqg6L295LitLi4uXCJcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivt+mAieaLqScgfHwgYXIuVmFsdWU9PSfigJTigJTor7fpgInmi6nigJTigJQnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgaWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSflrZflhbgnIHx8IGFyLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdGlmKGFyLnNlbGVjdD09dHJ1ZSl7IC8v5Yik5pat5LiL5ouJ5piv5ZCm5aSa6YCJXG5cdFx0XHRcdFx0XHRcdFx0dmFyIHZhbFN0ciA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIHYgaW4gYXIuVmFsdWUpe1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYodmFsU3RyKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPVwiO1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1hci5WYWx1ZVt2XTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogdmFsU3RyfSk7XG5cdFx0XHRcdFx0XHRcdH1lbHNlXG5cdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWV9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGlmICgoYXIuTm90RW1wdHkgPT0gJzEnIHx8IGFyLm5vdGVtcHR5ID09IHRydWUpICYmICFhci5WYWx1ZSkge1xuXHRcdFx0XHRcdFx0Ly8gaWYoYXIubm90RW1wdHk9PScxJyl7XG5cdFx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdFx0XHQvLyB1bmkuc2hvd1RvYXN0KHt0aXRsZTphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxpY29uOlwic3VjY2Vzc1wiLGR1cmF0aW9uOjMwMDB9KTtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHRcdFx0ICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgICBtYXN0ZXI6IHtcblx0XHRcdFx0ICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIFxuXHRcdFx0XHQgICAgIH1cblx0XHRcdFx0fTtcblx0XHRcdFx0IFxuXHRcdFx0XHR2YXIgZGF0YUluZm89e1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgZGF0YV9vYmpfaWQ6ICcnLCBtYXN0ZXJjbHNpZDogJycsXG5cdFx0XHRcdCAgICByZXE6IEpTT04uc3RyaW5naWZ5KHJlcSksIHVwZmlsZTogSlNPTi5zdHJpbmdpZnkoW10pLCBwb3N0X2RhdGE6IEpTT04uc3RyaW5naWZ5KHt9KSxcblx0XHRcdFx0ICAgIGNvbXBvc2U6IEpTT04uc3RyaW5naWZ5KFtdKSwgcmVmZGF0YXN0b3JlOiBKU09OLnN0cmluZ2lmeShbXSksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpLCBcblx0XHRcdFx0XHRub3RfdHJpZ2dlcl9zeXNfZXZlbnQ6ICcnXG5cdFx0XHRcdH07XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYWRkY2xhc3NhdHRyJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbiA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhLkFjdGlvbik7XG5cdFx0XHRcdFx0XHRpZihhY3Rpb24ucmV0PT0nMCcpe1xuXHRcdFx0XHRcdFx0XHRpZihhY3Rpb24ucmVzdWx0X3R5cGU9PScwJyl7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6YWN0aW9uLnJlc3VsdCxpY29uOlwic3VjY2Vzc1wiLGR1cmF0aW9uOjMwMDB9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBcIntcInJldFwiOjAsIFwicmVzdWx0X3R5cGVcIjowLCBcInJlc3VsdFwiOlwi5Yib5bu65oiQ5YqfMTIzMTIzMTIzXCIsXCJpbmZvXCI6XCJcIn1cIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly/liLfmlrBcblx0XHRcdFx0XHRcdHVuaS5yZWRpcmVjdFRvKHtcblx0XHRcdFx0XHRcdFx0dXJsOicuLi9tb2RhbC9tc19jbGFzc0F0dHI/cGFyYW09JytKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLnBhcmFtKStcIiZ0aXRsZW5hbWU9XCIrdGhpcy4kZGF0YS50aXRsZVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHQvLyB0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor69cIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NfYXR0cl9pbml0KCl7XG5cdFx0XHRcdHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuc2hvd19zdHlsZVxuXHRcdFx0XHR2YXIgbmV3YXR0cmxpc3QgPSBbXTtcblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgdmFyIG9wZW4gPSBhdHRybGlzdFtpXS5vcGVuO1xuXHRcdFx0XHQgICAgICAgIHZhciBuYW1lID0gYXR0cmxpc3RbaV0uYXR0cmdyb3VwX25hbWU7XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJzID0gYXR0cmxpc3RbaV0uYXR0cnM7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgdmFyIGNsc2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Rbc107XG5cdFx0XHRcdCAgICAgICAgICAgIGlmIChuYW1lID09IGNsc2F0dHIuTmFtZSkge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBbXTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IGNsc2F0dHIuQXR0ci5sZW5ndGg7IGwrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2EgPSBjbHNhdHRyLkF0dHJbbF07XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyc1tqXS5hdHRyID09IGNhLk5hbWUpIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmFjdGlvbiA9IGF0dHJzW2pdLmFjdGlvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmVkaXQgPSBhdHRyc1tqXS5lZGl0O1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Eubm90ZW1wdHkgPSBhdHRyc1tqXS5ub3RlbXB0eTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmV4dF9idXR0b24gPSBhdHRyc1tqXS5leHRfYnV0dG9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX2ltZyA9IGF0dHJzW2pdLmJ1dHRvbl9pbWc7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25fdG9vbHRpcCA9IGF0dHJzW2pdLmJ1dHRvbl90b29sdGlwO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYmVmb3JlX2NsaWNrX2J1dHRvbiA9IGF0dHJzW2pdLmJlZm9yZV9jbGlja19idXR0b247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25fY2FsbGJhY2sgPSBhdHRyc1tqXS5idXR0b25fY2FsbGJhY2s7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5oaWRkZW4gPSBhdHRyc1tqXS5oaWRkZW47XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5zZWxlY3QgPSBhdHRyc1tqXS5zZWxlY3Q9PXVuZGVmaW5lZD9mYWxzZTphdHRyc1tqXS5zZWxlY3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPVwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2Euc2VsZWN0ID09IHRydWUpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gW107Ly9jYS5kaWN0aXRlbVswXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knOy8vY2EuZGljdGl0ZW1bMF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RpdGVtbGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGQgPSAwOyBkIDwgY2EuZGljdGl0ZW0ubGVuZ3RoOyBkKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW1bZF0ubGFiZWw9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS52YWx1ZT1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLmRpY3RpdGVtW2RdLkNOX0NfSVNfREVGQVVMVD09JzEnKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+aXpeacnycgfHwgY2EuVHlwZT09J+aXtumXtCcpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIG5vd0RhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRhdGUgPSB7eWVhcjogbm93RGF0ZS5nZXRGdWxsWWVhcigpLG1vbnRoOiBub3dEYXRlLmdldE1vbnRoKCkgKyAxLGRheTogbm93RGF0ZS5nZXREYXRlKCl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IGRhdGUueWVhciArICctJyArIChkYXRlLm1vbnRoID49IDEwID8gZGF0ZS5tb250aCA6ICcwJyArIGRhdGUubW9udGgpICsgJy0nICsgKGRhdGUuZGF5ID49IDEwID8gZGF0ZS5kYXkgOiAnMCcgKyBkYXRlLmRheSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlbENsc0xpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0cl9yZXNjbHMgPSBjYS5SZWxDbHMuc3BsaXQoJywnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgaWkgaW4gYXR0cl9yZXNjbHMpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVzY2xzID0gYXR0cl9yZXNjbHNbaWldLnNwbGl0KCd8Jyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlbENsc0xpc3QucHVzaCh7aWQ6cmVzY2xzWzBdLG5hbWU6cmVzY2xzWzFdfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5SZWxDbHNMaXN0ID0gcmVsQ2xzTGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivtyc7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfnnIHluILljLonKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+36YCJ5oupJztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIucHVzaChjYSk7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgICAgICBuZXdhdHRybGlzdC5wdXNoKHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBCa0NvbG9yOiBjbHNhdHRyLkJrQ29sb3IsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgSGFzQWNlOiBjbHNhdHRyLkhhc0FjZSxcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBJbWdGb250U3R5bGU6IGNsc2F0dHIuSW1nRm9udFN0eWxlLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE5hbWU6IGNsc2F0dHIuTmFtZSxcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBPcmRlcjogY2xzYXR0ci5PcmRlcixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBPcGVuOiBvcGVuLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEF0dHI6IGF0dHIsXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250cm9sX3N0eWxlOnRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuY29udHJvbF9zdHlsZSxcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlX3Bfd2RpdGg6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi50aXRsZV9wX3dkaXRoLFxuXHRcdFx0XHRcdFx0XHRcdFx0Rm9udDp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkZvbnQ/dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5Gb250Ont9LFxuXHRcdFx0XHRcdFx0XHRcdFx0QmtfQ29sb3I6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5Ca19Db2xvcj90aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkJrX0NvbG9yOicjRkZGRkZGJyxcblx0XHRcdFx0XHRcdFx0XHRcdFRleHRfQ29sb3I6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5UZXh0X0NvbG9yP3RoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuVGV4dF9Db2xvcjonIzAwMDAwMCdcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH0pXG5cdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdCAgICBpZiAobmV3YXR0cmxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCA9IG5ld2F0dHJsaXN0O1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdHZhciByZXE9W107XG5cdFx0XHRcdCAgICBpZiAodGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZikge1xuXHRcdFx0XHQgICAgICAgICBpZiAodGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgICAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlXG5cdFx0XHRcdCAgICAgICAgICAgIC8vICRlbC5maW5kKCcuYXR0cl9maWVsZCcpLnByb3AoJ3JlYWRvbmx5JywgdHJ1ZSk7XG5cdFx0XHRcdCAgICAgICAgICAgIC8vICRlbC5maW5kKCcuYXR0cl9maWVsZCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG5cdFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciBhdHRyID0gYXR0cmxpc3RbaV0uYXR0cnNcblx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLmF0dHIsIHZhbHVlOiBhci52YWx1ZT9hci52YWx1ZTonJyB9KTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHR9XHRcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR2YXIgZXZlbnRsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5ldmVudDtcblx0XHRcdFx0XHRpZiAoZXZlbnRsaXN0KSB7XG5cdFx0XHRcdFx0ICAgIGlmIChldmVudGxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudGxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdiZWZvcmVfb2snKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9va19ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnaW5pdGlhbCcpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudCA9IGV2ZW50bGlzdFtpXTtcblx0XHRcdFx0XHQgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX3NlbGVjdF9jb21wb3NlJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQgPSBldmVudGxpc3RbaV0uc2NyaXBfaWQ7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9jb21wb3NlX2Nsc19pZCA9IGV2ZW50bGlzdFtpXS5jb21wb3NlX2Nsc19pZDtcblx0XHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQpIHtcblx0XHRcdFx0XHQgICAgdmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50LnNjcmlwX2lkO1xuXHRcdFx0XHRcdCAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsXG5cdFx0XHRcdFx0ICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHQgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdCAgICB0aGlzLmluaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUpO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5pyq5om+5Yiw5Y+v5pi+56S655qE55qE5bGe5oCnXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRzdWJDbGFzc19hdHRyX2luaXQoKXtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5zdWJDbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlXG5cdFx0XHRcdHZhciBuZXdhdHRybGlzdCA9IFtdO1xuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICB2YXIgb3BlbiA9IGF0dHJsaXN0W2ldLm9wZW47XG5cdFx0XHRcdCAgICAgICAgdmFyIG5hbWUgPSBhdHRybGlzdFtpXS5hdHRyZ3JvdXBfbmFtZTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cnMgPSBhdHRybGlzdFtpXS5hdHRycztcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgY2xzYXR0ciA9IHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdFtzXTtcblx0XHRcdFx0ICAgICAgICAgICAgaWYgKG5hbWUgPT0gY2xzYXR0ci5OYW1lKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IFtdO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgY2xzYXR0ci5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYSA9IGNsc2F0dHIuQXR0cltsXTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzW2pdLmF0dHIgPT0gY2EuTmFtZSkge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYWN0aW9uID0gYXR0cnNbal0uYWN0aW9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZWRpdCA9IGF0dHJzW2pdLmVkaXQ7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5ub3RlbXB0eSA9IGF0dHJzW2pdLm5vdGVtcHR5O1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZXh0X2J1dHRvbiA9IGF0dHJzW2pdLmV4dF9idXR0b247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25faW1nID0gYXR0cnNbal0uYnV0dG9uX2ltZztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl90b29sdGlwID0gYXR0cnNbal0uYnV0dG9uX3Rvb2x0aXA7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5iZWZvcmVfY2xpY2tfYnV0dG9uID0gYXR0cnNbal0uYmVmb3JlX2NsaWNrX2J1dHRvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9jYWxsYmFjayA9IGF0dHJzW2pdLmJ1dHRvbl9jYWxsYmFjaztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmhpZGRlbiA9IGF0dHJzW2pdLmhpZGRlbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLnNlbGVjdCA9IGF0dHJzW2pdLnNlbGVjdD09dW5kZWZpbmVkP2ZhbHNlOmF0dHJzW2pdLnNlbGVjdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5kaWN0aXRlbSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5zZWxlY3QgPT0gdHJ1ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBbXTsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7Ly9jYS5kaWN0aXRlbVswXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdGl0ZW1saXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgZCA9IDA7IGQgPCBjYS5kaWN0aXRlbS5sZW5ndGg7IGQrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS5sYWJlbD1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLnZhbHVlPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuZGljdGl0ZW1bZF0uQ05fQ19JU19ERUZBVUxUPT0nMScpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWU9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5pel5pyfJyB8fCBjYS5UeXBlPT0n5pe26Ze0Jyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGF0ZSA9IHt5ZWFyOiBub3dEYXRlLmdldEZ1bGxZZWFyKCksbW9udGg6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEsZGF5OiBub3dEYXRlLmdldERhdGUoKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gZGF0ZS55ZWFyICsgJy0nICsgKGRhdGUubW9udGggPj0gMTAgPyBkYXRlLm1vbnRoIDogJzAnICsgZGF0ZS5tb250aCkgKyAnLScgKyAoZGF0ZS5kYXkgPj0gMTAgPyBkYXRlLmRheSA6ICcwJyArIGRhdGUuZGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVsQ2xzTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyX3Jlc2NscyA9IGNhLlJlbENscy5zcGxpdCgnLCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBpaSBpbiBhdHRyX3Jlc2Nscyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZXNjbHMgPSBhdHRyX3Jlc2Nsc1tpaV0uc3BsaXQoJ3wnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVsQ2xzTGlzdC5wdXNoKHtpZDpyZXNjbHNbMF0sbmFtZTpyZXNjbHNbMV19KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlJlbENsc0xpc3QgPSByZWxDbHNMaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+3Jztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+ecgeW4guWMuicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ci5wdXNoKGNhKTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIG5ld2F0dHJsaXN0LnB1c2goe1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEJrQ29sb3I6IGNsc2F0dHIuQmtDb2xvcixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBIYXNBY2U6IGNsc2F0dHIuSGFzQWNlLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEltZ0ZvbnRTdHlsZTogY2xzYXR0ci5JbWdGb250U3R5bGUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgTmFtZTogY2xzYXR0ci5OYW1lLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9yZGVyOiBjbHNhdHRyLk9yZGVyLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9wZW46IG9wZW4sXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQXR0cjogYXR0cixcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRyb2xfc3R5bGU6dGhpcy4kZGF0YS5zdWJDbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5jb250cm9sX3N0eWxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGVfcF93ZGl0aDp0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnRpdGxlX3Bfd2RpdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRGb250OnRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuRm9udD90aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkZvbnQ6e30sXG5cdFx0XHRcdFx0XHRcdFx0XHRCa19Db2xvcjp0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkJrX0NvbG9yP3RoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuQmtfQ29sb3I6JyNGRkZGRkYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0VGV4dF9Db2xvcjp0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLlRleHRfQ29sb3I/dGhpcy4kZGF0YS5zdWJDbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5UZXh0X0NvbG9yOicjMDAwMDAwJ1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgfSlcblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0ICAgIGlmIChuZXdhdHRybGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0ID0gbmV3YXR0cmxpc3Q7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgIGlmICh0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmKSB7XG5cdFx0XHRcdCAgICAgICAgIGlmICh0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgncmVhZG9ubHknLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBhdHRybGlzdFtpXS5hdHRyc1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuYXR0ciwgdmFsdWU6IGFyLnZhbHVlP2FyLnZhbHVlOicnIH0pO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdH1cdFxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHZhciBldmVudGxpc3QgPSB0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmV2ZW50O1xuXHRcdFx0XHRcdGlmIChldmVudGxpc3QpIHtcblx0XHRcdFx0XHQgICAgaWYgKGV2ZW50bGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50bGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2JlZm9yZV9vaycpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X29rX2V2ZW50ID0gZXZlbnRsaXN0W2ldO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdpbml0aWFsJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50ID0gZXZlbnRsaXN0W2ldO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdiZWZvcmVfc2VsZWN0X2NvbXBvc2UnKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCA9IGV2ZW50bGlzdFtpXS5zY3JpcF9pZDtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X2NvbXBvc2VfY2xzX2lkID0gZXZlbnRsaXN0W2ldLmNvbXBvc2VfY2xzX2lkO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVxKTtcblx0XHRcdFx0XHRpZiAodGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudCkge1xuXHRcdFx0XHRcdCAgICB2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQuc2NyaXBfaWQ7XG5cdFx0XHRcdFx0ICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdFx0ICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCxcblx0XHRcdFx0XHQgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdCAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0ICAgIHRoaXMuc2Nhbl9pbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlKTtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuacquaJvuWIsOWPr+aYvuekuueahOeahOWxnuaAp1wiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0aW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKXtcblx0XHRcdFx0dmFyIHBhcmFtID0ge1xuXHRcdFx0XHQgICAgRWRpdFN0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuVmlld19TdHlsZS5OYW1lLFxuXHRcdFx0XHQgICAgVmlld1N0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuVmlld19TdHlsZS5OYW1lLFxuXHRcdFx0XHQgICAgTm90VHJpZ2dlclN5c0V2ZW50OiAwLFxuXHRcdFx0XHQgICAgZW52aXJvbWVudDoge1xuXHRcdFx0XHQgICAgICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHRcdFx0ICAgICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgICAgICBtYXN0ZXI6IHtcblx0XHRcdFx0ICAgICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGlucHV0cGFyYW1ldGVyID0gJyc7XG5cdFx0XHRcdHZhciBnbG9iYWxfYXR0ciA9ICcnO1xuXHRcdFx0XHRcblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQsXG4gICAgICAgICAgICAgICAgICAgIHJjbHNpZDogaW5mby5yY2xzaWQsIHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkocGFyYW0pLCBpbnB1dHBhcmFtZXRlcjogaW5wdXRwYXJhbWV0ZXIsIGdsb2JhbF9hdHRyOiBnbG9iYWxfYXR0clxuICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhY3Rpb25saXN0Lmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25saXN0W2pdXG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBhY3Rpb25fdHlwZSA9IGFjdGlvbi5hY3Rpb25fdHlwZTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhbCA9IEpTT04ucGFyc2UodmFsdWUpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codmFsKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGEgPSAwOyBhIDwgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBsID0gMDsgbCA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBjYSA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFthXS5BdHRyW2xdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodmFsW2ldLmF0dHIgID09IGNhLk5hbWUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5a2X5YW4JyB8fCBjYS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiB2YWxbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID12YWxbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gdmFsW2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2EudmFsdWUgPSB2YWxbaV0udmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWxbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaCh2YWxbaV0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHZhbFtpXS5hdHRyKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ29wZW5fc2VsZWN0X3VzZXJkbGcnKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzIuMlwiLGNvbnRlbnQ6XCJvcGVuX3NlbGVjdF91c2VyZGxn6L+Z5LiqYWN0aW9uX3R5cGXov5jmnKrlpITnkIbvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMi4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHQgICAgRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sZGF0YV9hdHRyKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHQgICAgXHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHQgICAgXHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHQgICAgXHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHQgICAgXHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdCAgICBcdCAgICBtYXN0ZXI6IHtcblx0XHQgICAgXHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdCAgICBcdCAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fTtcblx0XHRcdFx0ZW52aXJvbWVudC5lZGl0X2RsZyA9IHtcblx0XHRcdFx0ICAgIHR5cGU6ICdzbWFsbCcsLy/lsI/nqpflj6Ncblx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0ICAgIGVudmlyb21lbnQuZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0XHRcdCAgICAgICAgbmFtZTogZGF0YV9hdHRyLk5hbWUsLy/lrZfmrrXlsZ7mgKdcblx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0XHRcdCAgICAgICAgdHlwZTogZGF0YV9hdHRyLlR5cGUsLy/lrZfmrrXnsbvlnotcblx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHRcdFx0ICAgICAgICBidXR0b25fdG9vbHRpcDogZGF0YV9hdHRyLmJ1dHRvbl90b29sdGlwLy/lvJXnlKjmjInpkq7nmoR0b29sdGlwXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHQgICAgXHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLnJlcGxhY2UoJ3snLCcnKS5yZXBsYWNlKCd9JywnJyksXG5cdFx0ICAgICAgICAgICAgcmNsc2lkOiBpbmZvLnJjbHNpZCwgcm9iamlkOiBpbmZvLnJvYmppZCwgdXNlcmxvZ2luOiBpbmZvLnVzZXJsb2dpbiwgY2xzaWQ6IGluZm8uY2xzaWQsIG9iamlkOiBpbmZvLm9iamlkLFxuXHRcdCAgICAgICAgICAgIGF0dHI6IEpTT04uc3RyaW5naWZ5KGluZm8uYXR0ciksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpLCBpbnB1dHBhcmFtZXRlcjogJycsIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxuXHRcdCAgICAgICAgfVxuXHRcdCAgICBcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHQgICAgXHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdCAgICBcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0ICAgIFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHQgICAgXHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdCAgICBcdFx0XHRpZiAoYWN0aW9ubGlzdCkge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhY3Rpb25saXN0KTtcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0aW9ubGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25saXN0W2ldO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGFjdGlvbi52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0W2ldLmNob2ljZV9saXN0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhdHRyW2pdLlR5cGU9PSflrZflhbgnIHx8IGF0dHJbal0uVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0SXRlbUxpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gcmVzdWx0W2ldLmNob2ljZV9saXN0KXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHZhbCA9cmVzdWx0W2ldLmNob2ljZV9saXN0W2RdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaWN0SXRlbUxpc3QucHVzaCh7XCJDTl9TX05BTUVcIjp2YWwsXCJOYW1lXCI6dmFsLFwibGFiZWxcIjp2YWwsXCJ2YWx1ZVwiOnZhbH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXR0cltqXS5kaWN0aXRlbSA9IGRpY3RJdGVtTGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGF0dHJbal0uZGljdGl0ZW0gPSByZXN1bHRbaV0uY2hvaWNlX2xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdHZhciBhdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGF0dHJbal0uTmFtZSsnPT0nK3Jlc3VsdFtpXS5hdHRyKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHRcdGF0dHJbal0uVmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCEkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9IGVsc2UgaWYgKGRhdGEuYWN0aW9uW2ldLmFjdGlvbl90eXBlID09ICdzZXRfZ2xvYmFsX2F0dHInKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAkdGhpcy4kZGF0YS5nbG9iYWxfYXR0ciA9IGRhdGEuYWN0aW9uW2ldLnZhbHVlIHx8IFtdO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmIChkYXRhLnJlc3VsdCkge1xuXHRcdCAgICBcdFx0XHQgICAgdmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0XHRcdGF0dHJbal0uVmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgaWYgKCEkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2gocmVzdWx0W2ldKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHQgICAgXHRcdH1lbHNle1xuXHRcdCAgICBcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzNcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdFx0fVxuXHRcdCAgICBcdH0pLmNhdGNoKGV4PT57XG5cdFx0ICAgIFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0ICAgIFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzMuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdH0pO1xuXHRcdCAgICB9LFxuXHRcdFx0T0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQoKXtcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHRcdFx0ICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHQgICAgICAgIFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9O1xuXHRcdCAgICBcdFxuXHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuZWRpdF9va19ldmVudC5zY3JpcF9pZDtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0ICAgIFx0aWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aCA+IDApIHtcblx0XHQgICAgXHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdCAgICAgICAgaWYgKCFyZXEuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIgPT0gcy5uYW1lXG5cdFx0ICAgIFx0ICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdCAgICAgICAgICAgIHJlcS5wdXNoKHsgJ2F0dHInOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyLCAndmFsdWUnOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS52YWx1ZSB9KTtcblx0XHQgICAgXHQgICAgICAgIH1cblx0XHQgICAgXHQgICAgfVxuXHRcdCAgICBcdH1cblx0XHQgICAgXHR2YXIgaW5mbyA9IHtcblx0XHQgICAgXHQgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHQgICAgXHQgICAgZWR0eXBlOiBcIjBcIixcblx0XHQgICAgXHQgICAgcHJvamVjdGlkOiAnJyxcblx0XHQgICAgXHQgICAgcmNsc2lkOiAnJyxcblx0XHQgICAgXHQgICAgcm9iamlkOiAnJyxcblx0XHQgICAgXHQgICAgdXNlcmxvZ2luOiAnJyxcblx0XHQgICAgXHQgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHQgICAgXHQgICAgb2JqaWQ6IFwiXCIsXG5cdFx0ICAgIFx0ICAgIGF0dHI6IHJlcSxcblx0XHQgICAgXHR9XG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdCAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZCxyY2xzaWQ6IGluZm8ucmNsc2lkLCBcblx0XHRcdFx0XHRyb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0XHRcdFx0YXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKVxuXHRcdCAgICAgICAgfVxuXHRcdCAgICBcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHQgICAgXHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdCAgICBcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0ICAgIFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcdFx0XG5cdFx0ICAgIFx0XHRcdHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgIC8vIHNlbGYuY2xhc3NfYXR0cl9lbGUuZmluZCgnLmF0dHJfZmllbGRbZGF0YS1maWVsZD1cIicgKyByZXN1bHRbaV0uYXR0ciArICdcIl0nKS52YWwocmVzdWx0W2ldLnZhbHVlKS5kYXRhKCd2YWwnLCByZXN1bHRbaV0udmFsdWUpO1xuXHRcdCAgICBcdFx0XHQgICAgdmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAoIXRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5hZGQoKTtcblx0XHQgICAgXHRcdH1lbHNle1xuXHRcdCAgICBcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzRcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdFx0fVxuXHRcdCAgICBcdH0pLmNhdGNoKGV4PT57XG5cdFx0ICAgIFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0ICAgIFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzQuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdH0pO1xuXHRcdCAgICB9LFxuXHRcdCAgICBEYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuKGV2ZW50aWQsZGF0YV9hdHRyLGJ1dHRvbl9jYWxsYmFjayxpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHRcdFx0ICAgICdmdW5jdGlvbic6ICczMDAwJywgLy8g5Yqf6IO954K557yW5Y+3XG5cdFx0XHRcdCAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHRcdFx0ICAgIGJ1dHRvbl9uYW1lOiAn5paw5aKeJyxcblx0XHRcdFx0ICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHQgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fTtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgaWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWUgfSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgaWYgKCFyZXEuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIHJldHVybiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyID09IHMubmFtZVxuXHRcdFx0XHQgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdFx0XHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdFx0XHQgICAgICAgICAgICByZXEucHVzaCh7ICdhdHRyJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciwgJ3ZhbHVlJzogdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0udmFsdWUgfSk7XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBleHRpbmZvID0gZW52aXJvbWVudDtcblx0XHRcdFx0ZXh0aW5mby5lZGl0X2RsZyA9IHtcblx0XHRcdFx0ICAgIHR5cGU6ICdzbWFsbCcsLy/lsI/nqpflj6Ncblx0XHRcdFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkYXRhX2F0dHIpIHtcblx0XHRcdFx0ICAgIGV4dGluZm8uZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0XHRcdCAgICAgICAgbmFtZTogZGF0YV9hdHRyLk5hbWUsLy/lrZfmrrXlsZ7mgKdcblx0XHRcdFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHRcdFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0XHRcdCAgICAgICAgdHlwZTogZGF0YV9hdHRyLlR5cGUsLy/lrZfmrrXnsbvlnotcblx0XHRcdFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHRcdFx0ICAgICAgICBidXR0b25fdG9vbHRpcDogZGF0YV9hdHRyLmJ1dHRvbl90b29sdGlwLy/lvJXnlKjmjInpkq7nmoR0b29sdGlwXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdFx0XHRcdGVkdHlwZTogIFwiMFwiLCBldmVudGlkOiBldmVudGlkLCBwcm9qZWN0aWQ6ICcnLHJjbHNpZDogJycsIHJvYmppZDogJycsIHVzZXJsb2dpbjogJycsIFxuXHRcdFx0XHRcdGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIG9iamlkOiAnJyxhdHRyOiBKU09OLnN0cmluZ2lmeShyZXEpLCBcblx0XHRcdFx0XHRleHRpbmZvOiBKU09OLnN0cmluZ2lmeShleHRpbmZvKSwgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdFx0XHRcdFx0aWYgKGRhdGEgIT0gXCJcIikge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dmFyIGFjdGlvbnMgPSBkYXRhLmFjdGlvbjtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGFjdGlvbnMpO1xuXHRcdFx0XHRcdFx0aWYgKGFjdGlvbnMpIHtcblx0XHRcdFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbnNbaV07XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciB2YWwgPSBhY3Rpb24udmFsdWU7XG5cdFx0XHRcdFx0XHQgICAgICAgIHZhciBlbnZpcm9tZW50ID0gSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIFxuXHRcdFx0XHRcdFx0ICAgICAgICBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdvcGVuX3BhbmVsJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6Jyxcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgIH0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICBkLnNob3coKTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fc2VsZWN0X3VzZXJkbGcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgc3R5bGUgPSB2YWwuc3R5bGU7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBzdHlsZSA9PSAndXNlcicgPyAn6YCJ5oup5Lq65ZGYJyA6IHN0eWxlID09ICdkZXBhcnRtZW50JyA/ICfpgInmi6npg6jpl6gnIDogc3R5bGUgPT0gJ3JvbGUnID8gJ+mAieaLqeinkuiJsicgOiAnJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBwYXJhbT17XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGluZGV4OiBpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWluZGV4OmlpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnV0dG9uX2NhbGxiYWNrOmJ1dHRvbl9jYWxsYmFjayxcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxOnJlcSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YV9hdHRyOmRhdGFfYXR0clxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHR1cmw6Jy4uL3NlbHBzbi9pbmRleD9tdWxpdD1mYWxzZSZwYXJhbT0nK0pTT04uc3RyaW5naWZ5KHBhcmFtKSxcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0Ly8gY29uc29sZS5sb2cocGFyYW0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHR2YXIgY2FsbGJhY2tfZXZlbnRpZCA9IHBhcmFtLmJ1dHRvbl9jYWxsYmFjay50cmltKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBldmVudGlkOiBjYWxsYmFja19ldmVudGlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHJvYmppZDogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBjbHNpZDogJHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBhdHRyOiBwYXJhbS5yZXEsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgaW5wdXRwYXJhbWV0ZXI6IGRhdGFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBwYXJhbS5kYXRhX2F0dHIpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0fVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfSk7XHRcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fZGF0YV9xdWVyeV9kbGcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fY29tbW9uX2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBkID0gZGlhbG9nKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6Jyxcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBjb250ZW50OiBhY3Rpb24uYWN0aW9uX3R5cGUgKyAn5q2kYWN0aW9u5bCa5pyq5aSE55CG77yBJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBkLnNob3coKTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fcHJvamVjdF9xdWVyeV9kbGcnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhhY3Rpb24udmFsdWUubXVsaXRfc2VsZWN0KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBwcmlSZWwgPSAnLTEnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+WFqOmDqOebuOWFsycpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzAnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR6LSf6LSj55qE6aG555uuJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMSc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHliJvlu7rnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICcyJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWPguS4jueahCcgfHwgYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5Yqg55qEJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMyc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHlhbPms6jnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICc0Jztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeS4i+WxnueahOmhueebricpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByaVJlbCA9ICc1Jztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHBhcmFtXz17XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGluZGV4OiBpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWluZGV4OmlpbmRleCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0YnV0dG9uX2NhbGxiYWNrOmJ1dHRvbl9jYWxsYmFjayxcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxOnJlcVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR1cmw6Jy4uL3NlbFByai9pbmRleD9yZWxhdGlvbj0nK3ByaVJlbCsnJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW1fKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRBZGRQZXIoZGF0YSxwYXJhbSl7IFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbHVlPWRhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLklEKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHR2YXIgY2FsbGJhY2tfZXZlbnRpZCA9IHBhcmFtLmJ1dHRvbl9jYWxsYmFjay50cmltKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tfZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBldmVudGlkOiBjYWxsYmFja19ldmVudGlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBlZHR5cGU6IFwiMlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBwcm9qZWN0aWQ6IGRhdGFbMF0uSUQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICB1c2VybG9naW46IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgYXR0cjogcGFyYW0ucmVxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgJHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgZCA9IGRpYWxvZyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGl0bGU6ICc8aSBjbGFzcz1cImFjZS1pY29uIGZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiAnICsgJ+aPkOekuicsXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIH0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZC5zaG93KCk7XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLo1LjJcIixjb250ZW50OiAn6LCD55SoIGJlZm9yZV9jbGlja19idXR0b24g6ISa5pys6L+U5Zue56m677yMZXZlbnRfaWQnICsgZXZlbnRpZCxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekujUuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgc2Nhbl9pbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pe1xuXHRcdCAgICBcdHZhciBwYXJhbSA9IHtcblx0XHQgICAgXHQgICAgRWRpdFN0eWxlOiB0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuVmlld19TdHlsZS5OYW1lLFxuXHRcdCAgICBcdCAgICBWaWV3U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5WaWV3X1N0eWxlLk5hbWUsXG5cdFx0ICAgIFx0ICAgIE5vdFRyaWdnZXJTeXNFdmVudDogMCxcblx0XHQgICAgXHQgICAgZW52aXJvbWVudDoge1xuXHRcdCAgICBcdCAgICAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHQgICAgXHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLklELCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0ICAgIFx0ICAgICAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdCAgICBcdCAgICAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdCAgICBcdCAgICAgICAgbWFzdGVyOiB7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0ICAgIFx0ICAgICAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdCAgICBcdCAgICAgICAgfVxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fVxuXHRcdCAgICBcdHZhciBpbnB1dHBhcmFtZXRlciA9ICcnO1xuXHRcdCAgICBcdHZhciBnbG9iYWxfYXR0ciA9ICcnO1xuXHRcdCAgICBcdFxuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQsXG5cdFx0ICAgICAgICAgICAgcmNsc2lkOiBpbmZvLnJjbHNpZCwgcm9iamlkOiBpbmZvLnJvYmppZCwgdXNlcmxvZ2luOiBpbmZvLnVzZXJsb2dpbiwgY2xzaWQ6IGluZm8uY2xzaWQsIG9iamlkOiBpbmZvLm9iamlkLFxuXHRcdCAgICAgICAgICAgIGF0dHI6IEpTT04uc3RyaW5naWZ5KGluZm8uYXR0ciksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KHBhcmFtKSwgaW5wdXRwYXJhbWV0ZXI6IGlucHV0cGFyYW1ldGVyLCBnbG9iYWxfYXR0cjogZ2xvYmFsX2F0dHJcblx0XHQgICAgICAgIH1cblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHQgICAgXHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdCAgICBcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHQgICAgXHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHQgICAgXHRcdFx0aWYgKGFjdGlvbmxpc3QpIHtcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGogPSAwOyBqIDwgYWN0aW9ubGlzdC5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIHZhciBhY3Rpb24gPSBhY3Rpb25saXN0W2pdXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbl90eXBlID0gYWN0aW9uLmFjdGlvbl90eXBlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIHZhciB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgdmFsID0gdmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFsID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codmFsKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBhID0gMDsgYSA8IHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdC5sZW5ndGg7IGErKykge1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBsID0gMDsgbCA8IHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdFthXS5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGNhID0gdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0W2FdLkF0dHJbbF07XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHZhbFtpXS5hdHRyICA9PSBjYS5OYW1lKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5a2X5YW4JyB8fCBjYS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdEl0ZW1MaXN0PVtdO1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdmFsW2ldLmNob2ljZV9saXN0KXtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID12YWxbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGljdEl0ZW1MaXN0LnB1c2goe1wiQ05fU19OQU1FXCI6dmFsLFwiTmFtZVwiOnZhbCxcImxhYmVsXCI6dmFsLFwidmFsdWVcIjp2YWx9KTtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbSA9IGRpY3RJdGVtTGlzdDtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYXR0cltqXS5kaWN0aXRlbSA9IHZhbFtpXS5jaG9pY2VfbGlzdDtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjYS52YWx1ZSA9IHZhbFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWxbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaCh2YWxbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gdmFsW2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHZhbFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoYWN0aW9uX3R5cGUgPT0gJ29wZW5fc2VsZWN0X3VzZXJkbGcnKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNi4yXCIsY29udGVudDpcIm9wZW5fc2VsZWN0X3VzZXJkbGfov5nkuKphY3Rpb25fdHlwZei/mOacquWkhOeQhu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcblx0XHQgICAgXHRcdH1lbHNle1xuXHRcdCAgICBcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzZcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdFx0fVxuXHRcdCAgICBcdH0pLmNhdGNoKGV4PT57XG5cdFx0ICAgIFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0ICAgIFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzYuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdCAgICBcdH0pO1xuXHRcdCAgICB9LFxuXHRcdCAgICBzY2FuX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLGRhdGFfYXR0cil7XG5cdFx0ICAgIFx0dmFyICR0aGlzID0gdGhpcztcblx0XHQgICAgXHR2YXIgZW52aXJvbWVudCA9IHtcblx0XHQgICAgXHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHQgICAgXHQgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsICAgICAvLyDlip/og73ngrnku47mlbDmja7nsbvmoIfor4Zcblx0XHQgICAgXHQgICAgJ2J1dHRvbic6ICd0b3AnLCAgIC8vIHRvcC9ib3R0b21cblx0XHQgICAgXHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdCAgICBcdCAgICBtYXN0ZXI6IHtcblx0XHQgICAgXHQgICAgICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLklELCAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahGNsc19pZFxuXHRcdFx0XHRcdFx0YXR0cjogaW5mby5tYXN0X2F0dHIgLy/kuLvmlbDmja7nsbvlsZ7mgKdcblx0XHQgICAgXHQgICAgICAgIC8vb2JqX2lkOiAnJyAgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRvYmpfaWRcblx0XHQgICAgXHQgICAgfVxuXHRcdCAgICBcdH07XG5cdFx0ICAgIFx0ZW52aXJvbWVudC5lZGl0X2RsZyA9IHtcblx0XHRcdFx0XHR0eXBlOiAnc21hbGwnLC8v5bCP56qX5Y+jXG5cdFx0ICAgIFx0ICAgIGNsYXNzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsLy/lvZPliY3mlbDmja7nsbtpZFxuXHRcdCAgICBcdH1cblx0XHQgICAgXHRpZiAoZGF0YV9hdHRyKSB7XG5cdFx0ICAgIFx0ICAgIGVudmlyb21lbnQuZWRpdF9kbGcuZm9ybV9jb250cm9sID0gey8v5omA5bGe55qE6KGo5Y2V5o6n5Lu2XG5cdFx0ICAgIFx0ICAgICAgICBuYW1lOiBkYXRhX2F0dHIuTmFtZSwvL+Wtl+auteWxnuaAp1xuXHRcdCAgICBcdCAgICAgICAgdGV4dDogZGF0YV9hdHRyLkRpc3BOYW1lLC8v5pi+56S65paH5pysXG5cdFx0ICAgIFx0ICAgICAgICBncm91cF9uYW1lOiBkYXRhX2F0dHIuR3JvdXBOYW1lLC8v5bGe5oCn57uEXG5cdFx0ICAgIFx0ICAgICAgICB0eXBlOiBkYXRhX2F0dHIuVHlwZSwvL+Wtl+auteexu+Wei1xuXHRcdCAgICBcdCAgICAgICAgcmVhZG9ubHk6IGRhdGFfYXR0ci5SZWFkT25seSwvL+aYr+WQpuWPquivu1xuXHRcdCAgICBcdCAgICAgICAgYnV0dG9uX2ltZzogZGF0YV9hdHRyLmJ1dHRvbl9pbWcsLy/lvJXnlKjmjInpkq7nmoTlm77moIdcblx0XHQgICAgXHQgICAgICAgIGJ1dHRvbl90b29sdGlwOiBkYXRhX2F0dHIuYnV0dG9uX3Rvb2x0aXAvL+W8leeUqOaMiemSrueahHRvb2x0aXBcblx0XHQgICAgXHQgICAgfVxuXHRcdCAgICBcdH1cblx0XHQgICAgXHRcblx0XHQgICAgXHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLnJlcGxhY2UoJ3snLCcnKS5yZXBsYWNlKCd9JywnJyksXG5cdFx0ICAgICAgICAgICAgcmNsc2lkOiBpbmZvLnJjbHNpZCwgcm9iamlkOiBpbmZvLnJvYmppZCwgdXNlcmxvZ2luOiBpbmZvLnVzZXJsb2dpbiwgY2xzaWQ6IGluZm8uY2xzaWQsIG9iamlkOiBpbmZvLm9iamlkLFxuXHRcdCAgICAgICAgICAgIGF0dHI6IEpTT04uc3RyaW5naWZ5KGluZm8uYXR0ciksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGVudmlyb21lbnQpLCBpbnB1dHBhcmFtZXRlcjogSlNPTi5zdHJpbmdpZnkoaW5mby5pbnB1dFBhcmFtdGVyKSwgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHQgICAgXHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0ICAgIFx0XHRcdHZhciBhY3Rpb25saXN0ID0gZGF0YS5hY3Rpb247XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFxuXHRcdCAgICBcdFx0XHRpZiAoYWN0aW9ubGlzdCkge1xuXHRcdCAgICBcdFx0XHRcdGNvbnNvbGUubG9nKGFjdGlvbmxpc3QpO1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGFjdGlvbmxpc3QubGVuZ3RoOyBpaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbmxpc3RbaWldO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ3NldF9kbGdfYXR0cicpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGFjdGlvbi52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0W2ldLmNob2ljZV9saXN0KSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBzID0gMDsgcyA8ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtzXS5zdWJDbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc3ViQ2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uVHlwZT09J+Wtl+WFuCcgfHwgYXR0cltqXS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdEl0ZW1MaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gcmVzdWx0W2ldLmNob2ljZV9saXN0KXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID1yZXN1bHRbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGljdEl0ZW1MaXN0LnB1c2goe1wiQ05fU19OQU1FXCI6dmFsLFwiTmFtZVwiOnZhbCxcImxhYmVsXCI6dmFsLFwidmFsdWVcIjp2YWx9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhdHRyW2pdLmRpY3RpdGVtID0gZGljdEl0ZW1MaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gcmVzdWx0W2ldLmNob2ljZV9saXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3QubGVuZ3RoOyBzKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0Zm9yICh2YXIgYyA9IDA7IGMgPCAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc3ViQ2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdHZhciBhdHRyID0gJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0ckxpc3RbY10uQXR0cjtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHRcdGNvbnNvbGUubG9nKGF0dHJbal0uTmFtZSsnPT0nK3Jlc3VsdFtpXS5hdHRyKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCEkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnc2V0X2dsb2JhbF9hdHRyJykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAkdGhpcy4kYWN0aW9udHIgPSBhY3Rpb24udmFsdWUgfHwgW107XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ2FkZF9zdWJjbHNfcGFuZWwnKSB7IC8v5Li75LuO5pWw5o2u57G75omr56CB5p+l6K+i5pWw5o2uXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIHZhciByZXN1bHQgPSBhY3Rpb24udmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGlzdF8xID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QpKTtcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBzY2FuQ29kZVZhbCA9ICR0aGlzLiRkYXRhLnNjYW5Db2RlVmFsO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYoaW5mby5pbnB1dFBhcmFtdGVyWzBdLmF0dHI9PVwibWFzdF9pbnB1dF8zMDM3XCIpIC8v5Yik5pat5piv5Li75pWw5o2u57G75omr56CB5p+l6K+i5pWw5o2uXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNjYW5Db2RlVmFsID0gXCJtYXN0X2lucHV0XzMwMzctXCIraWk7XG5cdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3QucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNjYW5Db2RlVmFsOnNjYW5Db2RlVmFsLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdWJDbGFzc0F0dHI6bGlzdF8xXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTsgXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIHMgPSAwOyBzIDwgJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0Lmxlbmd0aDsgcysrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnNjYW5Db2RlVmFsID09IHNjYW5Db2RlVmFsKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBfc3ViQ2xhc3NBdHRyID0gJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGMgPSAwOyBjIDwgX3N1YkNsYXNzQXR0ci5sZW5ndGg7IGMrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0ciA9IF9zdWJDbGFzc0F0dHJbY10uQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYXR0cltqXS5OYW1lKyc9PScrcmVzdWx0W2ldLmF0dHIpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cj1saXN0XzE7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHJldHVybiByZXN1bHRbaV0uYXR0ciA9PSBzLmF0dHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBsZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLnB1c2gocmVzdWx0W2ldKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAobGVuZ3RoID09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGZvciAodmFyIGogPSAwOyBqIDwgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmIChkYXRhLnJlc3VsdCkge1xuXHRcdFx0XHRcdFx0XHRsZXQgbGlzdF8xID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QpKTtcblx0XHRcdFx0XHRcdFx0dmFyIHNjYW5Db2RlVmFsID0gJHRoaXMuJGRhdGEuc2NhbkNvZGVWYWw7XG5cdFx0XHRcdFx0XHRcdGlmKGluZm8uaW5wdXRQYXJhbXRlclswXS5hdHRyPT1cIm1hc3RfaW5wdXRfMzAzN1wiKVxuXHRcdFx0XHRcdFx0XHRcdHNjYW5Db2RlVmFsID0gXCJtYXN0X2lucHV0XzMwMzctXCIraWk7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRzY2FuQ29kZVZhbDpzY2FuQ29kZVZhbCxcblx0XHRcdFx0XHRcdFx0XHRzdWJDbGFzc0F0dHI6bGlzdF8xXG5cdFx0XHRcdFx0XHRcdH0pOyBcblx0XHQgICAgXHRcdFx0ICAgIHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmKCR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtzXS5zY2FuQ29kZVZhbCA9PSBzY2FuQ29kZVZhbCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBfc3ViQ2xhc3NBdHRyID0gJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYyA9IDA7IGMgPCBfc3ViQ2xhc3NBdHRyLmxlbmd0aDsgYysrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSBfc3ViQ2xhc3NBdHRyW2NdLkF0dHI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhhdHRyW2pdLk5hbWUrJz09JytyZXN1bHRbaV0uYXR0cik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdFx0XHRcblx0XHQgICAgXHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHR9ZWxzZXtcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor683XCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHRcdH1cblx0XHQgICAgXHR9KS5jYXRjaChleD0+e1xuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor683LjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgc2Nhbl9PS0RhdGFPYmpSdW5DdXN0b21FdmVudChldmVudElEKXtcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcblx0XHRcdFx0XHR0aXRsZTpcIuWKoOi9veS4rS4uLlwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRpZihhci5zZWxlY3Q9PXRydWUpeyAvL+WIpOaWreS4i+aLieaYr+WQpuWkmumAiVxuXHRcdFx0XHRcdFx0XHRcdHZhciB2YWxTdHIgPVwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciB2IGluIGFyLlZhbHVlKXtcblx0XHRcdFx0XHRcdFx0XHRcdGlmKHZhbFN0cilcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1cIjtcIjtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbFN0cis9YXIuVmFsdWVbdl07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xuXHRcdFx0XHRcdFx0XHR9ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlfSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRpZiAoKGFyLk5vdEVtcHR5ID09ICcxJyB8fCBhci5ub3RlbXB0eSA9PSB0cnVlKSAmJiAhYXIuVmFsdWUpIHtcblx0XHRcdFx0XHRcdC8vIGlmKGFyLm5vdEVtcHR5PT0nMScpe1xuXHRcdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNob3dUb2FzdCh7dGl0bGU6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsaWNvbjpcInN1Y2Nlc3NcIixkdXJhdGlvbjozMDAwfSk7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgb2JqZWN0cz1bXTtcblx0XHRcdFx0dmFyIHN1YlBhbmVsTGlzdCA9ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgcyA9IDA7IHMgPCBzdWJQYW5lbExpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0XHR2YXIgc3ViX3JlcT1bXTtcblx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN1YlBhbmVsTGlzdFtzXS5zdWJDbGFzc0F0dHIubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHZhciBhdHRyID0gc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cltpXS5BdHRyO1xuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdFx0XHRcdHN1Yl9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdHN1Yl9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYoYXIuVHlwZT09J+Wtl+WFuCcgfHwgYXIuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0XHRpZihhci5zZWxlY3Q9PXRydWUpeyAvL+WIpOaWreS4i+aLieaYr+WQpuWkmumAiVxuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHZhbFN0ciA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgdiBpbiBhci5WYWx1ZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmKHZhbFN0cilcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPVwiO1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPWFyLlZhbHVlW3ZdO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0c3ViX3JlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xuXHRcdFx0XHRcdFx0XHRcdH1lbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHRzdWJfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWV9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0c3ViX3JlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKChhci5Ob3RFbXB0eSA9PSAnMScgfHwgYXIubm90ZW1wdHkgPT0gdHJ1ZSkgJiYgIWFyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGlmKGFyLm5vdEVtcHR5PT0nMScpe1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0b2JqZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdG9ial9pZDpzdWJQYW5lbExpc3Rbc10uc2NhbkNvZGVWYWwsXG5cdFx0XHRcdFx0XHRvYmpfYXR0cnM6c3ViX3JlcVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBkYXRhSnNvbj17XG5cdFx0XHRcdFx0bWFzdGVyX2Nsczp7XG5cdFx0XHRcdFx0XHRjbHNfbmFtZTokdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLk5hbWUsXG5cdFx0XHRcdFx0XHRvYmpfYXR0cnM6cmVxXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRpbnB1dF8zMDM3OiR0aGlzLiRkYXRhLnNjYW5Db2RlVmFsLCAgIC8v5omr56CB5YaF5a65XG5cdFx0XHRcdFx0b3BfdHlwZTokdGhpcy4kZGF0YS5wYXJhbS5PcGVyYXRpb25UeXBlLCAvL+S9nOS4muexu+Wei+WumuS5iVxuXHRcdFx0XHRcdHN1Yl9jbHM6e1xuXHRcdFx0XHRcdFx0Y2xzX25hbWU6JHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5OYW1lLFxuXHRcdFx0XHRcdFx0b2JqZWN0czpvYmplY3RzXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShkYXRhSnNvbikpO1xuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLCBldmVudGlkOiBldmVudElELCBwcm9qZWN0aWQ6ICcnLHJjbHNpZDogJycsIHJvYmppZDogJycsIHVzZXJsb2dpbjogJycsIFxuXHRcdFx0XHRcdGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLklELCBvYmppZDogJycsYXR0cjogSlNPTi5zdHJpbmdpZnkoW10pLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShbXSksIFxuXHRcdFx0XHRcdGdsb2JhbF9hdHRyOiBKU09OLnN0cmluZ2lmeSgkdGhpcy4kZGF0YS5nbG9iYWxfYXR0ciksZGF0YUpzb246SlNPTi5zdHJpbmdpZnkoZGF0YUpzb24pXG5cdFx0ICAgICAgICB9XG5cdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGRhdGFJbmZvKSk7XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHQgICAgXHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XHRcdFxuXHRcdCAgICBcdFx0XHR2YXIgcmVzdWx0ID0gZGF0YS5yZXN1bHQ7XG5cdFx0ICAgIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAvLyBzZWxmLmNsYXNzX2F0dHJfZWxlLmZpbmQoJy5hdHRyX2ZpZWxkW2RhdGEtZmllbGQ9XCInICsgcmVzdWx0W2ldLmF0dHIgKyAnXCJdJykudmFsKHJlc3VsdFtpXS52YWx1ZSkuZGF0YSgndmFsJywgcmVzdWx0W2ldLnZhbHVlKTtcblx0XHQgICAgXHRcdFx0ICAgIHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgaWYgKCEkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmKGV2ZW50SUQgIT0gJHRoaXMuJGRhdGEucGFyYW0uQWZ0ZXJfT0tfRXZlbnQuSUQpXG5cdFx0ICAgIFx0XHRcdFx0JHRoaXMuc2Nhbl9PS0RhdGFPYmpSdW5DdXN0b21FdmVudCgkdGhpcy4kZGF0YS5wYXJhbS5BZnRlcl9PS19FdmVudC5JRCk7XG5cdFx0XHRcdFx0XHRlbHNle1xuXHRcdFx0XHRcdFx0XHQvL+WIt+aWsFxuXHRcdFx0XHRcdFx0XHR1bmkucmVkaXJlY3RUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOicuLi9tb2RhbC9tc19jbGFzc0F0dHI/cGFyYW09JytKU09OLnN0cmluZ2lmeSgkdGhpcy4kZGF0YS5wYXJhbSkrXCImdGl0bGVuYW1lPVwiKyR0aGlzLiRkYXRhLnRpdGxlXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vOFwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vOC4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIFxuXHRcdFx0XG5cdFx0fVxuXHR9XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///80\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 67));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 69));\nvar _pickerAddress = _interopRequireDefault(__webpack_require__(/*! ../../js/pickerAddress/pickerAddress.vue */ 70));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 components: {\n pickerAddress: _pickerAddress.default\n },\n data: function data() {\n return {\n title: '鏂板',\n param: {},\n classAttrList: [],\n classGridStyle: [],\n edit_inital_event: \"\",\n //寮圭獥鍒濆鍖栦簨浠禝D\n edit_ok_event: \"\",\n //寮圭獥鐐瑰嚮OK 瑙﹀彂浜嬩欢ID\n edit_select_compose_event: \"\",\n //閫夋嫨缁勬垚瀵硅薄鏃惰皟鐢╘n edit_compose_cls_id: \"\",\n global_attr: [],\n refdatastore: [],\n //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}\n scanCodeVal: \"\",\n subClassAttrList: [],\n subPanelList: [],\n subClassGridStyle: []\n };\n },\n onLoad: function onLoad(options) {\n // console.log(options);\n uni.setNavigationBarTitle({\n title: options.titlename\n }); //璁剧疆椤堕儴鏍囬 \n var param = JSON.parse(options.param);\n this.$data.title = param.Add_BtnName ? param.Add_BtnName : options.titlename; //璁剧疆鎸夐挳鏂囧瓧\n __f__(\"log\", param, \" at pages/modal/ms_classAttr.vue:621\");\n if (!param.Master_Cls.View_Style) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃晫闈㈢獥鍙o紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!param.Master_Cls.View_Style.Name) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"璇ュ姛鑳界偣鏈厤缃獥鍙f牱寮忥紝璇烽噸鏂伴厤缃紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n this.$data.param = param;\n // var edit_dlg = {\n // Model: param.EditDlgMode,\n // Name: param.Master_Cls.View_Style.Name\n // }\n //涓绘暟鎹被鑾峰彇\n var dataInfo = {\n class_id: param.Master_Cls.ID\n };\n var $this = this;\n $this.$store.state.thisareaFuncID = param.Master_Cls.ID;\n // console.log($this.$store.getters.getclassAttrList);\n if ($this.$store.getters.getclassAttrList) {\n $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;\n $this.classGridStyleInfo(param.Master_Cls.ID, $this.$data.param.Master_Cls.View_Style.Name, 'Mast');\n } else {\n $this.$store.dispatch('classAttrList', dataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.classAttrList = success.data;\n $this.classGridStyleInfo(param.Master_Cls.ID, $this.$data.param.Master_Cls.View_Style.Name, 'Mast');\n } else {\n uni.showModal({\n title: \"閿欒1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n\n //浠庢暟鎹被鑾峰彇\n var subdataInfo = {\n class_id: param.Sub_Cls.ID\n };\n $this.$store.state.thisareaFuncSubID = param.Sub_Cls.ID;\n if ($this.$store.getters.getSubClassAttrList) {\n $this.$data.subClassAttrList = $this.$store.getters.getSubClassAttrList.data;\n $this.classGridStyleInfo(param.Sub_Cls.ID, $this.$data.param.Sub_Cls.View_Style.Name, 'Sub');\n } else {\n $this.$store.dispatch('subClassAttrList', subdataInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n $this.$data.subClassAttrList = success.data;\n $this.classGridStyleInfo(param.Sub_Cls.ID, $this.$data.param.Sub_Cls.View_Style.Name, 'Sub');\n } else {\n uni.showModal({\n title: \"閿欒1_1\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒1_1.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n },\n methods: {\n cancel: function cancel(e) {\n uni.navigateBack({\n delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉\n });\n },\n panel_del: function panel_del(index) {\n var $this = this;\n if (this.$data.subPanelList[index].scanCodeVal == this.$data.scanCodeVal) {\n this.$data.scanCodeVal = '';\n }\n if (!this.$data.subPanelList[index].ObjID) this.$data.subPanelList.splice(index, 1);else {\n var dataInfo = {\n clsId: this.$data.param.Sub_Cls.ID,\n objId: this.$data.subPanelList[index].ObjID\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:703\");\n // return;\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n this.$store.dispatch('DelObj', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:707\");\n uni.hideLoading();\n if (success.code == '00000') {\n $this.$data.subPanelList.splice(index, 1);\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鍒犻櫎鎴愬姛锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n } else {\n uni.showModal({\n title: \"閿欒9\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:716\");\n uni.hideLoading();\n uni.showModal({\n title: \"鎻愮ず9.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n },\n classGridStyleInfo: function classGridStyleInfo(clsid, styleName, clsType) {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var $this, gridstyleInfo;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n $this = _this;\n gridstyleInfo = {\n class_id: clsid,\n name: styleName,\n type: '2'\n };\n $this.$store.state.thisEditName = styleName;\n // console.log($this.$store.getters.getclassGridStyleInfo);\n //鑾峰彇涓绘暟鎹被鐣岄潰鏍峰紡\n if (clsType == 'Mast') {\n if ($this.$store.getters.getclassGridStyleInfo) {\n $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;\n $this.class_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('classGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.classGridStyle = success.data;\n $this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:749\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n } else if (clsType == 'Sub') {\n //鑾峰彇浠庢暟鎹被鐣岄潰鏍峰紡\n if ($this.$store.getters.getSubClassGridStyleInfo) {\n $this.$data.subClassGridStyle = $this.$store.getters.getSubClassGridStyleInfo.data;\n $this.subClass_attr_init();\n } else {\n //console.log(gridstyleInfo);\n $this.$store.dispatch('subClassGridStyleInfo', gridstyleInfo).then(function (success) {\n // console.log(success);\n if (success.code == '00000') {\n success.data.StyleDef = JSON.parse(success.data.StyleDef);\n $this.$data.subClassGridStyle = success.data;\n $this.subClass_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒1.2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:770\");\n uni.showModal({\n title: \"閿欒1.3\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n ontap: function ontap(e) {\n var _this2 = this;\n //鎵爜鍔熻兘\n //console.log(e.target)\n getApp().onScan(function (result) {\n //console.log(result.decodedata);\n var isVal = _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value;\n //涓绘暟鎹被鎵爜鏌ヨ鏁版嵁\n if (isVal != result.decodedata) {\n _this2.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata;\n uni.hideKeyboard();\n //瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈琝n var eventid = _this2.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n var req = [];\n var attrlist = _this2.$data.classAttrList; //涓绘暟鎹被灞炴�\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"7\",\n //\"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: 'MBOX',\n //this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: [],\n inputParamter: [{\n attr: 'mast_input_3037',\n value: result.decodedata\n }]\n };\n _this2.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n });\n },\n scan_ontap: function scan_ontap(e) {\n var _this3 = this;\n //鎵爜鍖烘壂鐮佸姛鑳絓n //console.log(e.target)\n getApp().onScan(function (result) {\n __f__(\"log\", result.decodedata, \" at pages/modal/ms_classAttr.vue:826\");\n var isflag = true;\n for (var i in _this3.$data.subPanelList) {\n if (_this3.$data.subPanelList[i].scanCodeVal == result.decodedata) isflag = false;\n }\n //瀛愭暟鎹被鎵爜鏌ヨ鏁版嵁\n if (isflag) {\n uni.hideKeyboard();\n _this3.$data.scanCodeVal = result.decodedata;\n var eventid = _this3.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n var mast_req = [];\n //涓绘暟鎹被灞炴�\n var classattrlist = _this3.$data.classAttrList;\n for (var i = 0; i < classattrlist.length; i++) {\n var attr = classattrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') mast_req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) mast_req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else mast_req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var req = [];\n //瀛愭暟鎹被灞炴�\n var attrlist = _this3.$data.subClassAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: '7',\n //\"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: 'MBOX',\n //this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: mast_req,\n inputParamter: [{\n attr: 'input_3037',\n value: _this3.$data.scanCodeVal\n }]\n };\n _this3.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n });\n },\n scan_onevent: function scan_onevent(e) {\n // console.log(e.target);\n var isflag = true;\n for (var i in this.$data.subPanelList) {\n if (this.$data.subPanelList[i].scanCodeVal == e.target.value) isflag = false;\n }\n //瀛愭暟鎹被鎵爜鏌ヨ鏁版嵁\n if (isflag) {\n uni.hideKeyboard();\n this.$data.scanCodeVal = e.target.value;\n var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n var mast_req = [];\n //涓绘暟鎹被灞炴�\n var classattrlist = this.$data.classAttrList;\n for (var i = 0; i < classattrlist.length; i++) {\n var attr = classattrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') mast_req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) mast_req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else mast_req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var req = [];\n //瀛愭暟鎹被灞炴�\n var attrlist = this.$data.subClassAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: '7',\n //\"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: 'MBOX',\n //this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: mast_req,\n inputParamter: [{\n attr: 'input_3037',\n value: this.$data.scanCodeVal\n }]\n };\n this.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n },\n onarrow: function onarrow(index, open) {\n // console.log(index+'--'+open);\n this.$data.classAttrList[index].Open = open == true ? false : true;\n },\n ondateTime: function ondateTime(e) {\n //console.log(e.target)\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n },\n onchange: function onchange(e) {\n __f__(\"log\", e.target, \" at pages/modal/ms_classAttr.vue:965\");\n var value = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n __f__(\"log\", data_attr, \" at pages/modal/ms_classAttr.vue:968\");\n if (value.Name != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = value.Name;\n __f__(\"log\", this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value, \" at pages/modal/ms_classAttr.vue:971\");\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n onchange2: function onchange2(item, value, delvalue) {\n // console.log(item);\n // console.log(value);\n // console.log(delvalue);\n if (item.length == 0) {\n //涓虹┖鏃讹紝娓呯┖灞炴�value\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n this.$data.classAttrList[i].Attr[j].Value = \"\";\n }\n }\n }\n }\n }\n for (var v in item) {\n var index,\n iindex,\n dindex = 0;\n for (var i in this.$data.classAttrList) {\n for (var j in this.$data.classAttrList[i].Attr) {\n for (var d in this.$data.classAttrList[i].Attr[j].dictitem) {\n if (item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name) {\n index = i;\n iindex = j;\n dindex = d;\n }\n }\n }\n }\n var itemvalue = item[v];\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n __f__(\"log\", data_attr, \" at pages/modal/ms_classAttr.vue:1038\");\n if (itemvalue.Name != data_attr.Value) {\n this.$data.classAttrList[index].Attr[iindex].Value = value;\n __f__(\"log\", this.$data.classAttrList[index].Attr[iindex].Value, \" at pages/modal/ms_classAttr.vue:1041\");\n var eventid = this.$data.classAttrList[index].Attr[iindex].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) req.push({\n attr: ar.Name,\n val: itemvalue.Name\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n }\n },\n onevent: function onevent(e) {\n // console.log(e.target);\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (e.target.value != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.target.value;\n // var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n //瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈琝n var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList; //涓绘暟鎹被灞炴�\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"7\",\n //\"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: 'MBOX',\n //this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req,\n mast_attr: [],\n inputParamter: [{\n attr: 'mast_input_3037',\n value: e.target.value\n }]\n };\n this.scan_DataObjRunCustomEvent(info, \"\");\n }\n }\n },\n oncheck: function oncheck(e) {\n // console.log(e.target);\n var ischecked = e.target.dataset.ischeck ? false : true;\n var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];\n // console.log(data_attr);\n if (ischecked != data_attr.Value) {\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = ischecked;\n var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;\n if (eventid) {\n // self.event_no_sub = 1;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n val: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n val: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n val: ar.Value ? ar.Value : ''\n });\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.DataObjRunCustomEvent(info);\n }\n }\n },\n inputValListIsDel: function inputValListIsDel(index) {\n // console.log(index);\n this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹筡n // console.log(this.$data.inputValList);\n },\n addresschange: function addresschange(e) {\n // console.log(e.target);\n __f__(\"log\", e.data.join(';'), \" at pages/modal/ms_classAttr.vue:1177\");\n this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = e.data.join(';');\n },\n classAttr_extButton: function classAttr_extButton(index, iindex) {\n var $this = this;\n var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;\n var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;\n if (!before_click_button) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"before_click_button-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!button_callback) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"button_callback-event_id涓虹┖锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index, iindex);\n },\n scan_classAttr_extButton: function scan_classAttr_extButton(e) {\n //---------鏈畬鎴�----------\n var $this = this;\n var Before_Select_Event = $this.$data.param.Scan_Code.Before_Select_Event.ID;\n var After_Select_Event = $this.$data.param.Scan_Code.After_Select_Event.ID;\n if (!Before_Select_Event) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"閫夋嫨鎸夐挳鍓嶄簨浠朵负绌猴紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n if (!After_Select_Event) {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏂板鎸夐挳鍚庝簨浠朵负绌猴紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n // var data_attr = this.$data.classAttrList[index].Attr[iindex];\n this.DataObjRunCustomEvent_Return(Before_Select_Event, '', After_Select_Event, '', '');\n },\n classAttr_AddPer: function classAttr_AddPer(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/ms_classAttr.vue:1218\");\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].Login + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"4\",\n projectid: \"\",\n rclsid: \"\",\n robjid: \"\",\n userlogin: data[0].Login,\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n classAttr_AddRef: function classAttr_AddRef(e) {\n __f__(\"log\", e.target, \" at pages/modal/ms_classAttr.vue:1247\");\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"姝ゅ姛鑳借繕鏈疄鐜帮紒\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];\n // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;\n },\n classAttr_AddPrj: function classAttr_AddPrj(index, iindex) {\n var param = {\n index: index,\n iindex: iindex\n };\n var $this = this;\n uni.navigateTo({\n url: '../selPrj/index?relation=-1¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n // console.log(data);\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;\n if (eventid) {\n eventid = eventid.trim();\n if (eventid) {\n var info = {\n eventid: eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: []\n };\n\n // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n }\n });\n },\n sava: function sava() {\n if (this.$data.param.Before_OK_Event)\n //鍒ゆ柇鍔熻兘鐐瑰弬鏁版槸鍚︽湁纭畾鍓嶈剼鏈琝n this.scan_OKDataObjRunCustomEvent(this.$data.param.Before_OK_Event.ID);else this.scan_OKDataObjRunCustomEvent(this.$data.param.After_OK_Event.ID);\n },\n add: function add() {\n var _this4 = this;\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n name: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n name: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n name: ar.Name,\n value: valStr\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value\n });\n } else req.push({\n name: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID\n }\n };\n var dataInfo = {\n class_id: this.$data.param.Master_Cls.ID,\n data_obj_id: '',\n masterclsid: '',\n req: JSON.stringify(req),\n upfile: JSON.stringify([]),\n post_data: JSON.stringify({}),\n compose: JSON.stringify([]),\n refdatastore: JSON.stringify([]),\n extinfo: JSON.stringify(enviroment),\n not_trigger_sys_event: ''\n };\n\n // return\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1353\");\n this.$store.dispatch('addclassattr', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1355\");\n uni.hideLoading();\n if (success.code == '00000') {\n var action = JSON.parse(success.data.Action);\n if (action.ret == '0') {\n if (action.result_type == '0') {\n uni.showToast({\n title: action.result,\n icon: \"success\",\n duration: 3000\n });\n }\n // \"{\"ret\":0, \"result_type\":0, \"result\":\"鍒涘缓鎴愬姛123123123\",\"info\":\"\"}\"\n }\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/ms_classAttr?param=' + JSON.stringify(_this4.$data.param) + \"&titlename=\" + _this4.$data.title\n });\n // this.class_attr_init();\n } else {\n uni.showModal({\n title: \"閿欒\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n __f__(\"log\", ex, \" at pages/modal/ms_classAttr.vue:1374\");\n uni.hideLoading();\n uni.showModal({\n title: \"鎻愮ず\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n class_attr_init: function class_attr_init() {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.classAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.classAttrList.length; s++) {\n var clsattr = this.$data.classAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.classGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.classGridStyle.StyleDef.title_p_wdith,\n Font: this.$data.classGridStyle.StyleDef.Font ? this.$data.classGridStyle.StyleDef.Font : {},\n Bk_Color: this.$data.classGridStyle.StyleDef.Bk_Color ? this.$data.classGridStyle.StyleDef.Bk_Color : '#FFFFFF',\n Text_Color: this.$data.classGridStyle.StyleDef.Text_Color ? this.$data.classGridStyle.StyleDef.Text_Color : '#000000'\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.classAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.classGridStyle.StyleDef) {\n if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.classGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n value: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.classGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n // console.log(req);\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.classGridStyle, \" at pages/modal/ms_classAttr.vue:1510\");\n __f__(\"log\", this.$data.classAttrList, \" at pages/modal/ms_classAttr.vue:1511\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n subClass_attr_init: function subClass_attr_init() {\n var attrlist = this.$data.subClassGridStyle.StyleDef.show_style;\n var newattrlist = [];\n if (this.$data.subClassAttrList.length > 0) {\n for (var i = 0; i < attrlist.length; i++) {\n var open = attrlist[i].open;\n var name = attrlist[i].attrgroup_name;\n var attrs = attrlist[i].attrs;\n for (var s = 0; s < this.$data.subClassAttrList.length; s++) {\n var clsattr = this.$data.subClassAttrList[s];\n if (name == clsattr.Name) {\n var attr = [];\n for (var j = 0; j < attrs.length; j++) {\n for (var l = 0; l < clsattr.Attr.length; l++) {\n var ca = clsattr.Attr[l];\n if (attrs[j].attr == ca.Name) {\n ca.action = attrs[j].action;\n ca.edit = attrs[j].edit;\n ca.notempty = attrs[j].notempty;\n ca.ext_button = attrs[j].ext_button;\n ca.button_img = attrs[j].button_img;\n ca.button_tooltip = attrs[j].button_tooltip;\n ca.before_click_button = attrs[j].before_click_button;\n ca.button_callback = attrs[j].button_callback;\n ca.hidden = attrs[j].hidden;\n ca.select = attrs[j].select == undefined ? false : attrs[j].select;\n ca.Value = \"\";\n if (ca.dictitem) {\n if (ca.select == true) ca.Value = []; //ca.dictitem[0].CN_S_NAME;\n else ca.Value = '璇烽�鎷�; //ca.dictitem[0].CN_S_NAME;\n var dictitemlist = [];\n for (var d = 0; d < ca.dictitem.length; d++) {\n ca.dictitem[d].label = ca.dictitem[d].CN_S_NAME;\n ca.dictitem[d].value = ca.dictitem[d].CN_S_NAME;\n if (ca.dictitem[d].CN_C_IS_DEFAULT == '1') ca.Value = ca.dictitem[d].CN_S_NAME;\n }\n }\n if (ca.Type == '鏃ユ湡' || ca.Type == '鏃堕棿') {\n var nowDate = new Date();\n var date = {\n year: nowDate.getFullYear(),\n month: nowDate.getMonth() + 1,\n day: nowDate.getDate()\n };\n ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);\n }\n if (ca.Type == '寮曠敤瀵硅薄(澶氫釜)') {\n var relClsList = [];\n var attr_rescls = ca.RelCls.split(',');\n for (var ii in attr_rescls) {\n var rescls = attr_rescls[ii].split('|');\n relClsList.push({\n id: rescls[0],\n name: rescls[1]\n });\n }\n ca.RelClsList = relClsList;\n ca.Value = '璇�;\n }\n if (ca.Type == '鐪佸競鍖�) ca.Value = '璇烽�鎷�;\n if (ca.Type == '甯冨皵鍊�) ca.Value = false;\n attr.push(ca);\n }\n }\n }\n newattrlist.push({\n BkColor: clsattr.BkColor,\n HasAce: clsattr.HasAce,\n ImgFontStyle: clsattr.ImgFontStyle,\n Name: clsattr.Name,\n Order: clsattr.Order,\n Open: open,\n Attr: attr,\n control_style: this.$data.subClassGridStyle.StyleDef.control_style,\n title_p_wdith: this.$data.subClassGridStyle.StyleDef.title_p_wdith,\n Font: this.$data.subClassGridStyle.StyleDef.Font ? this.$data.subClassGridStyle.StyleDef.Font : {},\n Bk_Color: this.$data.subClassGridStyle.StyleDef.Bk_Color ? this.$data.subClassGridStyle.StyleDef.Bk_Color : '#FFFFFF',\n Text_Color: this.$data.subClassGridStyle.StyleDef.Text_Color ? this.$data.subClassGridStyle.StyleDef.Text_Color : '#000000'\n });\n }\n }\n }\n if (newattrlist.length > 0) {\n this.$data.subClassAttrList = newattrlist;\n }\n var req = [];\n if (this.$data.subClassGridStyle.StyleDef) {\n if (this.$data.subClassGridStyle.StyleDef.show_style.length > 0) {\n var attrlist = this.$data.subClassGridStyle.StyleDef.show_style;\n // $el.find('.attr_field').prop('readonly', true);\n // $el.find('.attr_field').prop('disabled', true);\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].attrs;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n req.push({\n attr: ar.attr,\n value: ar.value ? ar.value : ''\n });\n }\n }\n }\n }\n var eventlist = this.$data.subClassGridStyle.StyleDef.event;\n if (eventlist) {\n if (eventlist.length > 0) {\n for (var i = 0; i < eventlist.length; i++) {\n if (eventlist[i].event_id == 'before_ok') {\n this.$data.edit_ok_event = eventlist[i];\n } else if (eventlist[i].event_id == 'initial') {\n this.$data.edit_inital_event = eventlist[i];\n } else if (eventlist[i].event_id == 'before_select_compose') {\n this.$data.edit_select_compose_event = eventlist[i].scrip_id;\n this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;\n }\n }\n }\n }\n // console.log(req);\n if (this.$data.edit_inital_event) {\n var eventid = this.$data.edit_inital_event.scrip_id;\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Sub_Cls.ID,\n objid: \"\",\n attr: req\n };\n this.scan_ini_DataObjRunCustomEvent(info);\n }\n __f__(\"log\", this.$data.subClassGridStyle, \" at pages/modal/ms_classAttr.vue:1648\");\n __f__(\"log\", this.$data.subClassAttrList, \" at pages/modal/ms_classAttr.vue:1649\");\n } else {\n uni.showModal({\n title: \"鎻愮ず\",\n content: \"鏈壘鍒板彲鏄剧ず鐨勭殑灞炴�\",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n },\n ini_DataObjRunCustomEvent: function ini_DataObjRunCustomEvent(info) {\n var _this5 = this;\n var param = {\n EditStyle: this.$data.param.Master_Cls.View_Style.Name,\n ViewStyle: this.$data.param.Master_Cls.View_Style.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1679\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1681\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/ms_classAttr.vue:1696\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this5.$data.classAttrList.length; a++) {\n for (var l = 0; l < _this5.$data.classAttrList[a].Attr.length; l++) {\n var ca = _this5.$data.classAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this5.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this5.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this5.$data.refdatastore.length; j++) {\n if (_this5.$data.refdatastore[j].attr == val[i].attr) {\n _this5.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒2.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒2\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒2.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent: function DataObjRunCustomEvent(info, data_attr) {\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.Master_Cls.ID //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: '',\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1781\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1783\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/ms_classAttr.vue:1789\");\n for (var i = 0; i < actionlist.length; i++) {\n var action = actionlist[i];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/ms_classAttr.vue:1816\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (data.action[i].action_type == 'set_global_attr') {\n $this.$data.global_attr = data.action[i].value || [];\n }\n }\n }\n if (data.result) {\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var c = 0; c < $this.$data.classAttrList.length; c++) {\n var attr = $this.$data.classAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒3\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒3.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n OKDataObjRunCustomEvent: function OKDataObjRunCustomEvent() {\n var _this6 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n }\n };\n\n var eventid = this.$data.edit_ok_event.scrip_id;\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'value': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var info = {\n eventid: eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: req\n };\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:1936\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:1938\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!_this6.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n _this6.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this6.$data.refdatastore.length; j++) {\n if (_this6.$data.refdatastore[j].attr == result[i].attr) {\n _this6.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n _this6.add();\n } else {\n uni.showModal({\n title: \"閿欒4\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒4.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n DataObjRunCustomEvent_Return: function DataObjRunCustomEvent_Return(eventid, data_attr, button_callback, index, iindex) {\n var _this7 = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Master_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Master_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n var req = [];\n var attrlist = this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n }\n }\n if (this.$data.refdatastore.length > 0) {\n for (var i = 0; i < this.$data.refdatastore.length; i++) {\n if (!req.filter(function (s) {\n return this.$data.refdatastore[i].attr == s.name;\n }).length) {\n length = 1;\n req.push({\n 'attr': this.$data.refdatastore[i].attr,\n 'value': this.$data.refdatastore[i].value\n });\n }\n }\n }\n var extinfo = enviroment;\n extinfo.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: this.$data.param.Master_Cls.ID //褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n extinfo.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: \"0\",\n eventid: eventid,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: this.$data.param.Master_Cls.ID,\n objid: '',\n attr: JSON.stringify(req),\n extinfo: JSON.stringify(extinfo),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2027\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2029\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n if (data != \"\") {\n var actions = data.action;\n __f__(\"log\", actions, \" at pages/modal/ms_classAttr.vue:2035\");\n if (actions) {\n for (var i = 0; i < actions.length; i++) {\n var action = actions[i];\n var val = action.value;\n var enviroment = JSON.stringify(enviroment);\n if (action.action_type == 'open_panel') {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_select_userdlg') {\n var style = val.style;\n // style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''\n var $this = _this7;\n var param = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req,\n data_attr: data_attr\n };\n uni.navigateTo({\n url: '../selpsn/index?mulit=false¶m=' + JSON.stringify(param),\n events: {\n AddPer: function AddPer(data, param) {\n // console.log(param);\n __f__(\"log\", data, \" at pages/modal/ms_classAttr.vue:2065\");\n var callback_eventid = param.button_callback.trim();\n var info = {\n eventid: callback_eventid,\n edtype: \"0\",\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: param.req,\n inputparameter: data\n };\n $this.DataObjRunCustomEvent(info, param.data_attr);\n }\n }\n });\n } else if (action.action_type == 'open_data_query_dlg') {} else if (action.action_type == 'open_common_dlg') {\n var value = action.value;\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n } else if (action.action_type == 'open_project_query_dlg') {\n //console.log(action.value.select_range);\n //console.log(action.value.mulit_select);\n var priRel = '-1';\n if (action.value.select_range == '鍏ㄩ儴鐩稿叧') priRel = '0';else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰') priRel = '1';else if (action.value.select_range == '鎴戝垱寤虹殑') priRel = '2';else if (action.value.select_range == '鎴戝弬涓庣殑' || action.value.select_range == '鎴戝弬鍔犵殑') priRel = '3';else if (action.value.select_range == '鎴戝叧娉ㄧ殑') priRel = '4';else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰') priRel = '5';\n var $this = _this7;\n var param_ = {\n index: index,\n iindex: iindex,\n button_callback: button_callback,\n req: req\n };\n uni.navigateTo({\n url: '../selPrj/index?relation=' + priRel + '¶m=' + JSON.stringify(param_),\n events: {\n AddPer: function AddPer(data, param) {\n $this.$data.classAttrList[param.index].Attr[param.iindex].Value = data[0].Name;\n $this.$data.classAttrList[param.index].Attr[param.iindex].ValID = data[0].ID + ';' + data[0].Name;\n var callback_eventid = param.button_callback.trim();\n if (callback_eventid) {\n var info = {\n eventid: callback_eventid,\n edtype: \"2\",\n projectid: data[0].ID,\n rclsid: \"\",\n robjid: \"\",\n userlogin: \"\",\n clsid: $this.$data.param.Master_Cls.ID,\n objid: \"\",\n attr: param.req\n };\n $this.DataObjRunCustomEvent(info);\n }\n }\n }\n });\n } else {\n var d = dialog({\n title: '<i class=\"ace-icon fa fa-info-circle\"></i> ' + '鎻愮ず',\n content: action.action_type + '姝ction灏氭湭澶勭悊锛�\n });\n d.show();\n }\n }\n }\n } else {\n uni.showModal({\n title: \"鎻愮ず5.2\",\n content: '璋冪敤 before_click_button 鑴氭湰杩斿洖绌猴紝event_id' + eventid,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒5\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"鎻愮ず5.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_ini_DataObjRunCustomEvent: function scan_ini_DataObjRunCustomEvent(info) {\n var _this8 = this;\n var param = {\n EditStyle: this.$data.param.Sub_Cls.View_Style.Name,\n ViewStyle: this.$data.param.Sub_Cls.View_Style.Name,\n NotTriggerSysEvent: 0,\n enviroment: {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: this.$data.param.Sub_Cls.ID,\n // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: this.$data.param.Sub_Cls.ID // button=bottom鏃�master鐨刢ls_id\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n }\n };\n\n var inputparameter = '';\n var global_attr = '';\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid,\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(param),\n inputparameter: inputparameter,\n global_attr: global_attr\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2188\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2190\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n for (var j = 0; j < actionlist.length; j++) {\n var action = actionlist[j];\n var action_type = action.action_type;\n var value = action.value;\n if (action_type == 'set_dlg_attr') {\n if (value) {\n var val = value;\n if (typeof value == 'string') {\n val = JSON.parse(value);\n }\n __f__(\"log\", val, \" at pages/modal/ms_classAttr.vue:2205\");\n for (var i = 0; i < val.length; i++) {\n for (var a = 0; a < _this8.$data.subClassAttrList.length; a++) {\n for (var l = 0; l < _this8.$data.subClassAttrList[a].Attr.length; l++) {\n var ca = _this8.$data.subClassAttrList[a].Attr[l];\n if (val[i].attr == ca.Name) {\n if (ca.Type == '瀛楀吀' || ca.Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in val[i].choice_list) {\n var val = val[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n ca.dictitem = dictItemList;\n // attr[j].dictitem = val[i].choice_list;\n } else {\n // ca.value = val[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!_this8.$data.refdatastore.filter(function (s) {\n return val[i].attr == s.attr;\n }).length) {\n length = 1;\n _this8.$data.refdatastore.push(val[i]);\n }\n if (length == 0) {\n for (var j = 0; j < _this8.$data.refdatastore.length; j++) {\n if (_this8.$data.refdatastore[j].attr == val[i].attr) {\n _this8.$data.refdatastore[j].value = val[i].value;\n }\n }\n }\n }\n }\n }\n if (action_type == 'open_select_userdlg') {\n uni.showModal({\n title: \"閿欒6.2\",\n content: \"open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛乗",\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒6\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒6.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_DataObjRunCustomEvent: function scan_DataObjRunCustomEvent(info, data_attr) {\n var _this9 = this;\n var $this = this;\n var enviroment = {\n 'function': '3000',\n // 鍔熻兘鐐圭紪鍙穃n cls_id: 'MBOX',\n //this.$data.param.Sub_Cls.ID, // 鍔熻兘鐐逛粠鏁版嵁绫绘爣璇哱n 'button': 'top',\n // top/bottom\n button_name: '鏂板',\n master: {\n cls_id: 'MBOX',\n //this.$data.param.Sub_Cls.ID, // button=bottom鏃�master鐨刢ls_id\n attr: info.mast_attr //涓绘暟鎹被灞炴�\n //obj_id: '' // button=bottom鏃�master鐨刼bj_id\n }\n };\n\n enviroment.edit_dlg = {\n type: 'small',\n //灏忕獥鍙n class_id: 'MBOX' //this.$data.param.Sub_Cls.ID,//褰撳墠鏁版嵁绫籭d\n };\n\n if (data_attr) {\n enviroment.edit_dlg.form_control = {\n //鎵�睘鐨勮〃鍗曟帶浠禱n name: data_attr.Name,\n //瀛楁灞炴�\n text: data_attr.DispName,\n //鏄剧ず鏂囨湰\n group_name: data_attr.GroupName,\n //灞炴�缁刓n type: data_attr.Type,\n //瀛楁绫诲瀷\n readonly: data_attr.ReadOnly,\n //鏄惁鍙\n button_img: data_attr.button_img,\n //寮曠敤鎸夐挳鐨勫浘鏍嘰n button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip\n };\n }\n\n var dataInfo = {\n edtype: info.edtype,\n eventid: info.eventid,\n projectid: info.projectid.replace('{', '').replace('}', ''),\n rclsid: info.rclsid,\n robjid: info.robjid,\n userlogin: info.userlogin,\n clsid: info.clsid,\n objid: info.objid,\n attr: JSON.stringify(info.attr),\n extinfo: JSON.stringify(enviroment),\n inputparameter: JSON.stringify(info.inputParamter),\n global_attr: JSON.stringify(this.$data.global_attr)\n };\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2292\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2294\");\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var actionlist = data.action;\n if (actionlist) {\n __f__(\"log\", actionlist, \" at pages/modal/ms_classAttr.vue:2300\");\n for (var ii = 0; ii < actionlist.length; ii++) {\n var action = actionlist[ii];\n if (action.action_type == 'set_dlg_attr') {\n var result = action.value;\n for (var i = 0; i < result.length; i++) {\n if (result[i].choice_list) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {\n var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n if (attr[j].Name == result[i].attr) {\n if (attr[j].Type == '瀛楀吀' || attr[j].Type == '瀛楀吀-瀛楃涓�) {\n var dictItemList = [];\n for (var d in result[i].choice_list) {\n var val = result[i].choice_list[d];\n dictItemList.push({\n \"CN_S_NAME\": val,\n \"Name\": val,\n \"label\": val,\n \"value\": val\n });\n }\n attr[j].dictitem = dictItemList;\n // attr[j].dictitem = result[i].choice_list;\n }\n }\n }\n }\n }\n }\n\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {\n var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n __f__(\"log\", attr[j].Name + '==' + result[i].attr, \" at pages/modal/ms_classAttr.vue:2330\");\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n } else if (action.action_type == 'set_global_attr') {\n $this.$actiontr = action.value || [];\n } else if (action.action_type == 'add_subcls_panel') {\n //涓讳粠鏁版嵁绫绘壂鐮佹煡璇㈡暟鎹甛n var result = action.value;\n var list_1 = JSON.parse(JSON.stringify(_this9.$data.subClassAttrList));\n var scanCodeVal = $this.$data.scanCodeVal;\n if (info.inputParamter[0].attr == \"mast_input_3037\")\n //鍒ゆ柇鏄富鏁版嵁绫绘壂鐮佹煡璇㈡暟鎹甛n scanCodeVal = \"mast_input_3037-\" + ii;\n $this.$data.subPanelList.push({\n scanCodeVal: scanCodeVal,\n subClassAttr: list_1\n });\n for (var i = 0; i < result.length; i++) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n if ($this.$data.subPanelList[s].scanCodeVal == scanCodeVal) {\n if (result[i].attr == \"S_ID\") $this.$data.subPanelList[s].ObjID = result[i].value;\n var _subClassAttr = $this.$data.subPanelList[s].subClassAttr;\n for (var c = 0; c < _subClassAttr.length; c++) {\n var attr = _subClassAttr[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n // console.log(attr[j].Name+'=='+result[i].attr);\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n\n // $this.$data.subPanelList[s].subClassAttr=list_1;\n }\n }\n\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n }\n }\n if (data.result) {\n var _list_ = JSON.parse(JSON.stringify(_this9.$data.subClassAttrList));\n var scanCodeVal = $this.$data.scanCodeVal;\n if (info.inputParamter[0].attr == \"mast_input_3037\") scanCodeVal = \"mast_input_3037-\" + ii;\n $this.$data.subPanelList.push({\n scanCodeVal: scanCodeVal,\n subClassAttr: _list_\n });\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n for (var s = 0; s < $this.$data.subPanelList.length; s++) {\n if ($this.$data.subPanelList[s].scanCodeVal == scanCodeVal) {\n if (result[i].attr == \"S_ID\") $this.$data.subPanelList[s].ObjID = result[i].value;\n var _subClassAttr = $this.$data.subPanelList[s].subClassAttr;\n for (var c = 0; c < _subClassAttr.length; c++) {\n var attr = _subClassAttr[c].Attr;\n for (var j = 0; j < attr.length; j++) {\n // console.log(attr[j].Name+'=='+result[i].attr);\n if (attr[j].Name == result[i].attr) {\n attr[j].Value = result[i].value;\n }\n }\n }\n }\n }\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n }\n } else {\n uni.showModal({\n title: \"閿欒7\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.showModal({\n title: \"閿欒7.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n },\n scan_OKDataObjRunCustomEvent: function scan_OKDataObjRunCustomEvent(eventID) {\n uni.showLoading({\n title: \"鍔犺浇涓�..\"\n });\n var $this = this;\n var req = [];\n var attrlist = $this.$data.classAttrList;\n for (var i = 0; i < attrlist.length; i++) {\n var attr = attrlist[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n req.push({\n attr: ar.Name,\n value: valStr\n });\n } else req.push({\n attr: ar.Name,\n value: ar.Value\n });\n } else req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n var objects = [];\n var subPanelList = $this.$data.subPanelList;\n for (var s = 0; s < subPanelList.length; s++) {\n var sub_req = [];\n for (var i = 0; i < subPanelList[s].subClassAttr.length; i++) {\n var attr = subPanelList[s].subClassAttr[i].Attr;\n for (var j = 0; j < attr.length; j++) {\n var ar = attr[j];\n if (ar.Value == '璇烽�鎷� || ar.Value == '鈥斺�璇烽�鎷┾�鈥�) ar.Value = '';\n if (ar.Type == '寮曠敤瀵硅薄(澶氫釜)') if (ar.Value == '璇�) ar.Value = '';\n if (ar.Type == '寮曠敤浜哄憳' || ar.Type == '寮曠敤椤圭洰') sub_req.push({\n attr: ar.Name,\n value: ar.ValID ? ar.ValID : ''\n });else if (ar.Type == '甯冨皵鍊�) sub_req.push({\n attr: ar.Name,\n value: ar.Value ? '1' : '0'\n });else if (ar.Type == '瀛楀吀' || ar.Type == '瀛楀吀-瀛楃涓�) {\n if (ar.select == true) {\n //鍒ゆ柇涓嬫媺鏄惁澶氶�\n var valStr = \"\";\n for (var v in ar.Value) {\n if (valStr) valStr += \";\";\n valStr += ar.Value[v];\n }\n sub_req.push({\n attr: ar.Name,\n value: valStr\n });\n } else sub_req.push({\n attr: ar.Name,\n value: ar.Value\n });\n } else sub_req.push({\n attr: ar.Name,\n value: ar.Value ? ar.Value : ''\n });\n if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {\n // if(ar.notEmpty=='1'){\n uni.hideLoading();\n // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:\"success\",duration:3000});\n uni.showModal({\n title: \"鎻愮ず\",\n content: ar.DispName + '涓嶈兘涓虹┖锛�,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n return;\n }\n }\n }\n objects.push({\n obj_id: subPanelList[s].scanCodeVal,\n obj_attrs: sub_req\n });\n }\n var dataJson = {\n master_cls: {\n cls_name: 'MBOX',\n //$this.$data.param.Master_Cls.Name,\n obj_attrs: req\n },\n input_3037: $this.$data.scanCodeVal,\n //鎵爜鍐呭\n op_type: $this.$data.param.OperationType,\n //浣滀笟绫诲瀷瀹氫箟\n sub_cls: {\n cls_name: 'MBOX',\n //$this.$data.param.Sub_Cls.Name,\n objects: objects\n }\n };\n __f__(\"log\", JSON.stringify(dataJson), \" at pages/modal/ms_classAttr.vue:2552\");\n var dataInfo = {\n edtype: \"7\",\n eventid: eventID,\n projectid: '',\n rclsid: '',\n robjid: '',\n userlogin: '',\n clsid: 'MBOX',\n objid: '',\n attr: JSON.stringify([]),\n extinfo: JSON.stringify([]),\n global_attr: JSON.stringify($this.$data.global_attr),\n dataJson: JSON.stringify(dataJson)\n };\n __f__(\"log\", JSON.stringify(dataInfo), \" at pages/modal/ms_classAttr.vue:2558\");\n __f__(\"log\", dataInfo, \" at pages/modal/ms_classAttr.vue:2559\");\n this.$store.dispatch('DataObjRunCustomEventInfo', dataInfo).then(function (success) {\n __f__(\"log\", success, \" at pages/modal/ms_classAttr.vue:2561\");\n uni.hideLoading();\n if (success.code == '00000') {\n var data = JSON.parse(success.data);\n var result = data.result;\n for (var i = 0; i < result.length; i++) {\n // self.class_attr_ele.find('.attr_field[data-field=\"' + result[i].attr + '\"]').val(result[i].value).data('val', result[i].value);\n var length = 0;\n if (!$this.$data.refdatastore.filter(function (s) {\n return result[i].attr == s.attr;\n }).length) {\n length = 1;\n $this.$data.refdatastore.push(result[i]);\n }\n if (length == 0) {\n for (var j = 0; j < $this.$data.refdatastore.length; j++) {\n if ($this.$data.refdatastore[j].attr == result[i].attr) {\n $this.$data.refdatastore[j].value = result[i].value;\n }\n }\n }\n }\n if (eventID != $this.$data.param.After_OK_Event.ID) $this.scan_OKDataObjRunCustomEvent($this.$data.param.After_OK_Event.ID);else {\n //鍒锋柊\n uni.redirectTo({\n url: '../modal/ms_classAttr?param=' + JSON.stringify($this.$data.param) + \"&titlename=\" + $this.$data.title\n });\n }\n } else {\n uni.showModal({\n title: \"閿欒8\",\n content: success.msg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n }\n }).catch(function (ex) {\n // console.log(ex);\n uni.hideLoading();\n uni.showModal({\n title: \"閿欒8.1\",\n content: ex.errMsg,\n showCancel: false,\n confirmText: \"鍙栨秷\"\n });\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9kYWwvbXNfY2xhc3NBdHRyLnZ1ZSJdLCJuYW1lcyI6WyJjb21wb25lbnRzIiwicGlja2VyQWRkcmVzcyIsImRhdGEiLCJ0aXRsZSIsInBhcmFtIiwiY2xhc3NBdHRyTGlzdCIsImNsYXNzR3JpZFN0eWxlIiwiZWRpdF9pbml0YWxfZXZlbnQiLCJlZGl0X29rX2V2ZW50IiwiZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCIsImVkaXRfY29tcG9zZV9jbHNfaWQiLCJnbG9iYWxfYXR0ciIsInJlZmRhdGFzdG9yZSIsInNjYW5Db2RlVmFsIiwic3ViQ2xhc3NBdHRyTGlzdCIsInN1YlBhbmVsTGlzdCIsInN1YkNsYXNzR3JpZFN0eWxlIiwib25Mb2FkIiwib3B0aW9ucyIsInVuaSIsInNldE5hdmlnYXRpb25CYXJUaXRsZSIsInRpdGxlbmFtZSIsIkpTT04iLCJwYXJzZSIsIiRkYXRhIiwiQWRkX0J0bk5hbWUiLCJNYXN0ZXJfQ2xzIiwiVmlld19TdHlsZSIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwiY29uZmlybVRleHQiLCJOYW1lIiwiZGF0YUluZm8iLCJjbGFzc19pZCIsIklEIiwiJHRoaXMiLCIkc3RvcmUiLCJzdGF0ZSIsInRoaXNhcmVhRnVuY0lEIiwiZ2V0dGVycyIsImdldGNsYXNzQXR0ckxpc3QiLCJjbGFzc0dyaWRTdHlsZUluZm8iLCJkaXNwYXRjaCIsInRoZW4iLCJzdWNjZXNzIiwiY29kZSIsIm1zZyIsImNhdGNoIiwiZXgiLCJlcnJNc2ciLCJzdWJkYXRhSW5mbyIsIlN1Yl9DbHMiLCJ0aGlzYXJlYUZ1bmNTdWJJRCIsImdldFN1YkNsYXNzQXR0ckxpc3QiLCJtZXRob2RzIiwiY2FuY2VsIiwiZSIsIm5hdmlnYXRlQmFjayIsImRlbHRhIiwicGFuZWxfZGVsIiwiaW5kZXgiLCJPYmpJRCIsInNwbGljZSIsImNsc0lkIiwib2JqSWQiLCJzaG93TG9hZGluZyIsImhpZGVMb2FkaW5nIiwiY2xzaWQiLCJzdHlsZU5hbWUiLCJjbHNUeXBlIiwiZ3JpZHN0eWxlSW5mbyIsIm5hbWUiLCJ0eXBlIiwidGhpc0VkaXROYW1lIiwiZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvIiwiY2xhc3NfYXR0cl9pbml0IiwiU3R5bGVEZWYiLCJnZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8iLCJzdWJDbGFzc19hdHRyX2luaXQiLCJvbnRhcCIsImdldEFwcCIsIm9uU2NhbiIsInJlc3VsdCIsImlzVmFsIiwidGFyZ2V0IiwiZGF0YXNldCIsIkF0dHIiLCJWYWx1ZSIsImRlY29kZWRhdGEiLCJoaWRlS2V5Ym9hcmQiLCJldmVudGlkIiwiU2Nhbl9Db2RlIiwiSW5wdXRfQ2hhbmdlX0V2ZW50IiwicmVxIiwiYXR0cmxpc3QiLCJpIiwibGVuZ3RoIiwiYXR0ciIsImoiLCJhciIsIlR5cGUiLCJwdXNoIiwidmFsdWUiLCJWYWxJRCIsImluZm8iLCJlZHR5cGUiLCJwcm9qZWN0aWQiLCJyY2xzaWQiLCJyb2JqaWQiLCJ1c2VybG9naW4iLCJvYmppZCIsIm1hc3RfYXR0ciIsImlucHV0UGFyYW10ZXIiLCJzY2FuX0RhdGFPYmpSdW5DdXN0b21FdmVudCIsInNjYW5fb250YXAiLCJpc2ZsYWciLCJtYXN0X3JlcSIsImNsYXNzYXR0cmxpc3QiLCJzY2FuX29uZXZlbnQiLCJvbmFycm93Iiwib3BlbiIsIk9wZW4iLCJvbmRhdGVUaW1lIiwib25jaGFuZ2UiLCJkaWN0aXRlbSIsImRhdGFfYXR0ciIsImFjdGlvbiIsInZhbCIsIkRhdGFPYmpSdW5DdXN0b21FdmVudCIsIm9uY2hhbmdlMiIsIml0ZW0iLCJkZWx2YWx1ZSIsImlpbmRleCIsImRpbmRleCIsImQiLCJ2IiwiaXRlbXZhbHVlIiwib25ldmVudCIsIm9uY2hlY2siLCJpc2NoZWNrZWQiLCJpc2NoZWNrIiwiaW5wdXRWYWxMaXN0SXNEZWwiLCJpbnB1dFZhbExpc3QiLCJhZGRyZXNzY2hhbmdlIiwiam9pbiIsImNsYXNzQXR0cl9leHRCdXR0b24iLCJiZWZvcmVfY2xpY2tfYnV0dG9uIiwiYnV0dG9uX2NhbGxiYWNrIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50X1JldHVybiIsInNjYW5fY2xhc3NBdHRyX2V4dEJ1dHRvbiIsIkJlZm9yZV9TZWxlY3RfRXZlbnQiLCJBZnRlcl9TZWxlY3RfRXZlbnQiLCJjbGFzc0F0dHJfQWRkUGVyIiwibmF2aWdhdGVUbyIsInVybCIsInN0cmluZ2lmeSIsImV2ZW50cyIsIkFkZFBlciIsIkxvZ2luIiwidHJpbSIsImNsYXNzQXR0cl9BZGRSZWYiLCJjbGFzc0F0dHJfQWRkUHJqIiwic2F2YSIsIkJlZm9yZV9PS19FdmVudCIsInNjYW5fT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJBZnRlcl9PS19FdmVudCIsImFkZCIsInNlbGVjdCIsInZhbFN0ciIsIk5vdEVtcHR5Iiwibm90ZW1wdHkiLCJEaXNwTmFtZSIsImVudmlyb21lbnQiLCJjbHNfaWQiLCJidXR0b25fbmFtZSIsIm1hc3RlciIsImRhdGFfb2JqX2lkIiwibWFzdGVyY2xzaWQiLCJ1cGZpbGUiLCJwb3N0X2RhdGEiLCJjb21wb3NlIiwiZXh0aW5mbyIsIm5vdF90cmlnZ2VyX3N5c19ldmVudCIsIkFjdGlvbiIsInJldCIsInJlc3VsdF90eXBlIiwic2hvd1RvYXN0IiwiaWNvbiIsImR1cmF0aW9uIiwicmVkaXJlY3RUbyIsInNob3dfc3R5bGUiLCJuZXdhdHRybGlzdCIsImF0dHJncm91cF9uYW1lIiwiYXR0cnMiLCJzIiwiY2xzYXR0ciIsImwiLCJjYSIsImVkaXQiLCJleHRfYnV0dG9uIiwiYnV0dG9uX2ltZyIsImJ1dHRvbl90b29sdGlwIiwiaGlkZGVuIiwidW5kZWZpbmVkIiwiZGljdGl0ZW1saXN0IiwibGFiZWwiLCJDTl9TX05BTUUiLCJDTl9DX0lTX0RFRkFVTFQiLCJub3dEYXRlIiwiRGF0ZSIsImRhdGUiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJtb250aCIsImdldE1vbnRoIiwiZGF5IiwiZ2V0RGF0ZSIsInJlbENsc0xpc3QiLCJhdHRyX3Jlc2NscyIsIlJlbENscyIsInNwbGl0IiwiaWkiLCJyZXNjbHMiLCJpZCIsIlJlbENsc0xpc3QiLCJCa0NvbG9yIiwiSGFzQWNlIiwiSW1nRm9udFN0eWxlIiwiT3JkZXIiLCJjb250cm9sX3N0eWxlIiwidGl0bGVfcF93ZGl0aCIsIkZvbnQiLCJCa19Db2xvciIsIlRleHRfQ29sb3IiLCJldmVudGxpc3QiLCJldmVudCIsImV2ZW50X2lkIiwic2NyaXBfaWQiLCJjb21wb3NlX2Nsc19pZCIsImluaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJzY2FuX2luaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQiLCJFZGl0U3R5bGUiLCJWaWV3U3R5bGUiLCJOb3RUcmlnZ2VyU3lzRXZlbnQiLCJpbnB1dHBhcmFtZXRlciIsImFjdGlvbmxpc3QiLCJhY3Rpb25fdHlwZSIsImEiLCJkaWN0SXRlbUxpc3QiLCJjaG9pY2VfbGlzdCIsImZpbHRlciIsImVkaXRfZGxnIiwiZm9ybV9jb250cm9sIiwidGV4dCIsImdyb3VwX25hbWUiLCJHcm91cE5hbWUiLCJyZWFkb25seSIsIlJlYWRPbmx5IiwicmVwbGFjZSIsImMiLCJPS0RhdGFPYmpSdW5DdXN0b21FdmVudCIsImFjdGlvbnMiLCJkaWFsb2ciLCJzaG93Iiwic3R5bGUiLCJjYWxsYmFja19ldmVudGlkIiwicHJpUmVsIiwic2VsZWN0X3JhbmdlIiwicGFyYW1fIiwiJGFjdGlvbnRyIiwibGlzdF8xIiwic3ViQ2xhc3NBdHRyIiwiX3N1YkNsYXNzQXR0ciIsImV2ZW50SUQiLCJvYmplY3RzIiwic3ViX3JlcSIsIm9ial9pZCIsIm9ial9hdHRycyIsImRhdGFKc29uIiwibWFzdGVyX2NscyIsImNsc19uYW1lIiwiaW5wdXRfMzAzNyIsIm9wX3R5cGUiLCJPcGVyYXRpb25UeXBlIiwic3ViX2NscyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBZ2xCQztBQWhsQkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QkFBNEIsQ0FBQ2pJLEtBQUssQ0FBQ1osS0FBSyxDQUFDcEIsS0FBSyxDQUFDa0ssY0FBYyxDQUFDbkksRUFBRSxDQUFDLENBQUMsS0FDeEU7WUFDSDtZQUNBaEIsR0FBRyxDQUFDMkssVUFBVSxDQUFDO2NBQ2RuQyxHQUFHLEVBQUMsOEJBQThCLEdBQUNySSxJQUFJLENBQUNzSSxTQUFTLENBQUN4SCxLQUFLLENBQUNaLEtBQUssQ0FBQ3BCLEtBQUssQ0FBQyxHQUFDLGFBQWEsR0FBQ2dDLEtBQUssQ0FBQ1osS0FBSyxDQUFDckI7WUFDaEcsQ0FBQyxDQUFDO1VBQ0g7UUFDRSxDQUFDLE1BQUk7VUFDSmdCLEdBQUcsQ0FBQ1MsU0FBUyxDQUFDO1lBQUN6QixLQUFLLEVBQUMsS0FBSztZQUFDMEIsT0FBTyxFQUFDZ0IsT0FBTyxDQUFDRSxHQUFHO1lBQUNqQixVQUFVLEVBQUMsS0FBSztZQUFDQyxXQUFXLEVBQUM7VUFBSSxDQUFDLENBQUM7UUFDbkY7TUFDRCxDQUFDLENBQUMsQ0FBQ2lCLEtBQUssQ0FBQyxVQUFBQyxFQUFFLEVBQUU7UUFDWjtRQUNIOUIsR0FBRyxDQUFDZ0QsV0FBVyxFQUFFO1FBQ2RoRCxHQUFHLENBQUNTLFNBQVMsQ0FBQztVQUFDekIsS0FBSyxFQUFDLE9BQU87VUFBQzBCLE9BQU8sRUFBQ29CLEVBQUUsQ0FBQ0MsTUFBTTtVQUFDcEIsVUFBVSxFQUFDLEtBQUs7VUFBQ0MsV0FBVyxFQUFDO1FBQUksQ0FBQyxDQUFDO01BQ25GLENBQUMsQ0FBQztJQUNIO0VBR0o7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cblx0aW1wb3J0IHBpY2tlckFkZHJlc3MgZnJvbSAnLi4vLi4vanMvcGlja2VyQWRkcmVzcy9waWNrZXJBZGRyZXNzLnZ1ZSdcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHBpY2tlckFkZHJlc3NcbiAgICAgICAgfSxcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6ICfmlrDlop4nLFxuXHRcdFx0XHRwYXJhbTp7fSxcblx0XHRcdFx0Y2xhc3NBdHRyTGlzdDpbXSxcblx0XHRcdFx0Y2xhc3NHcmlkU3R5bGU6W10sXG5cdFx0XHRcdGVkaXRfaW5pdGFsX2V2ZW50OlwiXCIsICAvL+W8ueeql+WIneWni+WMluS6i+S7tklEXG5cdFx0XHRcdGVkaXRfb2tfZXZlbnQ6XCJcIiwgICAgICAvL+W8ueeql+eCueWHu09LIOinpuWPkeS6i+S7tklEXG5cdFx0XHRcdGVkaXRfc2VsZWN0X2NvbXBvc2VfZXZlbnQ6XCJcIiwgIC8v6YCJ5oup57uE5oiQ5a+56LGh5pe26LCD55SoXG5cdFx0XHRcdGVkaXRfY29tcG9zZV9jbHNfaWQ6XCJcIixcblx0XHRcdFx0Z2xvYmFsX2F0dHI6W10sXG5cdFx0XHRcdHJlZmRhdGFzdG9yZTogW10sXHQgICAvL+W8leeUqOaVsOaNruWtmOWCqOWMui8vIHthdHRyOidHX1BSSl8nICsgYmluZGF0dHIgKyAnX0lEJywgdmFsdWU6aW5mby5pZH1cblx0XHRcdFx0c2NhbkNvZGVWYWw6XCJcIixcblx0XHRcdFx0c3ViQ2xhc3NBdHRyTGlzdDpbXSxcblx0XHRcdFx0c3ViUGFuZWxMaXN0OltdLFxuXHRcdFx0XHRzdWJDbGFzc0dyaWRTdHlsZTpbXSxcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uTG9hZChvcHRpb25zKSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZyhvcHRpb25zKTtcblx0XHRcdHVuaS5zZXROYXZpZ2F0aW9uQmFyVGl0bGUoeyB0aXRsZTogb3B0aW9ucy50aXRsZW5hbWV9KTsgLy/orr7nva7pobbpg6jmoIfpopggXG5cdFx0XHR2YXIgcGFyYW0gPSBKU09OLnBhcnNlKG9wdGlvbnMucGFyYW0pO1xuXHRcdFx0dGhpcy4kZGF0YS50aXRsZSA9IHBhcmFtLkFkZF9CdG5OYW1lP3BhcmFtLkFkZF9CdG5OYW1lOm9wdGlvbnMudGl0bGVuYW1lOyAvL+iuvue9ruaMiemSruaWh+Wtl1xuXHRcdFx0Y29uc29sZS5sb2cocGFyYW0pO1xuXHRcdFx0aWYoIXBhcmFtLk1hc3Rlcl9DbHMuVmlld19TdHlsZSl7XG5cdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcIuivpeWKn+iDveeCueacqumFjee9rueVjOmdoueql+WPo++8jOivt+mHjeaWsOmFjee9ru+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZighcGFyYW0uTWFzdGVyX0Nscy5WaWV3X1N0eWxlLk5hbWUpe1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLor6Xlip/og73ngrnmnKrphY3nva7nqpflj6PmoLflvI/vvIzor7fph43mlrDphY3nva7vvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy4kZGF0YS5wYXJhbSA9IHBhcmFtO1xuXHRcdFx0Ly8gdmFyIGVkaXRfZGxnID0ge1xuXHRcdFx0Ly8gICAgIE1vZGVsOiBwYXJhbS5FZGl0RGxnTW9kZSxcblx0XHRcdC8vICAgICBOYW1lOiBwYXJhbS5NYXN0ZXJfQ2xzLlZpZXdfU3R5bGUuTmFtZVxuXHRcdFx0Ly8gfVxuXHRcdFx0Ly/kuLvmlbDmja7nsbvojrflj5Zcblx0XHRcdHZhciBkYXRhSW5mbyA9IHtcblx0XHRcdFx0Y2xhc3NfaWQ6IHBhcmFtLk1hc3Rlcl9DbHMuSURcblx0XHRcdH07XG5cdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0JHRoaXMuJHN0b3JlLnN0YXRlLnRoaXNhcmVhRnVuY0lEID0gcGFyYW0uTWFzdGVyX0Nscy5JRDtcblx0XHRcdC8vIGNvbnNvbGUubG9nKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldGNsYXNzQXR0ckxpc3QpO1xuXHRcdFx0aWYoJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdCl7XG5cdFx0XHQgXHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NBdHRyTGlzdC5kYXRhO1xuXHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8ocGFyYW0uTWFzdGVyX0Nscy5JRCwkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLlZpZXdfU3R5bGUuTmFtZSwnTWFzdCcpO1xuXHRcdFx0fWVsc2V7XG5cdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NBdHRyTGlzdCcsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QgPSBzdWNjZXNzLmRhdGE7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzR3JpZFN0eWxlSW5mbyhwYXJhbS5NYXN0ZXJfQ2xzLklELCR0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuVmlld19TdHlsZS5OYW1lLCdNYXN0Jyk7XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzFcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68xLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC8v5LuO5pWw5o2u57G76I635Y+WXG5cdFx0XHR2YXIgc3ViZGF0YUluZm8gPSB7XG5cdFx0XHRcdGNsYXNzX2lkOiBwYXJhbS5TdWJfQ2xzLklEXG5cdFx0XHR9O1xuXHRcdFx0JHRoaXMuJHN0b3JlLnN0YXRlLnRoaXNhcmVhRnVuY1N1YklEID0gcGFyYW0uU3ViX0Nscy5JRDtcblx0XHRcdGlmKCR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFN1YkNsYXNzQXR0ckxpc3Qpe1xuXHRcdFx0IFx0JHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdCA9ICR0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFN1YkNsYXNzQXR0ckxpc3QuZGF0YTtcblx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzR3JpZFN0eWxlSW5mbyhwYXJhbS5TdWJfQ2xzLklELCR0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuVmlld19TdHlsZS5OYW1lLCdTdWInKTtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHQkdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3N1YkNsYXNzQXR0ckxpc3QnLHN1YmRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0ID0gc3VjY2Vzcy5kYXRhO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQkdGhpcy5jbGFzc0dyaWRTdHlsZUluZm8ocGFyYW0uU3ViX0Nscy5JRCwkdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLlZpZXdfU3R5bGUuTmFtZSwnU3ViJyk7XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzFfMVwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzFfMS4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0bWV0aG9kczoge1xuXHRcdFx0Y2FuY2VsKGUpe1xuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcblx0XHRcdFx0XHRkZWx0YToxIC8v6L+U5Zue5bGC5pWw77yMMuWImeS4iuS4iumhtVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRwYW5lbF9kZWwoaW5kZXgpe1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5zdWJQYW5lbExpc3RbaW5kZXhdLnNjYW5Db2RlVmFsID09IHRoaXMuJGRhdGEuc2NhbkNvZGVWYWwpIHtcblx0XHRcdFx0XHR0aGlzLiRkYXRhLnNjYW5Db2RlVmFsPScnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKCF0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtpbmRleF0uT2JqSUQpXG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5zdWJQYW5lbExpc3Quc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0ZWxzZXtcblx0XHRcdFx0XHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0XHRcdFx0XHRjbHNJZDp0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsXG5cdFx0XHRcdFx0XHRvYmpJZDp0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtpbmRleF0uT2JqSURcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHRcdFx0XHQvLyByZXR1cm47XG5cdFx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHsgdGl0bGU6XCLliqDovb3kuK0uLi5cIiB9KTtcblx0XHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGVsT2JqJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Quc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5Yig6Zmk5oiQ5Yqf77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor685XCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekujkuMVwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgY2xhc3NHcmlkU3R5bGVJbmZvKGNsc2lkLHN0eWxlTmFtZSxjbHNUeXBlKXtcblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIGdyaWRzdHlsZUluZm8gPSB7XG5cdFx0XHRcdFx0Y2xhc3NfaWQ6IGNsc2lkLFxuXHRcdFx0XHRcdG5hbWU6IHN0eWxlTmFtZSxcblx0XHRcdFx0XHR0eXBlOiAnMidcblx0XHRcdFx0fTtcblx0XHRcdFx0JHRoaXMuJHN0b3JlLnN0YXRlLnRoaXNFZGl0TmFtZSA9IHN0eWxlTmFtZTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0Y2xhc3NHcmlkU3R5bGVJbmZvKTtcblx0XHRcdFx0Ly/ojrflj5bkuLvmlbDmja7nsbvnlYzpnaLmoLflvI9cblx0XHRcdFx0aWYoY2xzVHlwZT09J01hc3QnKXtcblx0XHRcdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8pe1xuXHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUgPSAkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRjbGFzc0dyaWRTdHlsZUluZm8uZGF0YTtcblx0XHRcdFx0XHRcdCR0aGlzLmNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhncmlkc3R5bGVJbmZvKTtcblx0XHRcdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnY2xhc3NHcmlkU3R5bGVJbmZvJyxncmlkc3R5bGVJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzLmRhdGEuU3R5bGVEZWYgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5TdHlsZURlZik7XG5cdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUgPSBzdWNjZXNzLmRhdGE7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0JHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuM1wiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYoY2xzVHlwZT09J1N1YicpeyAgLy/ojrflj5bku47mlbDmja7nsbvnlYzpnaLmoLflvI9cblx0XHRcdFx0XHRpZigkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8pe1xuXHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUgPSAkdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8uZGF0YTtcblx0XHRcdFx0XHRcdCR0aGlzLnN1YkNsYXNzX2F0dHJfaW5pdCgpO1xuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhncmlkc3R5bGVJbmZvKTtcblx0XHRcdFx0XHRcdCR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnc3ViQ2xhc3NHcmlkU3R5bGVJbmZvJyxncmlkc3R5bGVJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0XHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdFx0XHRzdWNjZXNzLmRhdGEuU3R5bGVEZWYgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YS5TdHlsZURlZik7XG5cdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUgPSBzdWNjZXNzLmRhdGE7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0JHRoaXMuc3ViQ2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMS4yXCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzEuM1wiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0b250YXAoZSl7IC8v5omr56CB5Yqf6IO9XG5cdFx0XHRcdC8vY29uc29sZS5sb2coZS50YXJnZXQpXG5cdFx0XHRcdGdldEFwcCgpLm9uU2NhbigocmVzdWx0KT0+e1xuXHRcdFx0XHRcdC8vY29uc29sZS5sb2cocmVzdWx0LmRlY29kZWRhdGEpO1xuXHRcdFx0XHRcdHZhciBpc1ZhbCA9dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlO1xuXHRcdFx0XHRcdC8v5Li75pWw5o2u57G75omr56CB5p+l6K+i5pWw5o2uXG5cdFx0XHRcdFx0aWYgKGlzVmFsIT1yZXN1bHQuZGVjb2RlZGF0YSkge1xuXHRcdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXJlc3VsdC5kZWNvZGVkYXRhO1xuXHRcdFx0XHRcdFx0dW5pLmhpZGVLZXlib2FyZCgpO1xuXHRcdFx0XHRcdFx0Ly/lrZDmlbDmja7nsbvmiavnoIHljLrkuovku7bohJrmnKxcblx0XHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5wYXJhbS5TY2FuX0NvZGUuSW5wdXRfQ2hhbmdlX0V2ZW50LklEO1xuXHRcdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7ICAvL+S4u+aVsOaNruexu+WxnuaAp1xuXHRcdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWUgP2FyLlZhbHVlIDonJ30pO1xuXHRcdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0ICAgICAgICB2YXIgaW5mbyA9IHtcblx0XHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCI3XCIsLy9cIjBcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAnTUJPWCcsLy90aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdFx0XHRcdG1hc3RfYXR0cjogW10sXG5cdFx0XHRcdFx0XHRcdFx0aW5wdXRQYXJhbXRlcjpbeyBhdHRyOiAnbWFzdF9pbnB1dF8zMDM3JywgdmFsdWU6IHJlc3VsdC5kZWNvZGVkYXRhIH1dXG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdCAgICAgICAgdGhpcy5zY2FuX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBcIlwiKTtcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRzY2FuX29udGFwKGUpeyAvL+aJq+eggeWMuuaJq+eggeWKn+iDvVxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKGUudGFyZ2V0KVxuXHRcdFx0XHRnZXRBcHAoKS5vblNjYW4oKHJlc3VsdCk9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXN1bHQuZGVjb2RlZGF0YSk7XG5cdFx0XHRcdFx0dmFyIGlzZmxhZz10cnVlO1xuXHRcdFx0XHRcdGZvcih2YXIgaSBpbiB0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdCl7XG5cdFx0XHRcdFx0XHRpZih0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtpXS5zY2FuQ29kZVZhbCA9PSByZXN1bHQuZGVjb2RlZGF0YSkgXG5cdFx0XHRcdFx0XHRcdGlzZmxhZz1mYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly/lrZDmlbDmja7nsbvmiavnoIHmn6Xor6LmlbDmja5cblx0XHRcdFx0XHRpZiAoaXNmbGFnKSB7XG5cdFx0XHRcdFx0XHR1bmkuaGlkZUtleWJvYXJkKCk7XG5cdFx0XHRcdFx0XHR0aGlzLiRkYXRhLnNjYW5Db2RlVmFsPXJlc3VsdC5kZWNvZGVkYXRhO1xuXHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLnBhcmFtLlNjYW5fQ29kZS5JbnB1dF9DaGFuZ2VfRXZlbnQuSUQ7XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdCAgICAgICAgdmFyIG1hc3RfcmVxPVtdO1xuXHRcdFx0XHRcdFx0XHQvL+S4u+aVsOaNruexu+WxnuaAp1xuXHRcdFx0XHRcdFx0XHR2YXIgY2xhc3NhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDsgIFxuXHRcdFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGNsYXNzYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0ciA9IGNsYXNzYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1hc3RfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1hc3RfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtYXN0X3JlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdFx0ICAgICAgICAvL+WtkOaVsOaNruexu+WxnuaAp1xuXHRcdFx0XHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7IFxuXHRcdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgZWR0eXBlOiAnNycsLy9cIjBcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAnTUJPWCcsLy90aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdFx0XHRcdG1hc3RfYXR0cjogbWFzdF9yZXEsXG5cdFx0XHRcdFx0XHRcdFx0aW5wdXRQYXJhbXRlcjpbeyBhdHRyOiAnaW5wdXRfMzAzNycsIHZhbHVlOiB0aGlzLiRkYXRhLnNjYW5Db2RlVmFsIH1dXG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdCAgICAgICAgdGhpcy5zY2FuX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBcIlwiKTtcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRzY2FuX29uZXZlbnQoZSl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGUudGFyZ2V0KTtcblx0XHRcdFx0dmFyIGlzZmxhZz10cnVlO1xuXHRcdFx0XHRmb3IodmFyIGkgaW4gdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Qpe1xuXHRcdFx0XHRcdGlmKHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W2ldLnNjYW5Db2RlVmFsID09IGUudGFyZ2V0LnZhbHVlKSBcblx0XHRcdFx0XHRcdGlzZmxhZz1mYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvL+WtkOaVsOaNruexu+aJq+eggeafpeivouaVsOaNrlxuXHRcdFx0XHRpZiAoaXNmbGFnKSB7XG5cdFx0XHRcdFx0dW5pLmhpZGVLZXlib2FyZCgpO1xuXHRcdFx0XHRcdHRoaXMuJGRhdGEuc2NhbkNvZGVWYWw9ZS50YXJnZXQudmFsdWU7XG5cdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLnBhcmFtLlNjYW5fQ29kZS5JbnB1dF9DaGFuZ2VfRXZlbnQuSUQ7XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICB2YXIgbWFzdF9yZXE9W107XG5cdFx0XHRcdFx0XHQvL+S4u+aVsOaNruexu+WxnuaAp1xuXHRcdFx0XHRcdFx0dmFyIGNsYXNzYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7ICBcblx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY2xhc3NhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHR2YXIgYXR0ciA9IGNsYXNzYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0XHRcdFx0XHRcdG1hc3RfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0bWFzdF9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0bWFzdF9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0ICAgICAgICB2YXIgcmVxPVtdO1xuXHRcdFx0XHQgICAgICAgIC8v5a2Q5pWw5o2u57G75bGe5oCnXG5cdFx0XHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykgeyBcblx0XHRcdFx0ICAgICAgICBcdHZhciBhdHRyID0gYXR0cmxpc3RbaV0uQXR0cjtcblx0XHRcdFx0ICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2Vcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6ICc3JywvL1wiMFwiLFxuXHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogJ01CT1gnLC8vdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLklELFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdFx0XHRtYXN0X2F0dHI6IG1hc3RfcmVxLFxuXHRcdFx0XHRcdFx0XHRpbnB1dFBhcmFtdGVyOlt7IGF0dHI6ICdpbnB1dF8zMDM3JywgdmFsdWU6IHRoaXMuJGRhdGEuc2NhbkNvZGVWYWwgfV1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0ICAgICAgICB0aGlzLnNjYW5fRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIFwiXCIpO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0b25hcnJvdyhpbmRleCxvcGVuKXtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coaW5kZXgrJy0tJytvcGVuKTtcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5PcGVuPW9wZW49PXRydWU/ZmFsc2U6dHJ1ZTtcblx0XHRcdH0sXG5cdFx0XHRvbmRhdGVUaW1lKGUpIHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhlLnRhcmdldClcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUudGFyZ2V0LnZhbHVlO1xuXHRcdFx0fSxcblx0XHRcdG9uY2hhbmdlKGUpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgdmFsdWU9dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmRpY3RpdGVtW2UudGFyZ2V0LnZhbHVlXTtcblx0XHRcdFx0dmFyIGRhdGFfYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXTtcblx0XHRcdFx0Y29uc29sZS5sb2coZGF0YV9hdHRyKTtcblx0XHRcdFx0aWYgKHZhbHVlLk5hbWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPXZhbHVlLk5hbWU7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlKTtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsXG5cdFx0XHRcdCAgICAgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdG9uY2hhbmdlMihpdGVtLHZhbHVlLGRlbHZhbHVlKSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGl0ZW0pO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyh2YWx1ZSk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRlbHZhbHVlKTtcblx0XHRcdFx0aWYoaXRlbS5sZW5ndGg9PTApeyAvL+S4uuepuuaXtu+8jOa4heepuuWxnuaAp3ZhbHVlXG5cdFx0XHRcdFx0dmFyIGluZGV4ICxpaW5kZXgsZGluZGV4PTA7XG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCl7XG5cdFx0XHRcdFx0XHRmb3IodmFyIGogaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHIpe1xuXHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdGlmKGRlbHZhbHVlWzBdLk5hbWUgPT0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW1bZF0uTmFtZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaV0uQXR0cltqXS5WYWx1ZT1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRmb3IodmFyIHYgaW4gaXRlbSl7XG5cdFx0XHRcdFx0dmFyIGluZGV4ICxpaW5kZXgsZGluZGV4PTA7XG5cdFx0XHRcdFx0Zm9yKHZhciBpIGluIHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdCl7XG5cdFx0XHRcdFx0XHRmb3IodmFyIGogaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHIpe1xuXHRcdFx0XHRcdFx0XHRmb3IodmFyIGQgaW4gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2ldLkF0dHJbal0uZGljdGl0ZW0pe1xuXHRcdFx0XHRcdFx0XHRcdGlmKGl0ZW1bdl0uTmFtZSA9PSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaV0uQXR0cltqXS5kaWN0aXRlbVtkXS5OYW1lKXtcblx0XHRcdFx0XHRcdFx0XHRcdGluZGV4PWk7aWluZGV4PWo7ZGluZGV4PWQ7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHZhciBpdGVtdmFsdWUgPSBpdGVtW3ZdO1xuXHRcdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRcdGlmIChpdGVtdmFsdWUuTmFtZSAhPSBkYXRhX2F0dHIuVmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLlZhbHVlPXZhbHVlO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2luZGV4XS5BdHRyW2lpbmRleF0uVmFsdWUpO1xuXHRcdFx0XHRcdFx0dmFyIGV2ZW50aWQgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0XHQgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdDtcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHQgICAgICAgIFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSflrZflhbgnIHx8IGFyLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGl0ZW12YWx1ZS5OYW1lfSk7XG5cdFx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHQgICAgICAgIFx0fVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHQgICAgICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0XG5cdFx0XHR9LFxuXHRcdFx0b25ldmVudChlKXtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgZGF0YV9hdHRyID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhX2F0dHIpO1xuXHRcdFx0XHRpZiAoZS50YXJnZXQudmFsdWUgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUudGFyZ2V0LnZhbHVlO1xuXHRcdFx0XHRcdC8vIHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLmFjdGlvbjtcblx0XHRcdFx0XHQvL+WtkOaVsOaNruexu+aJq+eggeWMuuS6i+S7tuiEmuacrFxuXHRcdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5wYXJhbS5TY2FuX0NvZGUuSW5wdXRfQ2hhbmdlX0V2ZW50LklEO1xuXHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdCAgICAgICAgLy8gc2VsZi5ldmVudF9ub19zdWIgPSAxO1xuXHRcdFx0XHQgICAgICAgIHZhciByZXE9W107XG5cdFx0XHRcdCAgICAgICAgdmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0OyAgLy/kuLvmlbDmja7nsbvlsZ7mgKdcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgXHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICBcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIFx0XHRpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHQgICAgICAgIFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlPycxJzonMCd9KTtcblx0XHRcdFx0ICAgICAgICBcdFx0ZWxzZVxuXHRcdFx0XHQgICAgICAgIFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0ICAgICAgICBcdH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGV2ZW50aWQ6IGV2ZW50aWQsXG5cdFx0XHRcdCAgICAgICAgICAgIGVkdHlwZTogXCI3XCIsLy9cIjBcIixcblx0XHRcdFx0ICAgICAgICAgICAgcHJvamVjdGlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgdXNlcmxvZ2luOiAnJyxcblx0XHRcdFx0ICAgICAgICAgICAgY2xzaWQ6ICdNQk9YJywvL3RoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCxcblx0XHRcdFx0ICAgICAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdCAgICAgICAgICAgIGF0dHI6IHJlcSxcblx0XHRcdFx0ICAgICAgICBcdG1hc3RfYXR0cjogW10sXG5cdFx0XHRcdCAgICAgICAgXHRpbnB1dFBhcmFtdGVyOlt7IGF0dHI6ICdtYXN0X2lucHV0XzMwMzcnLCB2YWx1ZTogZS50YXJnZXQudmFsdWUgfV1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgXG5cdFx0XHRcdCAgICAgICAgdGhpcy5zY2FuX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvLCBcIlwiKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRvbmNoZWNrKGUpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR2YXIgaXNjaGVja2VkID0gZS50YXJnZXQuZGF0YXNldC5pc2NoZWNrP2ZhbHNlOnRydWU7XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV07XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGFfYXR0cik7XG5cdFx0XHRcdGlmIChpc2NoZWNrZWQgIT0gZGF0YV9hdHRyLlZhbHVlKSB7XG5cdFx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWlzY2hlY2tlZDtcblx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5hY3Rpb247XG5cdFx0XHRcdFx0aWYgKGV2ZW50aWQpIHtcblx0XHRcdFx0ICAgICAgICAvLyBzZWxmLmV2ZW50X25vX3N1YiA9IDE7XG5cdFx0XHRcdCAgICAgICAgdmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHQgICAgICAgIFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgXHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdCAgICAgICAgXHRcdGlmKGFyLlR5cGU9PSflvJXnlKjlr7nosaEo5aSa5LiqKScpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBcdFx0aWYoYXIuVHlwZT09J+W8leeUqOS6uuWRmCcgfHwgYXIuVHlwZT09J+W8leeUqOmhueebricpXG5cdFx0XHRcdCAgICAgICAgXHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWw6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgXHRcdGVsc2UgaWYoYXIuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbDogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdCAgICAgICAgXHR9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICByb2JqaWQ6ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHQgICAgICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHRpbnB1dFZhbExpc3RJc0RlbChpbmRleCl7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGluZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmlucHV0VmFsTGlzdC5zcGxpY2UoaW5kZXgsIDEpOyAvL+WIoOmZpHRhYlBhZ2Vqc29u55qE5YaF5a65XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuaW5wdXRWYWxMaXN0KTtcblx0XHRcdH0sXG5cdFx0XHRhZGRyZXNzY2hhbmdlKGUpIHtcblx0XHRcdCAgICAvLyBjb25zb2xlLmxvZyhlLnRhcmdldCk7XG5cdFx0XHQgICAgY29uc29sZS5sb2coZS5kYXRhLmpvaW4oJzsnKSlcblx0XHRcdFx0dGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2UudGFyZ2V0LmRhdGFzZXRbJ2luZGV4J11dLkF0dHJbZS50YXJnZXQuZGF0YXNldFsnaWluZGV4J11dLlZhbHVlPWUuZGF0YS5qb2luKCc7Jyk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX2V4dEJ1dHRvbihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR2YXIgYmVmb3JlX2NsaWNrX2J1dHRvbiA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XS5iZWZvcmVfY2xpY2tfYnV0dG9uO1xuXHRcdFx0XHR2YXIgYnV0dG9uX2NhbGxiYWNrID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtpbmRleF0uQXR0cltpaW5kZXhdLmJ1dHRvbl9jYWxsYmFjaztcblx0XHRcdFx0aWYoIWJlZm9yZV9jbGlja19idXR0b24pe1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDpcImJlZm9yZV9jbGlja19idXR0b24tZXZlbnRfaWTkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoIWJ1dHRvbl9jYWxsYmFjayl7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50OlwiYnV0dG9uX2NhbGxiYWNrLWV2ZW50X2lk5Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XTtcblx0XHRcdFx0dGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuKGJlZm9yZV9jbGlja19idXR0b24sIGRhdGFfYXR0ciwgYnV0dG9uX2NhbGxiYWNrLCBpbmRleCxpaW5kZXgpO1xuXHRcdFx0fSxcblx0XHRcdHNjYW5fY2xhc3NBdHRyX2V4dEJ1dHRvbihlKXsgIC8vLS0tLS0tLS0t5pyq5a6M5oiQLS0tLS0tLS0tLS1cblx0XHRcdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRcdFx0dmFyIEJlZm9yZV9TZWxlY3RfRXZlbnQgPSAkdGhpcy4kZGF0YS5wYXJhbS5TY2FuX0NvZGUuQmVmb3JlX1NlbGVjdF9FdmVudC5JRDtcblx0XHRcdFx0dmFyIEFmdGVyX1NlbGVjdF9FdmVudCA9ICR0aGlzLiRkYXRhLnBhcmFtLlNjYW5fQ29kZS5BZnRlcl9TZWxlY3RfRXZlbnQuSUQ7XG5cdFx0XHRcdGlmKCFCZWZvcmVfU2VsZWN0X0V2ZW50KXtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLpgInmi6nmjInpkq7liY3kuovku7bkuLrnqbrvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoIUFmdGVyX1NlbGVjdF9FdmVudCl7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5paw5aKe5oyJ6ZKu5ZCO5LqL5Lu25Li656m677yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIHZhciBkYXRhX2F0dHIgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbaW5kZXhdLkF0dHJbaWluZGV4XTtcblx0XHRcdFx0dGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnRfUmV0dXJuKEJlZm9yZV9TZWxlY3RfRXZlbnQsICcnLCBBZnRlcl9TZWxlY3RfRXZlbnQsICcnLCAnJyk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFBlcihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgcGFyYW09e2luZGV4OmluZGV4LGlpbmRleDppaW5kZXh9O1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOicuLi9zZWxwc24vaW5kZXg/bXVsaXQ9ZmFsc2UmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWx1ZT1kYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLkxvZ2luKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICBldmVudGlkID0gZXZlbnRpZC50cmltKCk7XG5cdFx0XHRcdFx0XHRcdCAgICBpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiNFwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46IGRhdGFbMF0uTG9naW4sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogW10sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgZGF0YV9hdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdO1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICR0aGlzLkRhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFJlZihlKXtcblx0XHRcdFx0Y29uc29sZS5sb2coZS50YXJnZXQpO1xuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmraTlip/og73ov5jmnKrlrp7njrDvvIFcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0Ly8gdmFyIHZhbHVlPXRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtlLnRhcmdldC5kYXRhc2V0WydpbmRleCddXS5BdHRyW2UudGFyZ2V0LmRhdGFzZXRbJ2lpbmRleCddXS5SZWxDbHNbZS50YXJnZXQudmFsdWVdO1xuXHRcdFx0XHQvLyB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbZS50YXJnZXQuZGF0YXNldFsnaW5kZXgnXV0uQXR0cltlLnRhcmdldC5kYXRhc2V0WydpaW5kZXgnXV0uVmFsdWU9dmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0Y2xhc3NBdHRyX0FkZFByaihpbmRleCxpaW5kZXgpe1xuXHRcdFx0XHR2YXIgcGFyYW09e2luZGV4OmluZGV4LGlpbmRleDppaW5kZXh9O1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsOicuLi9zZWxQcmovaW5kZXg/cmVsYXRpb249LTEmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbSksXG5cdFx0XHRcdFx0ZXZlbnRzOntcblx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHBhcmFtKTtcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YSk7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWx1ZT1kYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5WYWxJRD1kYXRhWzBdLklEKyc7JytkYXRhWzBdLk5hbWU7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR2YXIgZXZlbnRpZCA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XS5hY3Rpb247XG5cdFx0XHRcdFx0XHRcdGlmIChldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdCAgICBldmVudGlkID0gZXZlbnRpZC50cmltKCk7XG5cdFx0XHRcdFx0XHRcdCAgICBpZiAoZXZlbnRpZCkge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiMlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBwcm9qZWN0aWQ6IGRhdGFbMF0uSUQsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIHJjbHNpZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgcm9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICB1c2VybG9naW46IFwiXCIsXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHRcdFx0XHQgICAgICAgICAgICBvYmppZDogXCJcIixcblx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgYXR0cjogW10sXG5cdFx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCAgICAgICAgLy8gdmFyIGRhdGFfYXR0ciA9ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3RbcGFyYW0uaW5kZXhdLkF0dHJbcGFyYW0uaWluZGV4XTtcblx0XHRcdFx0XHRcdFx0ICAgICAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdHNhdmEoKXtcblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEucGFyYW0uQmVmb3JlX09LX0V2ZW50KSAvL+WIpOaWreWKn+iDveeCueWPguaVsOaYr+WQpuacieehruWumuWJjeiEmuacrFxuXHRcdFx0XHRcdHRoaXMuc2Nhbl9PS0RhdGFPYmpSdW5DdXN0b21FdmVudCh0aGlzLiRkYXRhLnBhcmFtLkJlZm9yZV9PS19FdmVudC5JRCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHR0aGlzLnNjYW5fT0tEYXRhT2JqUnVuQ3VzdG9tRXZlbnQodGhpcy4kZGF0YS5wYXJhbS5BZnRlcl9PS19FdmVudC5JRCk7XG5cdFx0XHR9LFxuXHRcdFx0YWRkKCl7XG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZyh7XG5cdFx0XHRcdFx0dGl0bGU6XCLliqDovb3kuK0uLi5cIlxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgbmFtZTogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBuYW1lOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHQgICAgICAgIGVsc2UgaWYoYXIuVHlwZT09J+Wtl+WFuCcgfHwgYXIuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0aWYoYXIuc2VsZWN0PT10cnVlKXsgLy/liKTmlq3kuIvmi4nmmK/lkKblpJrpgIlcblx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsU3RyID1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgdiBpbiBhci5WYWx1ZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZih2YWxTdHIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbFN0cis9XCI7XCI7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPWFyLlZhbHVlW3ZdO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiB2YWxTdHJ9KTtcblx0XHRcdFx0XHRcdFx0fWVsc2Vcblx0XHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZX0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IG5hbWU6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSA/YXIuVmFsdWUgOicnfSk7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYgKChhci5Ob3RFbXB0eSA9PSAnMScgfHwgYXIubm90ZW1wdHkgPT0gdHJ1ZSkgJiYgIWFyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHQvLyBpZihhci5ub3RFbXB0eT09JzEnKXtcblx0XHRcdFx0XHRcdFx0dW5pLmhpZGVMb2FkaW5nKCk7XG5cdFx0XHRcdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGVudmlyb21lbnQgPSB7XG5cdFx0XHRcdCAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgXG5cdFx0XHRcdCAgICAgfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHQgXG5cdFx0XHRcdHZhciBkYXRhSW5mbz17XG5cdFx0XHRcdCAgICBjbGFzc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCBkYXRhX29ial9pZDogJycsIG1hc3RlcmNsc2lkOiAnJyxcblx0XHRcdFx0ICAgIHJlcTogSlNPTi5zdHJpbmdpZnkocmVxKSwgdXBmaWxlOiBKU09OLnN0cmluZ2lmeShbXSksIHBvc3RfZGF0YTogSlNPTi5zdHJpbmdpZnkoe30pLFxuXHRcdFx0XHQgICAgY29tcG9zZTogSlNPTi5zdHJpbmdpZnkoW10pLCByZWZkYXRhc3RvcmU6IEpTT04uc3RyaW5naWZ5KFtdKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIFxuXHRcdFx0XHRcdG5vdF90cmlnZ2VyX3N5c19ldmVudDogJydcblx0XHRcdFx0fTtcblx0XHRcdFx0XG5cdFx0XHRcdC8vIHJldHVyblxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRjbGFzc2F0dHInLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0XHRcdFx0XHR2YXIgYWN0aW9uID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEuQWN0aW9uKTtcblx0XHRcdFx0XHRcdGlmKGFjdGlvbi5yZXQ9PScwJyl7XG5cdFx0XHRcdFx0XHRcdGlmKGFjdGlvbi5yZXN1bHRfdHlwZT09JzAnKXtcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHt0aXRsZTphY3Rpb24ucmVzdWx0LGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIFwie1wicmV0XCI6MCwgXCJyZXN1bHRfdHlwZVwiOjAsIFwicmVzdWx0XCI6XCLliJvlu7rmiJDlip8xMjMxMjMxMjNcIixcImluZm9cIjpcIlwifVwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvL+WIt+aWsFxuXHRcdFx0XHRcdFx0dW5pLnJlZGlyZWN0VG8oe1xuXHRcdFx0XHRcdFx0XHR1cmw6Jy4uL21vZGFsL21zX2NsYXNzQXR0cj9wYXJhbT0nK0pTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEucGFyYW0pK1wiJnRpdGxlbmFtZT1cIit0aGlzLiRkYXRhLnRpdGxlXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdC8vIHRoaXMuY2xhc3NfYXR0cl9pbml0KCk7XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivr1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KS5jYXRjaChleD0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGV4KTtcblx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6ZXguZXJyTXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRjbGFzc19hdHRyX2luaXQoKXtcblx0XHRcdFx0dmFyIGF0dHJsaXN0ID0gdGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5zaG93X3N0eWxlXG5cdFx0XHRcdHZhciBuZXdhdHRybGlzdCA9IFtdO1xuXHRcdFx0XHRpZiAodGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICB2YXIgb3BlbiA9IGF0dHJsaXN0W2ldLm9wZW47XG5cdFx0XHRcdCAgICAgICAgdmFyIG5hbWUgPSBhdHRybGlzdFtpXS5hdHRyZ3JvdXBfbmFtZTtcblx0XHRcdFx0ICAgICAgICB2YXIgYXR0cnMgPSBhdHRybGlzdFtpXS5hdHRycztcblx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgY2xzYXR0ciA9IHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtzXTtcblx0XHRcdFx0ICAgICAgICAgICAgaWYgKG5hbWUgPT0gY2xzYXR0ci5OYW1lKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IFtdO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgY2xzYXR0ci5BdHRyLmxlbmd0aDsgbCsrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYSA9IGNsc2F0dHIuQXR0cltsXTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzW2pdLmF0dHIgPT0gY2EuTmFtZSkge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYWN0aW9uID0gYXR0cnNbal0uYWN0aW9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZWRpdCA9IGF0dHJzW2pdLmVkaXQ7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5ub3RlbXB0eSA9IGF0dHJzW2pdLm5vdGVtcHR5O1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuZXh0X2J1dHRvbiA9IGF0dHJzW2pdLmV4dF9idXR0b247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5idXR0b25faW1nID0gYXR0cnNbal0uYnV0dG9uX2ltZztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl90b29sdGlwID0gYXR0cnNbal0uYnV0dG9uX3Rvb2x0aXA7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5iZWZvcmVfY2xpY2tfYnV0dG9uID0gYXR0cnNbal0uYmVmb3JlX2NsaWNrX2J1dHRvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9jYWxsYmFjayA9IGF0dHJzW2pdLmJ1dHRvbl9jYWxsYmFjaztcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmhpZGRlbiA9IGF0dHJzW2pdLmhpZGRlbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLnNlbGVjdCA9IGF0dHJzW2pdLnNlbGVjdD09dW5kZWZpbmVkP2ZhbHNlOmF0dHJzW2pdLnNlbGVjdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5kaWN0aXRlbSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5zZWxlY3QgPT0gdHJ1ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBbXTsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7Ly9jYS5kaWN0aXRlbVswXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdGl0ZW1saXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgZCA9IDA7IGQgPCBjYS5kaWN0aXRlbS5sZW5ndGg7IGQrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbVtkXS5sYWJlbD1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLnZhbHVlPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuZGljdGl0ZW1bZF0uQ05fQ19JU19ERUZBVUxUPT0nMScpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWU9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5pel5pyfJyB8fCBjYS5UeXBlPT0n5pe26Ze0Jyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGF0ZSA9IHt5ZWFyOiBub3dEYXRlLmdldEZ1bGxZZWFyKCksbW9udGg6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEsZGF5OiBub3dEYXRlLmdldERhdGUoKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gZGF0ZS55ZWFyICsgJy0nICsgKGRhdGUubW9udGggPj0gMTAgPyBkYXRlLm1vbnRoIDogJzAnICsgZGF0ZS5tb250aCkgKyAnLScgKyAoZGF0ZS5kYXkgPj0gMTAgPyBkYXRlLmRheSA6ICcwJyArIGRhdGUuZGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVsQ2xzTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyX3Jlc2NscyA9IGNhLlJlbENscy5zcGxpdCgnLCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBpaSBpbiBhdHRyX3Jlc2Nscyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZXNjbHMgPSBhdHRyX3Jlc2Nsc1tpaV0uc3BsaXQoJ3wnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVsQ2xzTGlzdC5wdXNoKHtpZDpyZXNjbHNbMF0sbmFtZTpyZXNjbHNbMV19KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlJlbENsc0xpc3QgPSByZWxDbHNMaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+3Jztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+ecgeW4guWMuicpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7fpgInmi6knO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ci5wdXNoKGNhKTtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICAgICAgICAgIG5ld2F0dHJsaXN0LnB1c2goe1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEJrQ29sb3I6IGNsc2F0dHIuQmtDb2xvcixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBIYXNBY2U6IGNsc2F0dHIuSGFzQWNlLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEltZ0ZvbnRTdHlsZTogY2xzYXR0ci5JbWdGb250U3R5bGUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgTmFtZTogY2xzYXR0ci5OYW1lLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9yZGVyOiBjbHNhdHRyLk9yZGVyLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIE9wZW46IG9wZW4sXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQXR0cjogYXR0cixcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRyb2xfc3R5bGU6dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5jb250cm9sX3N0eWxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGVfcF93ZGl0aDp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnRpdGxlX3Bfd2RpdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRGb250OnRoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuRm9udD90aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkZvbnQ6e30sXG5cdFx0XHRcdFx0XHRcdFx0XHRCa19Db2xvcjp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLkJrX0NvbG9yP3RoaXMuJGRhdGEuY2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuQmtfQ29sb3I6JyNGRkZGRkYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0VGV4dF9Db2xvcjp0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLlRleHRfQ29sb3I/dGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5UZXh0X0NvbG9yOicjMDAwMDAwJ1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgfSlcblx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0ICAgIGlmIChuZXdhdHRybGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICAgICAgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0ID0gbmV3YXR0cmxpc3Q7XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0dmFyIHJlcT1bXTtcblx0XHRcdFx0ICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmKSB7XG5cdFx0XHRcdCAgICAgICAgIGlmICh0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgICAgICAgICB2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgncmVhZG9ubHknLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgLy8gJGVsLmZpbmQoJy5hdHRyX2ZpZWxkJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcblx0XHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBhdHRybGlzdFtpXS5hdHRyc1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuYXR0ciwgdmFsdWU6IGFyLnZhbHVlP2FyLnZhbHVlOicnIH0pO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdH1cdFxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHZhciBldmVudGxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmV2ZW50O1xuXHRcdFx0XHRcdGlmIChldmVudGxpc3QpIHtcblx0XHRcdFx0XHQgICAgaWYgKGV2ZW50bGlzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50bGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2JlZm9yZV9vaycpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X29rX2V2ZW50ID0gZXZlbnRsaXN0W2ldO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdpbml0aWFsJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50ID0gZXZlbnRsaXN0W2ldO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRsaXN0W2ldLmV2ZW50X2lkID09ICdiZWZvcmVfc2VsZWN0X2NvbXBvc2UnKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9zZWxlY3RfY29tcG9zZV9ldmVudCA9IGV2ZW50bGlzdFtpXS5zY3JpcF9pZDtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X2NvbXBvc2VfY2xzX2lkID0gZXZlbnRsaXN0W2ldLmNvbXBvc2VfY2xzX2lkO1xuXHRcdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVxKTtcblx0XHRcdFx0XHRpZiAodGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudCkge1xuXHRcdFx0XHRcdCAgICB2YXIgZXZlbnRpZCA9IHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQuc2NyaXBfaWQ7XG5cdFx0XHRcdFx0ICAgIHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdCAgICAgICAgZXZlbnRpZDogZXZlbnRpZCxcblx0XHRcdFx0XHQgICAgICAgIGVkdHlwZTogXCIwXCIsXG5cdFx0XHRcdFx0ICAgICAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgcmNsc2lkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHJvYmppZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgY2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCxcblx0XHRcdFx0XHQgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdCAgICAgICAgYXR0cjogcmVxLFxuXHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0ICAgIHRoaXMuaW5pX0RhdGFPYmpSdW5DdXN0b21FdmVudChpbmZvKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0dyaWRTdHlsZSk7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0KTtcblx0XHRcdFx0XHRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekulwiLGNvbnRlbnQ6XCLmnKrmib7liLDlj6/mmL7npLrnmoTnmoTlsZ7mgKdcIixzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHN1YkNsYXNzX2F0dHJfaW5pdCgpe1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLnNob3dfc3R5bGVcblx0XHRcdFx0dmFyIG5ld2F0dHJsaXN0ID0gW107XG5cdFx0XHRcdGlmICh0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRybGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHQgICAgICAgIHZhciBvcGVuID0gYXR0cmxpc3RbaV0ub3Blbjtcblx0XHRcdFx0ICAgICAgICB2YXIgbmFtZSA9IGF0dHJsaXN0W2ldLmF0dHJncm91cF9uYW1lO1xuXHRcdFx0XHQgICAgICAgIHZhciBhdHRycyA9IGF0dHJsaXN0W2ldLmF0dHJzO1xuXHRcdFx0XHQgICAgICAgIGZvciAodmFyIHMgPSAwOyBzIDwgdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0Lmxlbmd0aDsgcysrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIHZhciBjbHNhdHRyID0gdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0W3NdO1xuXHRcdFx0XHQgICAgICAgICAgICBpZiAobmFtZSA9PSBjbHNhdHRyLk5hbWUpIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgIHZhciBhdHRyID0gW107XG5cdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBjbHNhdHRyLkF0dHIubGVuZ3RoOyBsKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhID0gY2xzYXR0ci5BdHRyW2xdO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnNbal0uYXR0ciA9PSBjYS5OYW1lKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5hY3Rpb24gPSBhdHRyc1tqXS5hY3Rpb247XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5lZGl0ID0gYXR0cnNbal0uZWRpdDtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLm5vdGVtcHR5ID0gYXR0cnNbal0ubm90ZW1wdHk7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYS5leHRfYnV0dG9uID0gYXR0cnNbal0uZXh0X2J1dHRvbjtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJ1dHRvbl9pbWcgPSBhdHRyc1tqXS5idXR0b25faW1nO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX3Rvb2x0aXAgPSBhdHRyc1tqXS5idXR0b25fdG9vbHRpcDtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhLmJlZm9yZV9jbGlja19idXR0b24gPSBhdHRyc1tqXS5iZWZvcmVfY2xpY2tfYnV0dG9uO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuYnV0dG9uX2NhbGxiYWNrID0gYXR0cnNbal0uYnV0dG9uX2NhbGxiYWNrO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2EuaGlkZGVuID0gYXR0cnNbal0uaGlkZGVuO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Euc2VsZWN0ID0gYXR0cnNbal0uc2VsZWN0PT11bmRlZmluZWQ/ZmFsc2U6YXR0cnNbal0uc2VsZWN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID1cIlwiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLmRpY3RpdGVtKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLnNlbGVjdCA9PSB0cnVlKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IFtdOy8vY2EuZGljdGl0ZW1bMF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSAn6K+36YCJ5oupJzsvL2NhLmRpY3RpdGVtWzBdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0aXRlbWxpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBkID0gMDsgZCA8IGNhLmRpY3RpdGVtLmxlbmd0aDsgZCsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtW2RdLmxhYmVsPWNhLmRpY3RpdGVtW2RdLkNOX1NfTkFNRTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuZGljdGl0ZW1bZF0udmFsdWU9Y2EuZGljdGl0ZW1bZF0uQ05fU19OQU1FO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5kaWN0aXRlbVtkXS5DTl9DX0lTX0RFRkFVTFQ9PScxJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZT1jYS5kaWN0aXRlbVtkXS5DTl9TX05BTUU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSfml6XmnJ8nIHx8IGNhLlR5cGU9PSfml7bpl7QnKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkYXRlID0ge3llYXI6IG5vd0RhdGUuZ2V0RnVsbFllYXIoKSxtb250aDogbm93RGF0ZS5nZXRNb250aCgpICsgMSxkYXk6IG5vd0RhdGUuZ2V0RGF0ZSgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuVmFsdWUgPSBkYXRlLnllYXIgKyAnLScgKyAoZGF0ZS5tb250aCA+PSAxMCA/IGRhdGUubW9udGggOiAnMCcgKyBkYXRlLm1vbnRoKSArICctJyArIChkYXRlLmRheSA+PSAxMCA/IGRhdGUuZGF5IDogJzAnICsgZGF0ZS5kYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZWxDbHNMaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHJfcmVzY2xzID0gY2EuUmVsQ2xzLnNwbGl0KCcsJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IodmFyIGlpIGluIGF0dHJfcmVzY2xzKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJlc2NscyA9IGF0dHJfcmVzY2xzW2lpXS5zcGxpdCgnfCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZWxDbHNMaXN0LnB1c2goe2lkOnJlc2Nsc1swXSxuYW1lOnJlc2Nsc1sxXX0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2EuUmVsQ2xzTGlzdCA9IHJlbENsc0xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9ICfor7cnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihjYS5UeXBlPT0n55yB5biC5Yy6Jylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLlZhbHVlID0gJ+ivt+mAieaLqSc7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoY2EuVHlwZT09J+W4g+WwlOWAvCcpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5WYWx1ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLnB1c2goY2EpO1xuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHQgICAgICAgICAgICAgICAgbmV3YXR0cmxpc3QucHVzaCh7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgQmtDb2xvcjogY2xzYXR0ci5Ca0NvbG9yLFxuXHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIEhhc0FjZTogY2xzYXR0ci5IYXNBY2UsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgSW1nRm9udFN0eWxlOiBjbHNhdHRyLkltZ0ZvbnRTdHlsZSxcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBOYW1lOiBjbHNhdHRyLk5hbWUsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3JkZXI6IGNsc2F0dHIuT3JkZXIsXG5cdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgT3Blbjogb3Blbixcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBBdHRyOiBhdHRyLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udHJvbF9zdHlsZTp0aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLmNvbnRyb2xfc3R5bGUsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZV9wX3dkaXRoOnRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYudGl0bGVfcF93ZGl0aCxcblx0XHRcdFx0XHRcdFx0XHRcdEZvbnQ6dGhpcy4kZGF0YS5zdWJDbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5Gb250P3RoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuRm9udDp7fSxcblx0XHRcdFx0XHRcdFx0XHRcdEJrX0NvbG9yOnRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuQmtfQ29sb3I/dGhpcy4kZGF0YS5zdWJDbGFzc0dyaWRTdHlsZS5TdHlsZURlZi5Ca19Db2xvcjonI0ZGRkZGRicsXG5cdFx0XHRcdFx0XHRcdFx0XHRUZXh0X0NvbG9yOnRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuVGV4dF9Db2xvcj90aGlzLiRkYXRhLnN1YkNsYXNzR3JpZFN0eWxlLlN0eWxlRGVmLlRleHRfQ29sb3I6JyMwMDAwMDAnXG5cdFx0XHRcdCAgICAgICAgICAgICAgICB9KVxuXHRcdFx0XHQgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHQgICAgaWYgKG5ld2F0dHJsaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgICAgICB0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3QgPSBuZXdhdHRybGlzdDtcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHQgICAgaWYgKHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYpIHtcblx0XHRcdFx0ICAgICAgICAgaWYgKHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuc2hvd19zdHlsZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIHZhciBhdHRybGlzdCA9IHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuc2hvd19zdHlsZVxuXHRcdFx0XHQgICAgICAgICAgICAvLyAkZWwuZmluZCgnLmF0dHJfZmllbGQnKS5wcm9wKCdyZWFkb25seScsIHRydWUpO1xuXHRcdFx0XHQgICAgICAgICAgICAvLyAkZWwuZmluZCgnLmF0dHJfZmllbGQnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuXHRcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLmF0dHJzXG5cdFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5hdHRyLCB2YWx1ZTogYXIudmFsdWU/YXIudmFsdWU6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdCAgICAgICAgICAgIH1cblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0fVx0XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dmFyIGV2ZW50bGlzdCA9IHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUuU3R5bGVEZWYuZXZlbnQ7XG5cdFx0XHRcdFx0aWYgKGV2ZW50bGlzdCkge1xuXHRcdFx0XHRcdCAgICBpZiAoZXZlbnRsaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKGV2ZW50bGlzdFtpXS5ldmVudF9pZCA9PSAnYmVmb3JlX29rJykge1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfb2tfZXZlbnQgPSBldmVudGxpc3RbaV07XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2luaXRpYWwnKSB7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEuZWRpdF9pbml0YWxfZXZlbnQgPSBldmVudGxpc3RbaV07XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudGxpc3RbaV0uZXZlbnRfaWQgPT0gJ2JlZm9yZV9zZWxlY3RfY29tcG9zZScpIHtcblx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5lZGl0X3NlbGVjdF9jb21wb3NlX2V2ZW50ID0gZXZlbnRsaXN0W2ldLnNjcmlwX2lkO1xuXHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLmVkaXRfY29tcG9zZV9jbHNfaWQgPSBldmVudGxpc3RbaV0uY29tcG9zZV9jbHNfaWQ7XG5cdFx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXEpO1xuXHRcdFx0XHRcdGlmICh0aGlzLiRkYXRhLmVkaXRfaW5pdGFsX2V2ZW50KSB7XG5cdFx0XHRcdFx0ICAgIHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5lZGl0X2luaXRhbF9ldmVudC5zY3JpcF9pZDtcblx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0ICAgICAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdFx0XHRcdCAgICAgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogJycsXG5cdFx0XHRcdFx0ICAgICAgICByY2xzaWQ6ICcnLFxuXHRcdFx0XHRcdCAgICAgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogJycsXG5cdFx0XHRcdFx0ICAgICAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLklELFxuXHRcdFx0XHRcdCAgICAgICAgb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0ICAgICAgICBhdHRyOiByZXEsXG5cdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHQgICAgdGhpcy5zY2FuX2luaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuc3ViQ2xhc3NHcmlkU3R5bGUpO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLmj5DnpLpcIixjb250ZW50Olwi5pyq5om+5Yiw5Y+v5pi+56S655qE55qE5bGe5oCnXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRpbmlfRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8pe1xuXHRcdFx0XHR2YXIgcGFyYW0gPSB7XG5cdFx0XHRcdCAgICBFZGl0U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5WaWV3X1N0eWxlLk5hbWUsXG5cdFx0XHRcdCAgICBWaWV3U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5WaWV3X1N0eWxlLk5hbWUsXG5cdFx0XHRcdCAgICBOb3RUcmlnZ2VyU3lzRXZlbnQ6IDAsXG5cdFx0XHRcdCAgICBlbnZpcm9tZW50OiB7XG5cdFx0XHRcdCAgICAgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdFx0XHQgICAgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0XHRcdCAgICAgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgICAgIG1hc3Rlcjoge1xuXHRcdFx0XHQgICAgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcblx0XHRcdFx0ICAgICAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgaW5wdXRwYXJhbWV0ZXIgPSAnJztcblx0XHRcdFx0dmFyIGdsb2JhbF9hdHRyID0gJyc7XG5cdFx0XHRcdFxuXHRcdFx0XHR2YXIgZGF0YUluZm8gPSB7XG4gICAgICAgICAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZCxcbiAgICAgICAgICAgICAgICAgICAgcmNsc2lkOiBpbmZvLnJjbHNpZCwgcm9iamlkOiBpbmZvLnJvYmppZCwgdXNlcmxvZ2luOiBpbmZvLnVzZXJsb2dpbiwgY2xzaWQ6IGluZm8uY2xzaWQsIG9iamlkOiBpbmZvLm9iamlkLFxuICAgICAgICAgICAgICAgICAgICBhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShwYXJhbSksIGlucHV0cGFyYW1ldGVyOiBpbnB1dHBhcmFtZXRlciwgZ2xvYmFsX2F0dHI6IGdsb2JhbF9hdHRyXG4gICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0XHRcdFx0XHR2YXIgYWN0aW9ubGlzdCA9IGRhdGEuYWN0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGFjdGlvbmxpc3QpIHtcblx0XHRcdFx0XHRcdCAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFjdGlvbmxpc3QubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbmxpc3Rbal1cblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbl90eXBlID0gYWN0aW9uLmFjdGlvbl90eXBlO1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgdmFsdWUgPSBhY3Rpb24udmFsdWU7XG5cdFx0XHRcdFx0XHQgICAgICAgIGlmIChhY3Rpb25fdHlwZSA9PSAnc2V0X2RsZ19hdHRyJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgdmFyIHZhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFsID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh2YWwpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYSA9IDA7IGEgPCB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBhKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGwgPSAwOyBsIDwgdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2FdLkF0dHIubGVuZ3RoOyBsKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGNhID0gdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2FdLkF0dHJbbF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh2YWxbaV0uYXR0ciAgPT0gY2EuTmFtZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSflrZflhbgnIHx8IGNhLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZGljdEl0ZW1MaXN0PVtdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciBkIGluIHZhbFtpXS5jaG9pY2VfbGlzdCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXZhbFtpXS5jaG9pY2VfbGlzdFtkXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGljdEl0ZW1MaXN0LnB1c2goe1wiQ05fU19OQU1FXCI6dmFsLFwiTmFtZVwiOnZhbCxcImxhYmVsXCI6dmFsLFwidmFsdWVcIjp2YWx9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYS5kaWN0aXRlbSA9IGRpY3RJdGVtTGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGF0dHJbal0uZGljdGl0ZW0gPSB2YWxbaV0uY2hvaWNlX2xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjYS52YWx1ZSA9IHZhbFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIHZhciBsZW5ndGggPSAwO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbFtpXS5hdHRyID09IHMuYXR0clxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHZhbFtpXSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gdmFsW2ldLmF0dHIpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0udmFsdWUgPSB2YWxbaV0udmFsdWU7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGlmIChhY3Rpb25fdHlwZSA9PSAnb3Blbl9zZWxlY3RfdXNlcmRsZycpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMi4yXCIsY29udGVudDpcIm9wZW5fc2VsZWN0X3VzZXJkbGfov5nkuKphY3Rpb25fdHlwZei/mOacquWkhOeQhu+8gVwiLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIumUmeivrzJcIixjb250ZW50OnN1Y2Nlc3MubXNnLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkuY2F0Y2goZXg9Pntcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhleCk7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor68yLjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdCAgICBEYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyxkYXRhX2F0dHIpe1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdCAgICBcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdCAgICBcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdCAgICBcdCAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS4u+aVsOaNruexu+agh+ivhlxuXHRcdCAgICBcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdCAgICBcdCAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0ICAgIFx0ICAgIG1hc3Rlcjoge1xuXHRcdCAgICBcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0ICAgIFx0ICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9O1xuXHRcdFx0XHRlbnZpcm9tZW50LmVkaXRfZGxnID0ge1xuXHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwvL+W9k+WJjeaVsOaNruexu2lkXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGRhdGFfYXR0cikge1xuXHRcdFx0XHQgICAgZW52aXJvbWVudC5lZGl0X2RsZy5mb3JtX2NvbnRyb2wgPSB7Ly/miYDlsZ7nmoTooajljZXmjqfku7Zcblx0XHRcdFx0ICAgICAgICBuYW1lOiBkYXRhX2F0dHIuTmFtZSwvL+Wtl+auteWxnuaAp1xuXHRcdFx0XHQgICAgICAgIHRleHQ6IGRhdGFfYXR0ci5EaXNwTmFtZSwvL+aYvuekuuaWh+acrFxuXHRcdFx0XHQgICAgICAgIGdyb3VwX25hbWU6IGRhdGFfYXR0ci5Hcm91cE5hbWUsLy/lsZ7mgKfnu4Rcblx0XHRcdFx0ICAgICAgICB0eXBlOiBkYXRhX2F0dHIuVHlwZSwvL+Wtl+auteexu+Wei1xuXHRcdFx0XHQgICAgICAgIHJlYWRvbmx5OiBkYXRhX2F0dHIuUmVhZE9ubHksLy/mmK/lkKblj6ror7tcblx0XHRcdFx0ICAgICAgICBidXR0b25faW1nOiBkYXRhX2F0dHIuYnV0dG9uX2ltZywvL+W8leeUqOaMiemSrueahOWbvuagh1xuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl90b29sdGlwOiBkYXRhX2F0dHIuYnV0dG9uX3Rvb2x0aXAvL+W8leeUqOaMiemSrueahHRvb2x0aXBcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQucmVwbGFjZSgneycsJycpLnJlcGxhY2UoJ30nLCcnKSxcblx0XHQgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0ICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGlucHV0cGFyYW1ldGVyOiAnJywgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdCAgICBcdFx0XHR2YXIgYWN0aW9ubGlzdCA9IGRhdGEuYWN0aW9uO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGFjdGlvbmxpc3QpO1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25saXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbmxpc3RbaV07XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnc2V0X2RsZ19hdHRyJykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYWN0aW9uLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHRbaV0uY2hvaWNlX2xpc3QpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyID0gJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uVHlwZT09J+Wtl+WFuCcgfHwgYXR0cltqXS5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRpY3RJdGVtTGlzdD1bXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiByZXN1bHRbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgdmFsID1yZXN1bHRbaV0uY2hvaWNlX2xpc3RbZF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpY3RJdGVtTGlzdC5wdXNoKHtcIkNOX1NfTkFNRVwiOnZhbCxcIk5hbWVcIjp2YWwsXCJsYWJlbFwiOnZhbCxcInZhbHVlXCI6dmFsfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhdHRyW2pdLmRpY3RpdGVtID0gZGljdEl0ZW1MaXN0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gYXR0cltqXS5kaWN0aXRlbSA9IHJlc3VsdFtpXS5jaG9pY2VfbGlzdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYXR0cltqXS5OYW1lKyc9PScrcmVzdWx0W2ldLmF0dHIpO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5hY3Rpb25baV0uYWN0aW9uX3R5cGUgPT0gJ3NldF9nbG9iYWxfYXR0cicpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLmdsb2JhbF9hdHRyID0gZGF0YS5hY3Rpb25baV0udmFsdWUgfHwgW107XG5cdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYgKGRhdGEucmVzdWx0KSB7XG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgcmVzdWx0ID0gZGF0YS5yZXN1bHQ7XG5cdFx0ICAgIFx0XHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdC5sZW5ndGg7IGMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgXHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICBcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgIFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmICgkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSByZXN1bHRbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vM1wiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vMy4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0XHRPS0RhdGFPYmpSdW5DdXN0b21FdmVudCgpe1xuXHRcdCAgICBcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0XHRcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgbWFzdGVyOiB7XG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgXG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH07XG5cdFx0ICAgIFx0XG5cdFx0XHRcdHZhciBldmVudGlkID0gdGhpcy4kZGF0YS5lZGl0X29rX2V2ZW50LnNjcmlwX2lkO1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7fpgInmi6knIHx8IGFyLlZhbHVlPT0n4oCU4oCU6K+36YCJ5oup4oCU4oCUJykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRpZihhci5WYWx1ZT09J+ivtycpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHQgICAgICAgIGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHQgICAgICAgIFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsSUQgP2FyLlZhbElEIDonJyB9KTtcblx0XHRcdFx0ICAgICAgICBlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHQgICAgXHRpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoID4gMCkge1xuXHRcdCAgICBcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaSsrKSB7XG5cdFx0ICAgIFx0ICAgICAgICBpZiAoIXJlcS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHQgICAgICAgICAgICByZXR1cm4gdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbaV0uYXR0ciA9PSBzLm5hbWVcblx0XHQgICAgXHQgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0ICAgICAgICAgICAgcmVxLnB1c2goeyAnYXR0cic6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIsICd2YWx1ZSc6IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLnZhbHVlIH0pO1xuXHRcdCAgICBcdCAgICAgICAgfVxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fVxuXHRcdCAgICBcdHZhciBpbmZvID0ge1xuXHRcdCAgICBcdCAgICBldmVudGlkOiBldmVudGlkLFxuXHRcdCAgICBcdCAgICBlZHR5cGU6IFwiMFwiLFxuXHRcdCAgICBcdCAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdCAgICBcdCAgICByY2xzaWQ6ICcnLFxuXHRcdCAgICBcdCAgICByb2JqaWQ6ICcnLFxuXHRcdCAgICBcdCAgICB1c2VybG9naW46ICcnLFxuXHRcdCAgICBcdCAgICBjbHNpZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdCAgICBcdCAgICBvYmppZDogXCJcIixcblx0XHQgICAgXHQgICAgYXR0cjogcmVxLFxuXHRcdCAgICBcdH1cblx0XHQgICAgXHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0ICAgICAgICAgICAgZWR0eXBlOiBpbmZvLmVkdHlwZSwgZXZlbnRpZDogaW5mby5ldmVudGlkLCBwcm9qZWN0aWQ6IGluZm8ucHJvamVjdGlkLHJjbHNpZDogaW5mby5yY2xzaWQsIFxuXHRcdFx0XHRcdHJvYmppZDogaW5mby5yb2JqaWQsIHVzZXJsb2dpbjogaW5mby51c2VybG9naW4sIGNsc2lkOiBpbmZvLmNsc2lkLCBvYmppZDogaW5mby5vYmppZCxcblx0XHRcdFx0XHRhdHRyOiBKU09OLnN0cmluZ2lmeShpbmZvLmF0dHIpLCBleHRpbmZvOiBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KSwgZ2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuZ2xvYmFsX2F0dHIpXG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0Y29uc29sZS5sb2coZGF0YUluZm8pO1xuXHRcdCAgICBcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0ICAgIFx0XHRjb25zb2xlLmxvZyhzdWNjZXNzKTtcblx0XHQgICAgXHRcdGlmIChzdWNjZXNzLmNvZGU9PScwMDAwMCcpIHtcblx0XHRcdFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1x0XHRcblx0XHQgICAgXHRcdFx0dmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xuXHRcdCAgICBcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHQgICAgLy8gc2VsZi5jbGFzc19hdHRyX2VsZS5maW5kKCcuYXR0cl9maWVsZFtkYXRhLWZpZWxkPVwiJyArIHJlc3VsdFtpXS5hdHRyICsgJ1wiXScpLnZhbChyZXN1bHRbaV0udmFsdWUpLmRhdGEoJ3ZhbCcsIHJlc3VsdFtpXS52YWx1ZSk7XG5cdFx0ICAgIFx0XHRcdCAgICB2YXIgbGVuZ3RoID0gMDtcblx0XHQgICAgXHRcdFx0ICAgIGlmICghdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUuZmlsdGVyKGZ1bmN0aW9uIChzKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgbGVuZ3RoID0gMTtcblx0XHQgICAgXHRcdFx0ICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGlmICh0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLmFkZCgpO1xuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNFwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNC4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIERhdGFPYmpSdW5DdXN0b21FdmVudF9SZXR1cm4oZXZlbnRpZCxkYXRhX2F0dHIsYnV0dG9uX2NhbGxiYWNrLGluZGV4LGlpbmRleCl7XG5cdFx0XHRcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdFx0XHQgICAgJ2Z1bmN0aW9uJzogJzMwMDAnLCAvLyDlip/og73ngrnnvJblj7dcblx0XHRcdFx0ICAgIGNsc19pZDogdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELCAgICAgLy8g5Yqf6IO954K55Li75pWw5o2u57G75qCH6K+GXG5cdFx0XHRcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdFx0XHQgICAgYnV0dG9uX25hbWU6ICfmlrDlop4nLFxuXHRcdFx0XHQgICAgbWFzdGVyOiB7XG5cdFx0XHRcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdCAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSB0aGlzLiRkYXRhLmNsYXNzQXR0ckxpc3Q7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR2YXIgYXR0ciA9IGF0dHJsaXN0W2ldLkF0dHI7XG5cdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHR2YXIgYXIgPSBhdHRyW2pdO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0ICAgICAgICBpZihhci5UeXBlPT0n5byV55So5Lq65ZGYJyB8fCBhci5UeXBlPT0n5byV55So6aG555uuJylcblx0XHRcdFx0ICAgICAgICBcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbElEID9hci5WYWxJRCA6JycgfSk7XG5cdFx0XHRcdCAgICAgICAgZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZSB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0ICAgICAgICBpZiAoIXJlcS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHRcdFx0ICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2ldLmF0dHIgPT0gcy5uYW1lXG5cdFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0XHRcdCAgICAgICAgICAgIHJlcS5wdXNoKHsgJ2F0dHInOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS5hdHRyLCAndmFsdWUnOiB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtpXS52YWx1ZSB9KTtcblx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdCAgICB9XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIGV4dGluZm8gPSBlbnZpcm9tZW50O1xuXHRcdFx0XHRleHRpbmZvLmVkaXRfZGxnID0ge1xuXHRcdFx0XHQgICAgdHlwZTogJ3NtYWxsJywvL+Wwj+eql+WPo1xuXHRcdFx0XHQgICAgY2xhc3NfaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwvL+W9k+WJjeaVsOaNruexu2lkXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGRhdGFfYXR0cikge1xuXHRcdFx0XHQgICAgZXh0aW5mby5lZGl0X2RsZy5mb3JtX2NvbnRyb2wgPSB7Ly/miYDlsZ7nmoTooajljZXmjqfku7Zcblx0XHRcdFx0ICAgICAgICBuYW1lOiBkYXRhX2F0dHIuTmFtZSwvL+Wtl+auteWxnuaAp1xuXHRcdFx0XHQgICAgICAgIHRleHQ6IGRhdGFfYXR0ci5EaXNwTmFtZSwvL+aYvuekuuaWh+acrFxuXHRcdFx0XHQgICAgICAgIGdyb3VwX25hbWU6IGRhdGFfYXR0ci5Hcm91cE5hbWUsLy/lsZ7mgKfnu4Rcblx0XHRcdFx0ICAgICAgICB0eXBlOiBkYXRhX2F0dHIuVHlwZSwvL+Wtl+auteexu+Wei1xuXHRcdFx0XHQgICAgICAgIHJlYWRvbmx5OiBkYXRhX2F0dHIuUmVhZE9ubHksLy/mmK/lkKblj6ror7tcblx0XHRcdFx0ICAgICAgICBidXR0b25faW1nOiBkYXRhX2F0dHIuYnV0dG9uX2ltZywvL+W8leeUqOaMiemSrueahOWbvuagh1xuXHRcdFx0XHQgICAgICAgIGJ1dHRvbl90b29sdGlwOiBkYXRhX2F0dHIuYnV0dG9uX3Rvb2x0aXAvL+W8leeUqOaMiemSrueahHRvb2x0aXBcblx0XHRcdFx0ICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgZGF0YUluZm8gPSB7XG5cdFx0XHRcdFx0ZWR0eXBlOiAgXCIwXCIsIGV2ZW50aWQ6IGV2ZW50aWQsIHByb2plY3RpZDogJycscmNsc2lkOiAnJywgcm9iamlkOiAnJywgdXNlcmxvZ2luOiAnJywgXG5cdFx0XHRcdFx0Y2xzaWQ6IHRoaXMuJGRhdGEucGFyYW0uTWFzdGVyX0Nscy5JRCwgb2JqaWQ6ICcnLGF0dHI6IEpTT04uc3RyaW5naWZ5KHJlcSksIFxuXHRcdFx0XHRcdGV4dGluZm86IEpTT04uc3RyaW5naWZ5KGV4dGluZm8pLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvJyxkYXRhSW5mbykudGhlbihzdWNjZXNzPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSBKU09OLnBhcnNlKHN1Y2Nlc3MuZGF0YSk7XG5cdFx0XHRcdFx0XHRpZiAoZGF0YSAhPSBcIlwiKSB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR2YXIgYWN0aW9ucyA9IGRhdGEuYWN0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coYWN0aW9ucyk7XG5cdFx0XHRcdFx0XHRpZiAoYWN0aW9ucykge1xuXHRcdFx0XHRcdFx0ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9uc1tpXTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIHZhbCA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdCAgICAgICAgdmFyIGVudmlyb21lbnQgPSBKU09OLnN0cmluZ2lmeShlbnZpcm9tZW50KTtcblx0XHRcdFx0XHRcdCAgICAgICAgXG5cdFx0XHRcdFx0XHQgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uX3R5cGUgPT0gJ29wZW5fcGFuZWwnKSB7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgIHZhciBkID0gZGlhbG9nKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgY29udGVudDogYWN0aW9uLmFjdGlvbl90eXBlICsgJ+atpGFjdGlvbuWwmuacquWkhOeQhu+8gSdcblx0XHRcdFx0XHRcdCAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9zZWxlY3RfdXNlcmRsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBzdHlsZSA9IHZhbC5zdHlsZTtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIHN0eWxlID09ICd1c2VyJyA/ICfpgInmi6nkurrlkZgnIDogc3R5bGUgPT0gJ2RlcGFydG1lbnQnID8gJ+mAieaLqemDqOmXqCcgOiBzdHlsZSA9PSAncm9sZScgPyAn6YCJ5oup6KeS6ImyJyA6ICcnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHBhcmFtPXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRidXR0b25fY2FsbGJhY2s6YnV0dG9uX2NhbGxiYWNrLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhX2F0dHI6ZGF0YV9hdHRyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdHVybDonLi4vc2VscHNuL2luZGV4P211bGl0PWZhbHNlJnBhcmFtPScrSlNPTi5zdHJpbmdpZnkocGFyYW0pLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRldmVudHM6e1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHQvLyBjb25zb2xlLmxvZyhwYXJhbSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0XHRjb25zb2xlLmxvZyhkYXRhKTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGV2ZW50aWQ6IGNhbGxiYWNrX2V2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZWR0eXBlOiBcIjBcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBwcm9qZWN0aWQ6ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIHJjbHNpZDogJycsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcm9iamlkOiAnJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICB1c2VybG9naW46ICcnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGNsc2lkOiAkdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLklELFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGF0dHI6IHBhcmFtLnJlcSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICBpbnB1dHBhcmFtZXRlcjogZGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sIHBhcmFtLmRhdGFfYXR0cik7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBcdFx0fVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgXHR9XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcdFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9kYXRhX3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFxuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9jb21tb25fZGxnJykge1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIGQgPSBkaWFsb2coe1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHRpdGxlOiAnPGkgY2xhc3M9XCJhY2UtaWNvbiBmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gJyArICfmj5DnpLonLFxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFjdGlvbi5hY3Rpb25fdHlwZSArICfmraRhY3Rpb27lsJrmnKrlpITnkIbvvIEnXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICB9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGQuc2hvdygpO1xuXHRcdFx0XHRcdFx0ICAgICAgICB9XG5cdFx0XHRcdFx0XHQgICAgICAgIGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnb3Blbl9wcm9qZWN0X3F1ZXJ5X2RsZycpIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIC8vY29uc29sZS5sb2coYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGlvbi52YWx1ZS5tdWxpdF9zZWxlY3QpO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgdmFyIHByaVJlbCA9ICctMSc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5YWo6YOo55u45YWzJylcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBwcmlSZWwgPSAnMCc7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHotJ/otKPnmoTpobnnm64nKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICcxJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWIm+W7uueahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzInO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5Y+C5LiO55qEJyB8fCBhY3Rpb24udmFsdWUuc2VsZWN0X3JhbmdlID09ICfmiJHlj4LliqDnmoQnKVxuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgICAgIHByaVJlbCA9ICczJztcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi52YWx1ZS5zZWxlY3RfcmFuZ2UgPT0gJ+aIkeWFs+azqOeahCcpXG5cdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgcHJpUmVsID0gJzQnO1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnZhbHVlLnNlbGVjdF9yYW5nZSA9PSAn5oiR5LiL5bGe55qE6aG555uuJylcblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJpUmVsID0gJzUnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YXIgcGFyYW1fPXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aW5kZXg6IGluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpaW5kZXg6aWluZGV4LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRidXR0b25fY2FsbGJhY2s6YnV0dG9uX2NhbGxiYWNrLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXE6cmVxXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDonLi4vc2VsUHJqL2luZGV4P3JlbGF0aW9uPScrcHJpUmVsKycmcGFyYW09JytKU09OLnN0cmluZ2lmeShwYXJhbV8pLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRldmVudHM6e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEFkZFBlcihkYXRhLHBhcmFtKXsgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0W3BhcmFtLmluZGV4XS5BdHRyW3BhcmFtLmlpbmRleF0uVmFsdWU9ZGF0YVswXS5OYW1lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuY2xhc3NBdHRyTGlzdFtwYXJhbS5pbmRleF0uQXR0cltwYXJhbS5paW5kZXhdLlZhbElEPWRhdGFbMF0uSUQrJzsnK2RhdGFbMF0uTmFtZTtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIFx0XHRcdHZhciBjYWxsYmFja19ldmVudGlkID0gcGFyYW0uYnV0dG9uX2NhbGxiYWNrLnRyaW0oKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjYWxsYmFja19ldmVudGlkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgdmFyIGluZm8gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGV2ZW50aWQ6IGNhbGxiYWNrX2V2ZW50aWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIGVkdHlwZTogXCIyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHByb2plY3RpZDogZGF0YVswXS5JRCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgcmNsc2lkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICByb2JqaWQ6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHVzZXJsb2dpbjogXCJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgY2xzaWQ6ICR0aGlzLiRkYXRhLnBhcmFtLk1hc3Rlcl9DbHMuSUQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIG9iamlkOiBcIlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBhdHRyOiBwYXJhbS5yZXEsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAkdGhpcy5EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdCAgICAgICAgfSBlbHNlIHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgIHZhciBkID0gZGlhbG9nKHtcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICB0aXRsZTogJzxpIGNsYXNzPVwiYWNlLWljb24gZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+ICcgKyAn5o+Q56S6Jyxcblx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICBjb250ZW50OiBhY3Rpb24uYWN0aW9uX3R5cGUgKyAn5q2kYWN0aW9u5bCa5pyq5aSE55CG77yBJ1xuXHRcdFx0XHRcdFx0ICAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQgICAgICAgICAgICBkLnNob3coKTtcblx0XHRcdFx0XHRcdCAgICAgICAgfVxuXHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHt0aXRsZTpcIuaPkOekujUuMlwiLGNvbnRlbnQ6ICfosIPnlKggYmVmb3JlX2NsaWNrX2J1dHRvbiDohJrmnKzov5Tlm57nqbrvvIxldmVudF9pZCcgKyBldmVudGlkLHNob3dDYW5jZWw6ZmFsc2UsY29uZmlybVRleHQ6XCLlj5bmtohcIn0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor681XCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLmNhdGNoKGV4PT57XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6NS4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0XHRcdH0pO1xuXHRcdCAgICB9LFxuXHRcdCAgICBzY2FuX2luaV9EYXRhT2JqUnVuQ3VzdG9tRXZlbnQoaW5mbyl7XG5cdFx0ICAgIFx0dmFyIHBhcmFtID0ge1xuXHRcdCAgICBcdCAgICBFZGl0U3R5bGU6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5WaWV3X1N0eWxlLk5hbWUsXG5cdFx0ICAgIFx0ICAgIFZpZXdTdHlsZTogdGhpcy4kZGF0YS5wYXJhbS5TdWJfQ2xzLlZpZXdfU3R5bGUuTmFtZSxcblx0XHQgICAgXHQgICAgTm90VHJpZ2dlclN5c0V2ZW50OiAwLFxuXHRcdCAgICBcdCAgICBlbnZpcm9tZW50OiB7XG5cdFx0ICAgIFx0ICAgICAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdCAgICBcdCAgICAgICAgY2xzX2lkOiB0aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsICAgICAvLyDlip/og73ngrnkuLvmlbDmja7nsbvmoIfor4Zcblx0XHQgICAgXHQgICAgICAgICdidXR0b24nOiAndG9wJywgICAvLyB0b3AvYm90dG9tXG5cdFx0ICAgIFx0ICAgICAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0ICAgIFx0ICAgICAgICBtYXN0ZXI6IHtcblx0XHQgICAgXHQgICAgICAgICAgICBjbHNfaWQ6IHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCwgLy8gYnV0dG9uPWJvdHRvbeaXtiBtYXN0ZXLnmoRjbHNfaWRcblx0XHQgICAgXHQgICAgICAgICAgICAvL29ial9pZDogJycgIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEb2JqX2lkXG5cdFx0ICAgIFx0ICAgICAgICB9XG5cdFx0ICAgIFx0ICAgIH1cblx0XHQgICAgXHR9XG5cdFx0ICAgIFx0dmFyIGlucHV0cGFyYW1ldGVyID0gJyc7XG5cdFx0ICAgIFx0dmFyIGdsb2JhbF9hdHRyID0gJyc7XG5cdFx0ICAgIFx0XG5cdFx0ICAgIFx0dmFyIGRhdGFJbmZvID0ge1xuXHRcdCAgICAgICAgICAgIGVkdHlwZTogaW5mby5lZHR5cGUsIGV2ZW50aWQ6IGluZm8uZXZlbnRpZCwgcHJvamVjdGlkOiBpbmZvLnByb2plY3RpZCxcblx0XHQgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0ICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkocGFyYW0pLCBpbnB1dHBhcmFtZXRlcjogaW5wdXRwYXJhbWV0ZXIsIGdsb2JhbF9hdHRyOiBnbG9iYWxfYXR0clxuXHRcdCAgICAgICAgfVxuXHRcdCAgICBcdGNvbnNvbGUubG9nKGRhdGFJbmZvKTtcblx0XHQgICAgXHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbycsZGF0YUluZm8pLnRoZW4oc3VjY2Vzcz0+e1xuXHRcdCAgICBcdFx0Y29uc29sZS5sb2coc3VjY2Vzcyk7XG5cdFx0ICAgIFx0XHRpZiAoc3VjY2Vzcy5jb2RlPT0nMDAwMDAnKSB7XG5cdFx0ICAgIFx0XHRcdHZhciBkYXRhID0gSlNPTi5wYXJzZShzdWNjZXNzLmRhdGEpO1xuXHRcdCAgICBcdFx0XHR2YXIgYWN0aW9ubGlzdCA9IGRhdGEuYWN0aW9uO1xuXHRcdCAgICBcdFx0XHRpZiAoYWN0aW9ubGlzdCkge1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhY3Rpb25saXN0Lmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIGFjdGlvbiA9IGFjdGlvbmxpc3Rbal1cblx0XHQgICAgXHRcdFx0ICAgICAgICB2YXIgYWN0aW9uX3R5cGUgPSBhY3Rpb24uYWN0aW9uX3R5cGU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgdmFyIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChhY3Rpb25fdHlwZSA9PSAnc2V0X2RsZ19hdHRyJykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBpZiAodmFsdWUpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICB2YWwgPSBKU09OLnBhcnNlKHZhbHVlKTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh2YWwpO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGEgPSAwOyBhIDwgdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYSsrKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGwgPSAwOyBsIDwgdGhpcy4kZGF0YS5zdWJDbGFzc0F0dHJMaXN0W2FdLkF0dHIubGVuZ3RoOyBsKyspIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgY2EgPSB0aGlzLiRkYXRhLnN1YkNsYXNzQXR0ckxpc3RbYV0uQXR0cltsXTtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodmFsW2ldLmF0dHIgID09IGNhLk5hbWUpIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGNhLlR5cGU9PSflrZflhbgnIHx8IGNhLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0SXRlbUxpc3Q9W107XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiB2YWxbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXZhbFtpXS5jaG9pY2VfbGlzdFtkXTtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaWN0SXRlbUxpc3QucHVzaCh7XCJDTl9TX05BTUVcIjp2YWwsXCJOYW1lXCI6dmFsLFwibGFiZWxcIjp2YWwsXCJ2YWx1ZVwiOnZhbH0pO1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhLmRpY3RpdGVtID0gZGljdEl0ZW1MaXN0O1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhdHRyW2pdLmRpY3RpdGVtID0gdmFsW2ldLmNob2ljZV9saXN0O1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNhLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbFtpXS5hdHRyID09IHMuYXR0clxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHZhbFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmxlbmd0aDsgaisrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4kZGF0YS5yZWZkYXRhc3RvcmVbal0uYXR0ciA9PSB2YWxbaV0uYXR0cikge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gdmFsW2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChhY3Rpb25fdHlwZSA9PSAnb3Blbl9zZWxlY3RfdXNlcmRsZycpIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor682LjJcIixjb250ZW50Olwib3Blbl9zZWxlY3RfdXNlcmRsZ+i/meS4qmFjdGlvbl90eXBl6L+Y5pyq5aSE55CG77yBXCIsc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFxuXHRcdCAgICBcdFx0fWVsc2V7XG5cdFx0ICAgIFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNlwiLGNvbnRlbnQ6c3VjY2Vzcy5tc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0XHR9XG5cdFx0ICAgIFx0fSkuY2F0Y2goZXg9Pntcblx0XHQgICAgXHRcdC8vIGNvbnNvbGUubG9nKGV4KTtcblx0XHQgICAgXHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi6ZSZ6K+vNi4xXCIsY29udGVudDpleC5lcnJNc2csc2hvd0NhbmNlbDpmYWxzZSxjb25maXJtVGV4dDpcIuWPlua2iFwifSk7XG5cdFx0ICAgIFx0fSk7XG5cdFx0ICAgIH0sXG5cdFx0ICAgIHNjYW5fRGF0YU9ialJ1bkN1c3RvbUV2ZW50KGluZm8sZGF0YV9hdHRyKXtcblx0XHQgICAgXHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdCAgICBcdHZhciBlbnZpcm9tZW50ID0ge1xuXHRcdCAgICBcdCAgICAnZnVuY3Rpb24nOiAnMzAwMCcsIC8vIOWKn+iDveeCuee8luWPt1xuXHRcdCAgICBcdCAgICBjbHNfaWQ6ICdNQk9YJywvL3RoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCwgICAgIC8vIOWKn+iDveeCueS7juaVsOaNruexu+agh+ivhlxuXHRcdCAgICBcdCAgICAnYnV0dG9uJzogJ3RvcCcsICAgLy8gdG9wL2JvdHRvbVxuXHRcdCAgICBcdCAgICBidXR0b25fbmFtZTogJ+aWsOWinicsXG5cdFx0ICAgIFx0ICAgIG1hc3Rlcjoge1xuXHRcdCAgICBcdCAgICAgICAgY2xzX2lkOiAnTUJPWCcsLy90aGlzLiRkYXRhLnBhcmFtLlN1Yl9DbHMuSUQsIC8vIGJ1dHRvbj1ib3R0b23ml7YgbWFzdGVy55qEY2xzX2lkXG5cdFx0XHRcdFx0XHRhdHRyOiBpbmZvLm1hc3RfYXR0ciAvL+S4u+aVsOaNruexu+WxnuaAp1xuXHRcdCAgICBcdCAgICAgICAgLy9vYmpfaWQ6ICcnICAvLyBidXR0b249Ym90dG9t5pe2IG1hc3RlcueahG9ial9pZFxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fTtcblx0XHQgICAgXHRlbnZpcm9tZW50LmVkaXRfZGxnID0ge1xuXHRcdFx0XHRcdHR5cGU6ICdzbWFsbCcsLy/lsI/nqpflj6Ncblx0XHQgICAgXHQgICAgY2xhc3NfaWQ6ICdNQk9YJywvL3RoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5JRCwvL+W9k+WJjeaVsOaNruexu2lkXG5cdFx0ICAgIFx0fVxuXHRcdCAgICBcdGlmIChkYXRhX2F0dHIpIHtcblx0XHQgICAgXHQgICAgZW52aXJvbWVudC5lZGl0X2RsZy5mb3JtX2NvbnRyb2wgPSB7Ly/miYDlsZ7nmoTooajljZXmjqfku7Zcblx0XHQgICAgXHQgICAgICAgIG5hbWU6IGRhdGFfYXR0ci5OYW1lLC8v5a2X5q615bGe5oCnXG5cdFx0ICAgIFx0ICAgICAgICB0ZXh0OiBkYXRhX2F0dHIuRGlzcE5hbWUsLy/mmL7npLrmlofmnKxcblx0XHQgICAgXHQgICAgICAgIGdyb3VwX25hbWU6IGRhdGFfYXR0ci5Hcm91cE5hbWUsLy/lsZ7mgKfnu4Rcblx0XHQgICAgXHQgICAgICAgIHR5cGU6IGRhdGFfYXR0ci5UeXBlLC8v5a2X5q6157G75Z6LXG5cdFx0ICAgIFx0ICAgICAgICByZWFkb25seTogZGF0YV9hdHRyLlJlYWRPbmx5LC8v5piv5ZCm5Y+q6K+7XG5cdFx0ICAgIFx0ICAgICAgICBidXR0b25faW1nOiBkYXRhX2F0dHIuYnV0dG9uX2ltZywvL+W8leeUqOaMiemSrueahOWbvuagh1xuXHRcdCAgICBcdCAgICAgICAgYnV0dG9uX3Rvb2x0aXA6IGRhdGFfYXR0ci5idXR0b25fdG9vbHRpcC8v5byV55So5oyJ6ZKu55qEdG9vbHRpcFxuXHRcdCAgICBcdCAgICB9XG5cdFx0ICAgIFx0fVxuXHRcdCAgICBcdFxuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IGluZm8uZWR0eXBlLCBldmVudGlkOiBpbmZvLmV2ZW50aWQsIHByb2plY3RpZDogaW5mby5wcm9qZWN0aWQucmVwbGFjZSgneycsJycpLnJlcGxhY2UoJ30nLCcnKSxcblx0XHQgICAgICAgICAgICByY2xzaWQ6IGluZm8ucmNsc2lkLCByb2JqaWQ6IGluZm8ucm9iamlkLCB1c2VybG9naW46IGluZm8udXNlcmxvZ2luLCBjbHNpZDogaW5mby5jbHNpZCwgb2JqaWQ6IGluZm8ub2JqaWQsXG5cdFx0ICAgICAgICAgICAgYXR0cjogSlNPTi5zdHJpbmdpZnkoaW5mby5hdHRyKSwgZXh0aW5mbzogSlNPTi5zdHJpbmdpZnkoZW52aXJvbWVudCksIGlucHV0cGFyYW1ldGVyOiBKU09OLnN0cmluZ2lmeShpbmZvLmlucHV0UGFyYW10ZXIpLCBnbG9iYWxfYXR0cjogSlNPTi5zdHJpbmdpZnkodGhpcy4kZGF0YS5nbG9iYWxfYXR0cilcblx0XHQgICAgICAgIH1cblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHQgICAgXHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdCAgICBcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcblx0XHQgICAgXHRcdFx0dmFyIGFjdGlvbmxpc3QgPSBkYXRhLmFjdGlvbjtcblx0XHQgICAgXHRcdFx0XG5cdFx0ICAgIFx0XHRcdGlmIChhY3Rpb25saXN0KSB7XG5cdFx0ICAgIFx0XHRcdFx0Y29uc29sZS5sb2coYWN0aW9ubGlzdCk7XG5cdFx0ICAgIFx0XHRcdCAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYWN0aW9ubGlzdC5sZW5ndGg7IGlpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ubGlzdFtpaV07XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnc2V0X2RsZ19hdHRyJykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYWN0aW9uLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xuXHRcdCAgICBcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHRbaV0uY2hvaWNlX2xpc3QpIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIHMgPSAwOyBzIDwgJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0Lmxlbmd0aDsgcysrKSB7XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGMgPSAwOyBjIDwgJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0ckxpc3QubGVuZ3RoOyBjKyspIHtcblx0XHQgICAgXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0ciA9ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtzXS5zdWJDbGFzc0F0dHJMaXN0W2NdLkF0dHI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmKGF0dHJbal0uTmFtZT09cmVzdWx0W2ldLmF0dHIpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5UeXBlPT0n5a2X5YW4JyB8fCBhdHRyW2pdLlR5cGU9PSflrZflhbgt5a2X56ym5LiyJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkaWN0SXRlbUxpc3Q9W107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgZCBpbiByZXN1bHRbaV0uY2hvaWNlX2xpc3Qpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciB2YWwgPXJlc3VsdFtpXS5jaG9pY2VfbGlzdFtkXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaWN0SXRlbUxpc3QucHVzaCh7XCJDTl9TX05BTUVcIjp2YWwsXCJOYW1lXCI6dmFsLFwibGFiZWxcIjp2YWwsXCJ2YWx1ZVwiOnZhbH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGF0dHJbal0uZGljdGl0ZW0gPSBkaWN0SXRlbUxpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGF0dHJbal0uZGljdGl0ZW0gPSByZXN1bHRbaV0uY2hvaWNlX2xpc3Q7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRmb3IgKHZhciBjID0gMDsgYyA8ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtzXS5zdWJDbGFzc0F0dHJMaXN0Lmxlbmd0aDsgYysrKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0dmFyIGF0dHIgPSAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc3ViQ2xhc3NBdHRyTGlzdFtjXS5BdHRyO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0Y29uc29sZS5sb2coYXR0cltqXS5OYW1lKyc9PScrcmVzdWx0W2ldLmF0dHIpO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHRcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0XHRcdGF0dHJbal0uVmFsdWUgPSByZXN1bHRbaV0udmFsdWU7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgXHR9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvbl90eXBlID09ICdzZXRfZ2xvYmFsX2F0dHInKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRhY3Rpb250ciA9IGFjdGlvbi52YWx1ZSB8fCBbXTtcblx0XHQgICAgXHRcdFx0ICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25fdHlwZSA9PSAnYWRkX3N1YmNsc19wYW5lbCcpIHsgLy/kuLvku47mlbDmja7nsbvmiavnoIHmn6Xor6LmlbDmja5cblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGFjdGlvbi52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaXN0XzEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdCkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHNjYW5Db2RlVmFsID0gJHRoaXMuJGRhdGEuc2NhbkNvZGVWYWw7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZihpbmZvLmlucHV0UGFyYW10ZXJbMF0uYXR0cj09XCJtYXN0X2lucHV0XzMwMzdcIikgLy/liKTmlq3mmK/kuLvmlbDmja7nsbvmiavnoIHmn6Xor6LmlbDmja5cblx0XHRcdFx0XHRcdFx0XHRcdFx0c2NhbkNvZGVWYWwgPSBcIm1hc3RfaW5wdXRfMzAzNy1cIitpaTtcblx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2NhbkNvZGVWYWw6c2NhbkNvZGVWYWwsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN1YkNsYXNzQXR0cjpsaXN0XzFcblx0XHRcdFx0XHRcdFx0XHRcdH0pOyBcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgcyA9IDA7IHMgPCAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZigkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc2NhbkNvZGVWYWwgPT0gc2NhbkNvZGVWYWwpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYocmVzdWx0W2ldLmF0dHI9PVwiU19JRFwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uT2JqSUQ9cmVzdWx0W2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIF9zdWJDbGFzc0F0dHIgPSAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc3ViQ2xhc3NBdHRyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYyA9IDA7IGMgPCBfc3ViQ2xhc3NBdHRyLmxlbmd0aDsgYysrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyID0gX3N1YkNsYXNzQXR0cltjXS5BdHRyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGF0dHIubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhhdHRyW2pdLk5hbWUrJz09JytyZXN1bHRbaV0uYXR0cik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYoYXR0cltqXS5OYW1lPT1yZXN1bHRbaV0uYXR0cil7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhdHRyW2pdLlZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAkdGhpcy4kZGF0YS5zdWJQYW5lbExpc3Rbc10uc3ViQ2xhc3NBdHRyPWxpc3RfMTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGxlbmd0aCA9IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgcmV0dXJuIHJlc3VsdFtpXS5hdHRyID09IHMuYXR0clxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9KS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIGxlbmd0aCA9IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUucHVzaChyZXN1bHRbaV0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChsZW5ndGggPT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgZm9yICh2YXIgaiA9IDA7IGogPCAkdGhpcy4kZGF0YS5yZWZkYXRhc3RvcmUubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYgKGRhdGEucmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRcdGxldCBsaXN0XzEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuJGRhdGEuc3ViQ2xhc3NBdHRyTGlzdCkpO1xuXHRcdFx0XHRcdFx0XHR2YXIgc2NhbkNvZGVWYWwgPSAkdGhpcy4kZGF0YS5zY2FuQ29kZVZhbDtcblx0XHRcdFx0XHRcdFx0aWYoaW5mby5pbnB1dFBhcmFtdGVyWzBdLmF0dHI9PVwibWFzdF9pbnB1dF8zMDM3XCIpXG5cdFx0XHRcdFx0XHRcdFx0c2NhbkNvZGVWYWwgPSBcIm1hc3RfaW5wdXRfMzAzNy1cIitpaTtcblx0XHRcdFx0XHRcdFx0JHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0LnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdHNjYW5Db2RlVmFsOnNjYW5Db2RlVmFsLFxuXHRcdFx0XHRcdFx0XHRcdHN1YkNsYXNzQXR0cjpsaXN0XzFcblx0XHRcdFx0XHRcdFx0fSk7IFxuXHRcdCAgICBcdFx0XHQgICAgdmFyIHJlc3VsdCA9IGRhdGEucmVzdWx0O1xuXHRcdCAgICBcdFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdC5sZW5ndGg7IHMrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYoJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnNjYW5Db2RlVmFsID09IHNjYW5Db2RlVmFsKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYocmVzdWx0W2ldLmF0dHI9PVwiU19JRFwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdFtzXS5PYmpJRD1yZXN1bHRbaV0udmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBfc3ViQ2xhc3NBdHRyID0gJHRoaXMuJGRhdGEuc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgYyA9IDA7IGMgPCBfc3ViQ2xhc3NBdHRyLmxlbmd0aDsgYysrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHIgPSBfc3ViQ2xhc3NBdHRyW2NdLkF0dHI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhhdHRyW2pdLk5hbWUrJz09JytyZXN1bHRbaV0uYXR0cik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZihhdHRyW2pdLk5hbWU9PXJlc3VsdFtpXS5hdHRyKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXR0cltqXS5WYWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICBcdH1cblx0XHQgICAgXHRcdFx0ICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdFx0XHRcblx0XHQgICAgXHRcdFx0XHRcdHZhciBsZW5ndGggPSAwO1xuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmICghJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlLmZpbHRlcihmdW5jdGlvbiAocykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfSkubGVuZ3RoKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgIGxlbmd0aCA9IDE7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIGlmIChsZW5ndGggPT0gMCkge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgaWYgKCR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS5hdHRyID09IHJlc3VsdFtpXS5hdHRyKSB7XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLnZhbHVlID0gcmVzdWx0W2ldLnZhbHVlO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgfVxuXHRcdCAgICBcdFx0XHR9XG5cdFx0ICAgIFx0XHR9ZWxzZXtcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor683XCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHRcdH1cblx0XHQgICAgXHR9KS5jYXRjaChleD0+e1xuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor683LjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgc2Nhbl9PS0RhdGFPYmpSdW5DdXN0b21FdmVudChldmVudElEKXtcblx0XHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcblx0XHRcdFx0XHR0aXRsZTpcIuWKoOi9veS4rS4uLlwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdFx0XHR2YXIgcmVxPVtdO1xuXHRcdFx0XHR2YXIgYXR0cmxpc3QgPSAkdGhpcy4kZGF0YS5jbGFzc0F0dHJMaXN0O1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dmFyIGF0dHIgPSBhdHRybGlzdFtpXS5BdHRyO1xuXHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgYXR0ci5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdFx0dmFyIGFyID0gYXR0cltqXTtcblx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0aWYoYXIuVHlwZT09J+W8leeUqOWvueixoSjlpJrkuKopJylcblx0XHRcdFx0XHRcdFx0aWYoYXIuVmFsdWU9PSfor7cnKSBhci5WYWx1ZT0nJztcblx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdFx0XHRyZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZihhci5UeXBlPT0n5biD5bCU5YC8Jylcblx0XHRcdFx0XHRcdFx0cmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWU/JzEnOicwJ30pO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZihhci5UeXBlPT0n5a2X5YW4JyB8fCBhci5UeXBlPT0n5a2X5YW4LeWtl+espuS4sicpe1xuXHRcdFx0XHRcdFx0XHRpZihhci5zZWxlY3Q9PXRydWUpeyAvL+WIpOaWreS4i+aLieaYr+WQpuWkmumAiVxuXHRcdFx0XHRcdFx0XHRcdHZhciB2YWxTdHIgPVwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0Zm9yKHZhciB2IGluIGFyLlZhbHVlKXtcblx0XHRcdFx0XHRcdFx0XHRcdGlmKHZhbFN0cilcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsU3RyKz1cIjtcIjtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbFN0cis9YXIuVmFsdWVbdl07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xuXHRcdFx0XHRcdFx0XHR9ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlfSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHJlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRpZiAoKGFyLk5vdEVtcHR5ID09ICcxJyB8fCBhci5ub3RlbXB0eSA9PSB0cnVlKSAmJiAhYXIuVmFsdWUpIHtcblx0XHRcdFx0XHRcdC8vIGlmKGFyLm5vdEVtcHR5PT0nMScpe1xuXHRcdFx0XHRcdFx0XHR1bmkuaGlkZUxvYWRpbmcoKTtcblx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNob3dUb2FzdCh7dGl0bGU6YXIuRGlzcE5hbWUrJ+S4jeiDveS4uuepuu+8gScsaWNvbjpcInN1Y2Nlc3NcIixkdXJhdGlvbjozMDAwfSk7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR2YXIgb2JqZWN0cz1bXTtcblx0XHRcdFx0dmFyIHN1YlBhbmVsTGlzdCA9ICR0aGlzLiRkYXRhLnN1YlBhbmVsTGlzdDtcblx0XHRcdFx0Zm9yICh2YXIgcyA9IDA7IHMgPCBzdWJQYW5lbExpc3QubGVuZ3RoOyBzKyspIHtcblx0XHRcdFx0XHR2YXIgc3ViX3JlcT1bXTtcblx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN1YlBhbmVsTGlzdFtzXS5zdWJDbGFzc0F0dHIubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHZhciBhdHRyID0gc3ViUGFuZWxMaXN0W3NdLnN1YkNsYXNzQXR0cltpXS5BdHRyO1xuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBhdHRyLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdHZhciBhciA9IGF0dHJbal07XG5cdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+36YCJ5oupJyB8fCBhci5WYWx1ZT09J+KAlOKAlOivt+mAieaLqeKAlOKAlCcpIGFyLlZhbHVlPScnO1xuXHRcdFx0XHRcdFx0XHRpZihhci5UeXBlPT0n5byV55So5a+56LGhKOWkmuS4qiknKVxuXHRcdFx0XHRcdFx0XHRcdGlmKGFyLlZhbHVlPT0n6K+3JykgYXIuVmFsdWU9Jyc7XG5cdFx0XHRcdFx0XHRcdGlmKGFyLlR5cGU9PSflvJXnlKjkurrlkZgnIHx8IGFyLlR5cGU9PSflvJXnlKjpobnnm64nKVxuXHRcdFx0XHRcdFx0XHRcdHN1Yl9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWxJRCA/YXIuVmFsSUQgOicnIH0pO1xuXHRcdFx0XHRcdFx0XHRlbHNlIGlmKGFyLlR5cGU9PSfluIPlsJTlgLwnKVxuXHRcdFx0XHRcdFx0XHRcdHN1Yl9yZXEucHVzaCh7IGF0dHI6IGFyLk5hbWUsIHZhbHVlOiBhci5WYWx1ZT8nMSc6JzAnfSk7XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYoYXIuVHlwZT09J+Wtl+WFuCcgfHwgYXIuVHlwZT09J+Wtl+WFuC3lrZfnrKbkuLInKXtcblx0XHRcdFx0XHRcdFx0XHRpZihhci5zZWxlY3Q9PXRydWUpeyAvL+WIpOaWreS4i+aLieaYr+WQpuWkmumAiVxuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHZhbFN0ciA9XCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdGZvcih2YXIgdiBpbiBhci5WYWx1ZSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmKHZhbFN0cilcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPVwiO1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWxTdHIrPWFyLlZhbHVlW3ZdO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0c3ViX3JlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IHZhbFN0cn0pO1xuXHRcdFx0XHRcdFx0XHRcdH1lbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHRzdWJfcmVxLnB1c2goeyBhdHRyOiBhci5OYW1lLCB2YWx1ZTogYXIuVmFsdWV9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0c3ViX3JlcS5wdXNoKHsgYXR0cjogYXIuTmFtZSwgdmFsdWU6IGFyLlZhbHVlID9hci5WYWx1ZSA6Jyd9KTtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKChhci5Ob3RFbXB0eSA9PSAnMScgfHwgYXIubm90ZW1wdHkgPT0gdHJ1ZSkgJiYgIWFyLlZhbHVlKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGlmKGFyLm5vdEVtcHR5PT0nMScpe1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe3RpdGxlOmFyLkRpc3BOYW1lKyfkuI3og73kuLrnqbrvvIEnLGljb246XCJzdWNjZXNzXCIsZHVyYXRpb246MzAwMH0pO1xuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe3RpdGxlOlwi5o+Q56S6XCIsY29udGVudDphci5EaXNwTmFtZSsn5LiN6IO95Li656m677yBJyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0b2JqZWN0cy5wdXNoKHtcblx0XHRcdFx0XHRcdG9ial9pZDpzdWJQYW5lbExpc3Rbc10uc2NhbkNvZGVWYWwsXG5cdFx0XHRcdFx0XHRvYmpfYXR0cnM6c3ViX3JlcVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBkYXRhSnNvbj17XG5cdFx0XHRcdFx0bWFzdGVyX2Nsczp7XG5cdFx0XHRcdFx0XHRjbHNfbmFtZTonTUJPWCcsLy8kdGhpcy4kZGF0YS5wYXJhbS5NYXN0ZXJfQ2xzLk5hbWUsXG5cdFx0XHRcdFx0XHRvYmpfYXR0cnM6cmVxXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRpbnB1dF8zMDM3OiR0aGlzLiRkYXRhLnNjYW5Db2RlVmFsLCAgIC8v5omr56CB5YaF5a65XG5cdFx0XHRcdFx0b3BfdHlwZTokdGhpcy4kZGF0YS5wYXJhbS5PcGVyYXRpb25UeXBlLCAvL+S9nOS4muexu+Wei+WumuS5iVxuXHRcdFx0XHRcdHN1Yl9jbHM6e1xuXHRcdFx0XHRcdFx0Y2xzX25hbWU6J01CT1gnLC8vJHRoaXMuJGRhdGEucGFyYW0uU3ViX0Nscy5OYW1lLFxuXHRcdFx0XHRcdFx0b2JqZWN0czpvYmplY3RzXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShkYXRhSnNvbikpO1xuXHRcdCAgICBcdHZhciBkYXRhSW5mbyA9IHtcblx0XHQgICAgICAgICAgICBlZHR5cGU6IFwiN1wiLCBldmVudGlkOiBldmVudElELCBwcm9qZWN0aWQ6ICcnLHJjbHNpZDogJycsIHJvYmppZDogJycsIHVzZXJsb2dpbjogJycsIFxuXHRcdFx0XHRcdGNsc2lkOiAnTUJPWCcsIG9iamlkOiAnJyxhdHRyOiBKU09OLnN0cmluZ2lmeShbXSksIGV4dGluZm86IEpTT04uc3RyaW5naWZ5KFtdKSwgXG5cdFx0XHRcdFx0Z2xvYmFsX2F0dHI6IEpTT04uc3RyaW5naWZ5KCR0aGlzLiRkYXRhLmdsb2JhbF9hdHRyKSxkYXRhSnNvbjpKU09OLnN0cmluZ2lmeShkYXRhSnNvbilcblx0XHQgICAgICAgIH1cblx0XHRcdFx0Y29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YUluZm8pKTtcblx0XHQgICAgXHRjb25zb2xlLmxvZyhkYXRhSW5mbyk7XG5cdFx0ICAgIFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ0RhdGFPYmpSdW5DdXN0b21FdmVudEluZm8nLGRhdGFJbmZvKS50aGVuKHN1Y2Nlc3M9Pntcblx0XHQgICAgXHRcdGNvbnNvbGUubG9nKHN1Y2Nlc3MpO1xuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdCAgICBcdFx0aWYgKHN1Y2Nlc3MuY29kZT09JzAwMDAwJykge1xuXHRcdCAgICBcdFx0XHR2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc3VjY2Vzcy5kYXRhKTtcdFx0XG5cdFx0ICAgIFx0XHRcdHZhciByZXN1bHQgPSBkYXRhLnJlc3VsdDtcblx0XHQgICAgXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcblx0XHQgICAgXHRcdFx0ICAgIC8vIHNlbGYuY2xhc3NfYXR0cl9lbGUuZmluZCgnLmF0dHJfZmllbGRbZGF0YS1maWVsZD1cIicgKyByZXN1bHRbaV0uYXR0ciArICdcIl0nKS52YWwocmVzdWx0W2ldLnZhbHVlKS5kYXRhKCd2YWwnLCByZXN1bHRbaV0udmFsdWUpO1xuXHRcdCAgICBcdFx0XHQgICAgdmFyIGxlbmd0aCA9IDA7XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAoISR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICByZXR1cm4gcmVzdWx0W2ldLmF0dHIgPT0gcy5hdHRyXG5cdFx0ICAgIFx0XHRcdCAgICB9KS5sZW5ndGgpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBsZW5ndGggPSAxO1xuXHRcdCAgICBcdFx0XHQgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5wdXNoKHJlc3VsdFtpXSk7XG5cdFx0ICAgIFx0XHRcdCAgICB9XG5cdFx0ICAgIFx0XHRcdCAgICBpZiAobGVuZ3RoID09IDApIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8ICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZS5sZW5ndGg7IGorKykge1xuXHRcdCAgICBcdFx0XHQgICAgICAgICAgICBpZiAoJHRoaXMuJGRhdGEucmVmZGF0YXN0b3JlW2pdLmF0dHIgPT0gcmVzdWx0W2ldLmF0dHIpIHtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgICAgICR0aGlzLiRkYXRhLnJlZmRhdGFzdG9yZVtqXS52YWx1ZSA9IHJlc3VsdFtpXS52YWx1ZTtcblx0XHQgICAgXHRcdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICBcdFx0XHQgICAgICAgIH1cblx0XHQgICAgXHRcdFx0ICAgIH1cblx0XHQgICAgXHRcdFx0fVxuXHRcdCAgICBcdFx0XHRcblx0XHQgICAgXHRcdFx0aWYoZXZlbnRJRCAhPSAkdGhpcy4kZGF0YS5wYXJhbS5BZnRlcl9PS19FdmVudC5JRClcblx0XHQgICAgXHRcdFx0XHQkdGhpcy5zY2FuX09LRGF0YU9ialJ1bkN1c3RvbUV2ZW50KCR0aGlzLiRkYXRhLnBhcmFtLkFmdGVyX09LX0V2ZW50LklEKTtcblx0XHRcdFx0XHRcdGVsc2V7XG5cdFx0XHRcdFx0XHRcdC8v5Yi35pawXG5cdFx0XHRcdFx0XHRcdHVuaS5yZWRpcmVjdFRvKHtcblx0XHRcdFx0XHRcdFx0XHR1cmw6Jy4uL21vZGFsL21zX2NsYXNzQXR0cj9wYXJhbT0nK0pTT04uc3RyaW5naWZ5KCR0aGlzLiRkYXRhLnBhcmFtKStcIiZ0aXRsZW5hbWU9XCIrJHRoaXMuJGRhdGEudGl0bGVcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0ICAgIFx0XHR9ZWxzZXtcblx0XHQgICAgXHRcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor684XCIsY29udGVudDpzdWNjZXNzLm1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHRcdH1cblx0XHQgICAgXHR9KS5jYXRjaChleD0+e1xuXHRcdCAgICBcdFx0Ly8gY29uc29sZS5sb2coZXgpO1xuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdCAgICBcdFx0dW5pLnNob3dNb2RhbCh7dGl0bGU6XCLplJnor684LjFcIixjb250ZW50OmV4LmVyck1zZyxzaG93Q2FuY2VsOmZhbHNlLGNvbmZpcm1UZXh0Olwi5Y+W5raIXCJ9KTtcblx0XHQgICAgXHR9KTtcblx0XHQgICAgfSxcblx0XHQgICAgXG5cdFx0XHRcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///80\n"); /***/ }), /* 81 */ @@ -15424,7 +15424,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 96));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 101));\nvar _app = _interopRequireDefault(__webpack_require__(/*! ./modules/app */ 102));\n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n modules: {\n app: _app.default\n },\n state: {\n hasLogin: false,\n loginProvider: \"\",\n areaFunc: '',\n thisareaFuncID: '',\n thisareaFuncSubID: '',\n thisEditName: '',\n thisEditSubName: '',\n thisDictName: '',\n _classAttrList: {},\n _classGridStyleInfo: {},\n _subClassAttrList: {},\n _subClassGridStyleInfo: {},\n _dicValueInfo: {},\n DataObjRunCustomEventInfo: '',\n querySelpsn: '',\n ProjectGetAnalysisList: '',\n addclassattr: '',\n username: \"sa\",\n userpwd: \"0000\",\n url: \"115.29.185.26:5000\" //192.168.1.184:5200 36.33.24.94:5200\n },\n\n mutations: {\n setUrl: function setUrl(state, url) {\n state.url = url;\n },\n login: function login(state, provider) {\n state.hasLogin = true;\n state.loginProvider = provider;\n },\n areaFunc: function areaFunc(state, ret) {\n state.areaFunc = ret;\n },\n setareaFuncid: function setareaFuncid(state, id) {\n state.thisareaFuncID = id;\n },\n setareaFunSubcid: function setareaFunSubcid(state, id) {\n state.thisareaFuncSubID = id;\n },\n seteditName: function seteditName(state, editName) {\n state.thisEditName = editName;\n },\n seteditSubName: function seteditSubName(state, editName) {\n state.thisEditSubName = editName;\n },\n setDictName: function setDictName(state, dictName) {\n state.thisDictName = dictName;\n },\n classAttrList: function classAttrList(state, ret) {\n // state._classAttrList[state.thisareaFuncID] = ret;\n _vue.default.set(state._classAttrList, state.thisareaFuncID, ret);\n },\n classGridStyleInfo: function classGridStyleInfo(state, ret) {\n // state._classGridStyleInfo[state.thisareaFuncID] = ret;\n var data = {};\n if (state._classGridStyleInfo[state.thisareaFuncID]) data = state._classGridStyleInfo[state.thisareaFuncID];\n _vue.default.set(data, state.thisEditName, ret);\n _vue.default.set(state._classGridStyleInfo, state.thisareaFuncID, data);\n },\n subClassAttrList: function subClassAttrList(state, ret) {\n _vue.default.set(state._subClassAttrList, state.thisareaFuncSubID, ret);\n },\n subClassGridStyleInfo: function subClassGridStyleInfo(state, ret) {\n var data = {};\n if (state._subClassGridStyleInfo[state.thisareaFuncSubID]) data = state._subClassGridStyleInfo[state.thisareaFuncSubID];\n _vue.default.set(data, state.thisEditSubName, ret);\n _vue.default.set(state._subClassGridStyleInfo, state.thisareaFuncSubID, data);\n },\n dicValueInfo: function dicValueInfo(state, ret) {\n // state._dicValueInfo[state.thisareaFuncID] = ret;\n _vue.default.set(state._dicValueInfo, state.thisDictName, ret);\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(state, ret) {\n state.DataObjRunCustomEventInfo = ret;\n },\n querySelpsn: function querySelpsn(state, ret) {\n state.querySelpsn = ret;\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(state, ret) {\n state.ProjectGetAnalysisList = ret;\n },\n addclassattr: function addclassattr(state, ret) {\n state.addclassattr = ret;\n },\n logout: function logout(state) {\n state.hasLogin = false;\n }\n },\n getters: {\n loginid: function loginid(state) {\n return state.loginProvider.loginid;\n },\n getUrl: function getUrl(state) {\n return state.url;\n },\n getclassAttrList: function getclassAttrList(state) {\n return state._classAttrList[state.thisareaFuncID];\n },\n getclassGridStyleInfo: function getclassGridStyleInfo(state) {\n if (state._classGridStyleInfo[state.thisareaFuncID]) return state._classGridStyleInfo[state.thisareaFuncID][state.thisEditName];else return \"\";\n },\n getSubClassAttrList: function getSubClassAttrList(state) {\n return state._subClassAttrList[state.thisareaFuncSubID];\n },\n getSubClassGridStyleInfo: function getSubClassGridStyleInfo(state) {\n if (state._subClassGridStyleInfo[state.thisareaFuncSubID]) return state._subClassGridStyleInfo[state.thisareaFuncSubID][state.thisEditSubName];else return \"\";\n },\n getdicValueInfo: function getdicValueInfo(state) {\n return state._dicValueInfo[state.thisDictName];\n }\n },\n actions: {\n //{commit} 瑙f瀯锛孿n //univerifyInfo 鑷畾涔夊弬鏁癨n login: function login(_ref, univerifyInfo) {\n var commit = _ref.commit,\n state = _ref.state;\n return new Promise(function (resolve, reject) {\n univerifyInfo = univerifyInfo || {};\n univerifyInfo.server = univerifyInfo.server || '';\n univerifyInfo.uname = univerifyInfo.uname || '';\n univerifyInfo.pwd = univerifyInfo.pwd || '';\n // console.log(univerifyInfo);\n if (univerifyInfo.server.length == 0) {\n reject({\n \"errMsg\": '鏈嶅姟鍣ㄥ湴鍧�笉鑳戒负绌�'\n });\n }\n if (univerifyInfo.uname.length < 2) {\n reject({\n \"errMsg\": '璐﹀彿鏈�煭涓�2 涓瓧绗�'\n });\n }\n if (univerifyInfo.pwd.length < 1) {\n reject({\n \"errMsg\": '瀵嗙爜鏈�煭涓�1涓瓧绗�'\n });\n }\n var openinfo = \"http://\" + univerifyInfo.server + \"/\"; //+\"/OrgWebS\"\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n commit(\"setUrl\", openinfo);\n\n // if (univerifyInfo.server.split(':').length < 2)\n // \tcgi = \"http://\" + univerifyInfo.server + \":5010\"; ///OrgWebS\n\n // setTimeout(_=>{\n // \tresolve(\"00000000000\")\n // },3000)\n // console.log(openinfo + \"PDA/SignIn\");\n uni.request({\n url: openinfo + \"PDA/SignIn\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res); \n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"login\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:183\");\n reject(err);\n }\n });\n });\n },\n areaFunc: function areaFunc(_ref2, univerifyInfo) {\n var commit = _ref2.commit,\n state = _ref2.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAArea\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"areaFunc\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n classAttrList: function classAttrList(_ref3, univerifyInfo) {\n var commit = _ref3.commit,\n state = _ref3.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:239\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"classAttrList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n classGridStyleInfo: function classGridStyleInfo(_ref4, univerifyInfo) {\n var commit = _ref4.commit,\n state = _ref4.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:272\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"classGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n subClassAttrList: function subClassAttrList(_ref5, univerifyInfo) {\n var commit = _ref5.commit,\n state = _ref5.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:307\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"subClassAttrList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n subClassGridStyleInfo: function subClassGridStyleInfo(_ref6, univerifyInfo) {\n var commit = _ref6.commit,\n state = _ref6.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:340\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"subClassGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n dicValueInfo: function dicValueInfo(_ref7, univerifyInfo) {\n var commit = _ref7.commit,\n state = _ref7.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDADicValueGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n state.thisDictName = univerifyInfo.dic_name;\n commit(\"dicValueInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:386\");\n reject(err);\n }\n });\n });\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(_ref8, univerifyInfo) {\n var commit = _ref8.commit,\n state = _ref8.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"PDA/PDADataObjRunCustomEvent\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:408\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"DataObjRunCustomEventInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:418\");\n reject(err);\n }\n });\n });\n },\n querySelpsn: function querySelpsn(_ref9, univerifyInfo) {\n var commit = _ref9.commit,\n state = _ref9.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"selpsn/queryjson\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = JSON.parse(res.data);\n if (ret.code == '00000') {\n commit(\"querySelpsn\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:450\");\n reject(err);\n }\n });\n });\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(_ref10, univerifyInfo) {\n var commit = _ref10.commit,\n state = _ref10.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"bpm/ProjectGetAnalysisList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:472\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"ProjectGetAnalysisList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:482\");\n reject(err);\n }\n });\n });\n },\n addclassattr: function addclassattr(_ref11, univerifyInfo) {\n var commit = _ref11.commit,\n state = _ref11.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"workspace/addclassattr\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:504\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"addclassattr\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": JSON.stringify(ret)\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:514\");\n reject(err);\n }\n });\n });\n }\n }\n});\nvar _default = store;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJtb2R1bGVzIiwiYXBwIiwic3RhdGUiLCJoYXNMb2dpbiIsImxvZ2luUHJvdmlkZXIiLCJhcmVhRnVuYyIsInRoaXNhcmVhRnVuY0lEIiwidGhpc2FyZWFGdW5jU3ViSUQiLCJ0aGlzRWRpdE5hbWUiLCJ0aGlzRWRpdFN1Yk5hbWUiLCJ0aGlzRGljdE5hbWUiLCJfY2xhc3NBdHRyTGlzdCIsIl9jbGFzc0dyaWRTdHlsZUluZm8iLCJfc3ViQ2xhc3NBdHRyTGlzdCIsIl9zdWJDbGFzc0dyaWRTdHlsZUluZm8iLCJfZGljVmFsdWVJbmZvIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbyIsInF1ZXJ5U2VscHNuIiwiUHJvamVjdEdldEFuYWx5c2lzTGlzdCIsImFkZGNsYXNzYXR0ciIsInVzZXJuYW1lIiwidXNlcnB3ZCIsInVybCIsIm11dGF0aW9ucyIsInNldFVybCIsImxvZ2luIiwicHJvdmlkZXIiLCJyZXQiLCJzZXRhcmVhRnVuY2lkIiwiaWQiLCJzZXRhcmVhRnVuU3ViY2lkIiwic2V0ZWRpdE5hbWUiLCJlZGl0TmFtZSIsInNldGVkaXRTdWJOYW1lIiwic2V0RGljdE5hbWUiLCJkaWN0TmFtZSIsImNsYXNzQXR0ckxpc3QiLCJzZXQiLCJjbGFzc0dyaWRTdHlsZUluZm8iLCJkYXRhIiwic3ViQ2xhc3NBdHRyTGlzdCIsInN1YkNsYXNzR3JpZFN0eWxlSW5mbyIsImRpY1ZhbHVlSW5mbyIsImxvZ291dCIsImdldHRlcnMiLCJsb2dpbmlkIiwiZ2V0VXJsIiwiZ2V0Y2xhc3NBdHRyTGlzdCIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImdldFN1YkNsYXNzQXR0ckxpc3QiLCJnZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8iLCJnZXRkaWNWYWx1ZUluZm8iLCJhY3Rpb25zIiwidW5pdmVyaWZ5SW5mbyIsImNvbW1pdCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2VydmVyIiwidW5hbWUiLCJwd2QiLCJsZW5ndGgiLCJvcGVuaW5mbyIsInVuaSIsInJlcXVlc3QiLCJtZXRob2QiLCJkYXRhVHlwZSIsImhlYWRlciIsInN1Y2Nlc3MiLCJyZXMiLCJjb2RlIiwibXNnIiwiZmFpbCIsImVyciIsImRpY19uYW1lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUdBO0FBRkFBLFlBQUcsQ0FBQ0MsR0FBRyxDQUFDQyxhQUFJLENBQUM7QUFHYixJQUFNQyxLQUFLLEdBQUcsSUFBSUQsYUFBSSxDQUFDRSxLQUFLLENBQUM7RUFDNUJDLE9BQU8sRUFBQztJQUNQQyxHQUFHLEVBQUhBO0VBQ0QsQ0FBQztFQUNEQyxLQUFLLEVBQUU7SUFDTkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsYUFBYSxFQUFFLEVBQUU7SUFDakJDLFFBQVEsRUFBQyxFQUFFO0lBQ1hDLGNBQWMsRUFBQyxFQUFFO0lBQ2pCQyxpQkFBaUIsRUFBQyxFQUFFO0lBQ3BCQyxZQUFZLEVBQUMsRUFBRTtJQUNmQyxlQUFlLEVBQUMsRUFBRTtJQUNsQkMsWUFBWSxFQUFDLEVBQUU7SUFDZkMsY0FBYyxFQUFDLENBQUMsQ0FBQztJQUNqQkMsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDO0lBQ3RCQyxpQkFBaUIsRUFBQyxDQUFDLENBQUM7SUFDcEJDLHNCQUFzQixFQUFDLENBQUMsQ0FBQztJQUN6QkMsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUNoQkMseUJBQXlCLEVBQUMsRUFBRTtJQUM1QkMsV0FBVyxFQUFDLEVBQUU7SUFDZEMsc0JBQXNCLEVBQUMsRUFBRTtJQUN6QkMsWUFBWSxFQUFDLEVBQUU7SUFDZkMsUUFBUSxFQUFDLElBQUk7SUFDYkMsT0FBTyxFQUFDLE1BQU07SUFDZEMsR0FBRyxFQUFDLG9CQUFvQixDQUFDO0VBQzFCLENBQUM7O0VBQ0RDLFNBQVMsRUFBRTtJQUNWQyxNQUFNLGtCQUFDdEIsS0FB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QUFNO1VBQ2ZDLE1BQU0sRUFBRTtZQUNQLGNBQWMsRUFBRTtVQUNqQixDQUFDO1VBQ0RDLE9BQU8sRUFBRSxpQkFBQ0MsR0FBRyxFQUFLO1lBQ2pCLGFBQVlBLEdBQUc7WUFDZixJQUFNMUMsR0FBRyxHQUFHMEMsR0FBRyxDQUFDOUIsSUFBSTtZQUNwQixJQUFJWixHQUFHLENBQUMyQyxJQUFJLElBQUUsT0FBTyxFQUFFO2NBQ3RCaEIsTUFBTSxDQUFDLGNBQWMsRUFBQzNCLEdBQUcsQ0FBQztjQUMxQjZCLE9BQU8sQ0FBQzdCLEdBQUcsQ0FBQztZQUNiLENBQUMsTUFBTTtjQUNOOEIsTUFBTSxDQUFDO2dCQUFDLFFBQVEsRUFBQ2tCLElBQUksQ0FBQ0UsU0FBUyxDQUFDbEQsR0FBRztjQUFDLENBQUMsQ0FBQztZQUN2QztVQUNELENBQUM7VUFDRDZDLElBQUksRUFBRSxjQUFDQyxHQUFHLEVBQUs7WUFDZCxhQUFZQSxHQUFHO1lBQ2ZoQixNQUFNLENBQUNnQixHQUFHLENBQUM7VUFDWjtRQUNELENBQUMsQ0FBQztNQUNILENBQUMsQ0FBQztJQUNIO0VBRUQ7QUFDRCxDQUFDLENBQUM7QUFBQSxlQUVhM0UsS0FBSztBQUFBLDJCIiwiZmlsZSI6IjEwMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5pbXBvcnQgVnVleCBmcm9tICd2dWV4J1xyXG5WdWUudXNlKFZ1ZXgpXHJcblxyXG5pbXBvcnQgYXBwIGZyb20gJy4vbW9kdWxlcy9hcHAnXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG5cdG1vZHVsZXM6e1xyXG5cdFx0YXBwLFxyXG5cdH0sXHJcblx0c3RhdGU6IHtcclxuXHRcdGhhc0xvZ2luOiBmYWxzZSxcclxuXHRcdGxvZ2luUHJvdmlkZXI6IFwiXCIsXHJcblx0XHRhcmVhRnVuYzonJyxcclxuXHRcdHRoaXNhcmVhRnVuY0lEOicnLFxyXG5cdFx0dGhpc2FyZWFGdW5jU3ViSUQ6JycsXHJcblx0XHR0aGlzRWRpdE5hbWU6JycsXHJcblx0XHR0aGlzRWRpdFN1Yk5hbWU6JycsXHJcblx0XHR0aGlzRGljdE5hbWU6JycsXHJcblx0XHRfY2xhc3NBdHRyTGlzdDp7fSxcclxuXHRcdF9jbGFzc0dyaWRTdHlsZUluZm86e30sXHJcblx0XHRfc3ViQ2xhc3NBdHRyTGlzdDp7fSxcclxuXHRcdF9zdWJDbGFzc0dyaWRTdHlsZUluZm86e30sXHJcblx0XHRfZGljVmFsdWVJbmZvOnt9LFxyXG5cdFx0RGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbzonJyxcclxuXHRcdHF1ZXJ5U2VscHNuOicnLFxyXG5cdFx0UHJvamVjdEdldEFuYWx5c2lzTGlzdDonJyxcclxuXHRcdGFkZGNsYXNzYXR0cjonJyxcclxuXHRcdHVzZXJuYW1lOlwic2FcIixcclxuXHRcdHVzZXJwd2Q6XCIwMDAwXCIsXHJcblx0XHR1cmw6XCIxMTUuMjkuMTg1LjI2OjUwMDBcIiAvLzE5Mi4xNjguMS4xODQ6NTIwMCAzNi4zMy4yNC45NDo1MjAwXHJcblx0fSxcclxuXHRtdXRhdGlvbnM6IHtcclxuXHRcdHNldFVybChzdGF0ZSwgdXJsKSB7XHJcblx0XHRcdHN0YXRlLnVybCA9IHVybDtcclxuXHRcdH0sXHJcblx0XHRsb2dpbihzdGF0ZSwgcHJvdmlkZXIpIHtcclxuXHRcdFx0c3RhdGUuaGFzTG9naW4gPSB0cnVlO1xyXG5cdFx0XHRzdGF0ZS5sb2dpblByb3ZpZGVyID0gcHJvdmlkZXI7XHJcblx0XHR9LFxyXG5cdFx0YXJlYUZ1bmMoc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5hcmVhRnVuYyA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRzZXRhcmVhRnVuY2lkKHN0YXRlLGlkKXtcclxuXHRcdFx0c3RhdGUudGhpc2FyZWFGdW5jSUQ9aWQ7XHJcblx0XHR9LFxyXG5cdFx0c2V0YXJlYUZ1blN1YmNpZChzdGF0ZSxpZCl7XHJcblx0XHRcdHN0YXRlLnRoaXNhcmVhRnVuY1N1YklEPWlkO1xyXG5cdFx0fSxcclxuXHRcdHNldGVkaXROYW1lKHN0YXRlLGVkaXROYW1lKXtcclxuXHRcdFx0c3RhdGUudGhpc0VkaXROYW1lPWVkaXROYW1lO1xyXG5cdFx0fSxcclxuXHRcdHNldGVkaXRTdWJOYW1lKHN0YXRlLGVkaXROYW1lKXtcclxuXHRcdFx0c3RhdGUudGhpc0VkaXRTdWJOYW1lPWVkaXROYW1lO1xyXG5cdFx0fSxcclxuXHRcdHNldERpY3ROYW1lKHN0YXRlLGRpY3ROYW1lKXtcclxuXHRcdFx0c3RhdGUudGhpc0RpY3ROYW1lPWRpY3ROYW1lO1xyXG5cdFx0fSxcclxuXHRcdGNsYXNzQXR0ckxpc3Qoc3RhdGUsIHJldCkge1xyXG5cdFx0XHQvLyBzdGF0ZS5fY2xhc3NBdHRyTGlzdFtzdGF0ZS50aGlzYXJlYUZ1bmNJRF0gPSByZXQ7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX2NsYXNzQXR0ckxpc3Qsc3RhdGUudGhpc2FyZWFGdW5jSUQscmV0KTtcclxuXHRcdH0sXHJcblx0XHRjbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUsIHJldCkge1xyXG5cdFx0XHQvLyBzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSA9IHJldDtcclxuXHRcdFx0dmFyIGRhdGEgPSB7fTtcclxuXHRcdFx0aWYoc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF0pXHJcblx0XHRcdFx0ZGF0YSA9IHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdO1xyXG5cdFx0XHRWdWUuc2V0KGRhdGEsc3RhdGUudGhpc0VkaXROYW1lLHJldCk7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mbyxzdGF0ZS50aGlzYXJlYUZ1bmNJRCxkYXRhKTtcclxuXHRcdH0sXHJcblx0XHRzdWJDbGFzc0F0dHJMaXN0KHN0YXRlLCByZXQpIHtcclxuXHRcdFx0VnVlLnNldChzdGF0ZS5fc3ViQ2xhc3NBdHRyTGlzdCxzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRCxyZXQpO1xyXG5cdFx0fSxcclxuXHRcdHN1YkNsYXNzR3JpZFN0eWxlSW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHZhciBkYXRhID0ge307XHJcblx0XHRcdGlmKHN0YXRlLl9zdWJDbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jU3ViSURdKVxyXG5cdFx0XHRcdGRhdGEgPSBzdGF0ZS5fc3ViQ2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY1N1YklEXTtcclxuXHRcdFx0VnVlLnNldChkYXRhLHN0YXRlLnRoaXNFZGl0U3ViTmFtZSxyZXQpO1xyXG5cdFx0XHRWdWUuc2V0KHN0YXRlLl9zdWJDbGFzc0dyaWRTdHlsZUluZm8sc3RhdGUudGhpc2FyZWFGdW5jU3ViSUQsZGF0YSk7XHJcblx0XHR9LFxyXG5cdFx0ZGljVmFsdWVJbmZvKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0Ly8gc3RhdGUuX2RpY1ZhbHVlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF0gPSByZXQ7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX2RpY1ZhbHVlSW5mbyxzdGF0ZS50aGlzRGljdE5hbWUscmV0KTtcclxuXHRcdH0sXHJcblx0XHREYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbyA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRxdWVyeVNlbHBzbihzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHN0YXRlLnF1ZXJ5U2VscHNuID0gcmV0O1xyXG5cdFx0fSxcclxuXHRcdFByb2plY3RHZXRBbmFseXNpc0xpc3Qoc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5Qcm9qZWN0R2V0QW5hbHlzaXNMaXN0ID0gcmV0O1xyXG5cdFx0fSxcclxuXHRcdGFkZGNsYXNzYXR0cihzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHN0YXRlLmFkZGNsYXNzYXR0ciA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRsb2dvdXQoc3RhdGUpIHtcclxuXHRcdFx0c3RhdGUuaGFzTG9naW4gPSBmYWxzZVxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdGdldHRlcnM6IHtcclxuXHRcdGxvZ2luaWQoc3RhdGUpIHtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLmxvZ2luUHJvdmlkZXIubG9naW5pZFxyXG5cdFx0fSxcclxuXHRcdGdldFVybChzdGF0ZSkge1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUudXJsXHJcblx0XHR9LFxyXG5cdFx0Z2V0Y2xhc3NBdHRyTGlzdChzdGF0ZSl7XHJcblx0XHRcdHJldHVybiBzdGF0ZS5fY2xhc3NBdHRyTGlzdFtzdGF0ZS50aGlzYXJlYUZ1bmNJRF07XHJcblx0XHR9LFxyXG5cdFx0Z2V0Y2xhc3NHcmlkU3R5bGVJbmZvKHN0YXRlKXtcclxuXHRcdFx0aWYoc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF0pXHJcblx0XHRcdFx0cmV0dXJuIHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdW3N0YXRlLnRoaXNFZGl0TmFtZV07XHJcblx0XHRcdGVsc2UgXHJcblx0XHRcdFx0cmV0dXJuIFwiXCI7XHJcblx0XHR9LFxyXG5cdFx0Z2V0U3ViQ2xhc3NBdHRyTGlzdChzdGF0ZSl7XHJcblx0XHRcdHJldHVybiBzdGF0ZS5fc3ViQ2xhc3NBdHRyTGlzdFtzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRF07XHJcblx0XHR9LFxyXG5cdFx0Z2V0U3ViQ2xhc3NHcmlkU3R5bGVJbmZvKHN0YXRlKXtcclxuXHRcdFx0aWYoc3RhdGUuX3N1YkNsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRF0pXHJcblx0XHRcdFx0cmV0dXJuIHN0YXRlLl9zdWJDbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jU3ViSURdW3N0YXRlLnRoaXNFZGl0U3ViTmFtZV07XHJcblx0XHRcdGVsc2UgXHJcblx0XHRcdFx0cmV0dXJuIFwiXCI7XHJcblx0XHR9LFxyXG5cdFx0Z2V0ZGljVmFsdWVJbmZvKHN0YXRlKXtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLl9kaWNWYWx1ZUluZm9bc3RhdGUudGhpc0RpY3ROYW1lXTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0XHJcblx0fSxcclxuXHRhY3Rpb25zOiB7XHJcblx0XHQvL3tjb21taXR9IOino+aehO+8jFxyXG5cdFx0Ly91bml2ZXJpZnlJbmZvIOiHquWumuS5ieWPguaVsFxyXG5cdFx0bG9naW46IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdHVuaXZlcmlmeUluZm8gPSB1bml2ZXJpZnlJbmZvIHx8IHt9O1xyXG5cdFx0XHRcdHVuaXZlcmlmeUluZm8uc2VydmVyID0gdW5pdmVyaWZ5SW5mby5zZXJ2ZXIgfHwgJyc7XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mby51bmFtZSA9IHVuaXZlcmlmeUluZm8udW5hbWUgfHwgJyc7XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mby5wd2QgPSB1bml2ZXJpZnlJbmZvLnB3ZCB8fCAnJztcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyh1bml2ZXJpZnlJbmZvKTtcclxuXHRcdFx0XHRpZiAodW5pdmVyaWZ5SW5mby5zZXJ2ZXIubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjon5pyN5Yqh5Zmo5Zyw5Z2A5LiN6IO95Li656m6ISd9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHVuaXZlcmlmeUluZm8udW5hbWUubGVuZ3RoIDwgMikge1xyXG5cdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOifotKblj7fmnIDnn63kuLogMiDkuKrlrZfnrKYhJ30pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodW5pdmVyaWZ5SW5mby5wd2QubGVuZ3RoIDwgMSkge1xyXG5cdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOiflr4bnoIHmnIDnn63kuLogMeS4quWtl+espiEnfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHZhciBvcGVuaW5mbyA9IFwiaHR0cDovL1wiICsgdW5pdmVyaWZ5SW5mby5zZXJ2ZXIgKyBcIi9cIjsgLy8rXCIvT3JnV2ViU1wiXHJcblx0XHRcdFx0Ly/orr7nva7lhajlsYDlj4LmlbDvvJp1cmwt5pyN5Yqh5Zmo5Zyw5Z2AXHJcblx0XHRcdFx0Y29tbWl0KFwic2V0VXJsXCIsb3BlbmluZm8pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC8vIGlmICh1bml2ZXJpZnlJbmZvLnNlcnZlci5zcGxpdCgnOicpLmxlbmd0aCA8IDIpXHJcblx0XHRcdFx0Ly8gXHRjZ2kgPSBcImh0dHA6Ly9cIiArIHVuaXZlcmlmeUluZm8uc2VydmVyICsgXCI6NTAxMFwiOyAvLy9PcmdXZWJTXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gc2V0VGltZW91dChfPT57XHJcblx0XHRcdFx0Ly8gXHRyZXNvbHZlKFwiMDAwMDAwMDAwMDBcIilcclxuXHRcdFx0XHQvLyB9LDMwMDApXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2cob3BlbmluZm8gKyBcIlBEQS9TaWduSW5cIik7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBvcGVuaW5mbyArIFwiUERBL1NpZ25JblwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdCAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcyk7IFxyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJsb2dpblwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRhcmVhRnVuYzogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0IFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBQXJlYVwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJhcmVhRnVuY1wiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRjbGFzc0F0dHJMaXN0OiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQUF0dHJMaXN0XCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImNsYXNzQXR0ckxpc3RcIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0Y2xhc3NHcmlkU3R5bGVJbmZvOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFHcmlkU3R5bGVHZXRJbmZvXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdC8vIHZhciBkYXRhID17fTtcclxuXHRcdFx0XHRcdFx0XHQvLyBWdWUuc2V0KGRhdGEsdW5pdmVyaWZ5SW5mby5uYW1lLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiY2xhc3NHcmlkU3R5bGVJbmZvXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdHN1YkNsYXNzQXR0ckxpc3Q6IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBQXR0ckxpc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwic3ViQ2xhc3NBdHRyTGlzdFwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRzdWJDbGFzc0dyaWRTdHlsZUluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQUdyaWRTdHlsZUdldEluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdmFyIGRhdGEgPXt9O1xyXG5cdFx0XHRcdFx0XHRcdC8vIFZ1ZS5zZXQoZGF0YSx1bml2ZXJpZnlJbmZvLm5hbWUscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJzdWJDbGFzc0dyaWRTdHlsZUluZm9cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0ZGljVmFsdWVJbmZvOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFEaWNWYWx1ZUdldEluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0c3RhdGUudGhpc0RpY3ROYW1lID0gdW5pdmVyaWZ5SW5mby5kaWNfbmFtZVxyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImRpY1ZhbHVlSW5mb1wiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHREYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQURhdGFPYmpSdW5DdXN0b21FdmVudFwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJEYXRhT2JqUnVuQ3VzdG9tRXZlbnRJbmZvXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdHF1ZXJ5U2VscHNuOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwic2VscHNuL3F1ZXJ5anNvblwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSBKU09OLnBhcnNlKHJlcy5kYXRhKTtcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwicXVlcnlTZWxwc25cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0UHJvamVjdEdldEFuYWx5c2lzTGlzdDogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcImJwbS9Qcm9qZWN0R2V0QW5hbHlzaXNMaXN0XCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhO1xyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJQcm9qZWN0R2V0QW5hbHlzaXNMaXN0XCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGFkZGNsYXNzYXR0cjogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIndvcmtzcGFjZS9hZGRjbGFzc2F0dHJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImFkZGNsYXNzYXR0clwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpKU09OLnN0cmluZ2lmeShyZXQpfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBzdG9yZVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 96));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 101));\nvar _app = _interopRequireDefault(__webpack_require__(/*! ./modules/app */ 102));\n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n modules: {\n app: _app.default\n },\n state: {\n hasLogin: false,\n loginProvider: \"\",\n areaFunc: '',\n thisareaFuncID: '',\n thisareaFuncSubID: '',\n thisEditName: '',\n thisEditSubName: '',\n thisDictName: '',\n _classAttrList: {},\n _classGridStyleInfo: {},\n _subClassAttrList: {},\n _subClassGridStyleInfo: {},\n _dicValueInfo: {},\n DataObjRunCustomEventInfo: '',\n querySelpsn: '',\n ProjectGetAnalysisList: '',\n addclassattr: '',\n DelObj: '',\n username: \"sa\",\n userpwd: \"0000\",\n url: \"115.29.185.26:5000\" //192.168.1.184:5200 36.33.24.94:5200\n },\n\n mutations: {\n setUrl: function setUrl(state, url) {\n state.url = url;\n },\n login: function login(state, provider) {\n state.hasLogin = true;\n state.loginProvider = provider;\n },\n areaFunc: function areaFunc(state, ret) {\n state.areaFunc = ret;\n },\n setareaFuncid: function setareaFuncid(state, id) {\n state.thisareaFuncID = id;\n },\n setareaFunSubcid: function setareaFunSubcid(state, id) {\n state.thisareaFuncSubID = id;\n },\n seteditName: function seteditName(state, editName) {\n state.thisEditName = editName;\n },\n seteditSubName: function seteditSubName(state, editName) {\n state.thisEditSubName = editName;\n },\n setDictName: function setDictName(state, dictName) {\n state.thisDictName = dictName;\n },\n classAttrList: function classAttrList(state, ret) {\n // state._classAttrList[state.thisareaFuncID] = ret;\n _vue.default.set(state._classAttrList, state.thisareaFuncID, ret);\n },\n classGridStyleInfo: function classGridStyleInfo(state, ret) {\n // state._classGridStyleInfo[state.thisareaFuncID] = ret;\n var data = {};\n if (state._classGridStyleInfo[state.thisareaFuncID]) data = state._classGridStyleInfo[state.thisareaFuncID];\n _vue.default.set(data, state.thisEditName, ret);\n _vue.default.set(state._classGridStyleInfo, state.thisareaFuncID, data);\n },\n subClassAttrList: function subClassAttrList(state, ret) {\n _vue.default.set(state._subClassAttrList, state.thisareaFuncSubID, ret);\n },\n subClassGridStyleInfo: function subClassGridStyleInfo(state, ret) {\n var data = {};\n if (state._subClassGridStyleInfo[state.thisareaFuncSubID]) data = state._subClassGridStyleInfo[state.thisareaFuncSubID];\n _vue.default.set(data, state.thisEditSubName, ret);\n _vue.default.set(state._subClassGridStyleInfo, state.thisareaFuncSubID, data);\n },\n dicValueInfo: function dicValueInfo(state, ret) {\n // state._dicValueInfo[state.thisareaFuncID] = ret;\n _vue.default.set(state._dicValueInfo, state.thisDictName, ret);\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(state, ret) {\n state.DataObjRunCustomEventInfo = ret;\n },\n querySelpsn: function querySelpsn(state, ret) {\n state.querySelpsn = ret;\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(state, ret) {\n state.ProjectGetAnalysisList = ret;\n },\n addclassattr: function addclassattr(state, ret) {\n state.addclassattr = ret;\n },\n DelObj: function DelObj(state, ret) {\n state.DelObj = ret;\n },\n logout: function logout(state) {\n state.hasLogin = false;\n }\n },\n getters: {\n loginid: function loginid(state) {\n return state.loginProvider.loginid;\n },\n getUrl: function getUrl(state) {\n return state.url;\n },\n getclassAttrList: function getclassAttrList(state) {\n return state._classAttrList[state.thisareaFuncID];\n },\n getclassGridStyleInfo: function getclassGridStyleInfo(state) {\n if (state._classGridStyleInfo[state.thisareaFuncID]) return state._classGridStyleInfo[state.thisareaFuncID][state.thisEditName];else return \"\";\n },\n getSubClassAttrList: function getSubClassAttrList(state) {\n return state._subClassAttrList[state.thisareaFuncSubID];\n },\n getSubClassGridStyleInfo: function getSubClassGridStyleInfo(state) {\n if (state._subClassGridStyleInfo[state.thisareaFuncSubID]) return state._subClassGridStyleInfo[state.thisareaFuncSubID][state.thisEditSubName];else return \"\";\n },\n getdicValueInfo: function getdicValueInfo(state) {\n return state._dicValueInfo[state.thisDictName];\n }\n },\n actions: {\n //{commit} 瑙f瀯锛孿n //univerifyInfo 鑷畾涔夊弬鏁癨n login: function login(_ref, univerifyInfo) {\n var commit = _ref.commit,\n state = _ref.state;\n return new Promise(function (resolve, reject) {\n univerifyInfo = univerifyInfo || {};\n univerifyInfo.server = univerifyInfo.server || '';\n univerifyInfo.uname = univerifyInfo.uname || '';\n univerifyInfo.pwd = univerifyInfo.pwd || '';\n // console.log(univerifyInfo);\n if (univerifyInfo.server.length == 0) {\n reject({\n \"errMsg\": '鏈嶅姟鍣ㄥ湴鍧�笉鑳戒负绌�'\n });\n }\n if (univerifyInfo.uname.length < 2) {\n reject({\n \"errMsg\": '璐﹀彿鏈�煭涓�2 涓瓧绗�'\n });\n }\n if (univerifyInfo.pwd.length < 1) {\n reject({\n \"errMsg\": '瀵嗙爜鏈�煭涓�1涓瓧绗�'\n });\n }\n var openinfo = \"http://\" + univerifyInfo.server + \"/\"; //+\"/OrgWebS\"\n //璁剧疆鍏ㄥ眬鍙傛暟锛歶rl-鏈嶅姟鍣ㄥ湴鍧�n commit(\"setUrl\", openinfo);\n\n // if (univerifyInfo.server.split(':').length < 2)\n // \tcgi = \"http://\" + univerifyInfo.server + \":5010\"; ///OrgWebS\n\n // setTimeout(_=>{\n // \tresolve(\"00000000000\")\n // },3000)\n // console.log(openinfo + \"PDA/SignIn\");\n uni.request({\n url: openinfo + \"PDA/SignIn\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res); \n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"login\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:187\");\n reject(err);\n }\n });\n });\n },\n areaFunc: function areaFunc(_ref2, univerifyInfo) {\n var commit = _ref2.commit,\n state = _ref2.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAArea\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"areaFunc\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n classAttrList: function classAttrList(_ref3, univerifyInfo) {\n var commit = _ref3.commit,\n state = _ref3.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:243\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"classAttrList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n classGridStyleInfo: function classGridStyleInfo(_ref4, univerifyInfo) {\n var commit = _ref4.commit,\n state = _ref4.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:276\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"classGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n subClassAttrList: function subClassAttrList(_ref5, univerifyInfo) {\n var commit = _ref5.commit,\n state = _ref5.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAAttrList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:311\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"subClassAttrList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n subClassGridStyleInfo: function subClassGridStyleInfo(_ref6, univerifyInfo) {\n var commit = _ref6.commit,\n state = _ref6.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDAGridStyleGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:344\");\n var ret = res.data;\n if (ret.code == '00000') {\n // var data ={};\n // Vue.set(data,univerifyInfo.name,ret);\n commit(\"subClassGridStyleInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n // console.log(err);\n reject(err);\n }\n });\n });\n },\n dicValueInfo: function dicValueInfo(_ref7, univerifyInfo) {\n var commit = _ref7.commit,\n state = _ref7.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n\n uni.request({\n url: state.url + \"PDA/PDADicValueGetInfo\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = res.data;\n if (ret.code == '00000') {\n state.thisDictName = univerifyInfo.dic_name;\n commit(\"dicValueInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:390\");\n reject(err);\n }\n });\n });\n },\n DataObjRunCustomEventInfo: function DataObjRunCustomEventInfo(_ref8, univerifyInfo) {\n var commit = _ref8.commit,\n state = _ref8.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"PDA/PDADataObjRunCustomEvent\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:412\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"DataObjRunCustomEventInfo\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:422\");\n reject(err);\n }\n });\n });\n },\n querySelpsn: function querySelpsn(_ref9, univerifyInfo) {\n var commit = _ref9.commit,\n state = _ref9.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"selpsn/queryjson\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n // console.log(res);\n var ret = JSON.parse(res.data);\n if (ret.code == '00000') {\n commit(\"querySelpsn\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:454\");\n reject(err);\n }\n });\n });\n },\n ProjectGetAnalysisList: function ProjectGetAnalysisList(_ref10, univerifyInfo) {\n var commit = _ref10.commit,\n state = _ref10.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"bpm/ProjectGetAnalysisList\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:476\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"ProjectGetAnalysisList\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": ret.msg\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:486\");\n reject(err);\n }\n });\n });\n },\n addclassattr: function addclassattr(_ref11, univerifyInfo) {\n var commit = _ref11.commit,\n state = _ref11.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"workspace/addclassattr\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:508\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"addclassattr\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": JSON.stringify(ret)\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:518\");\n reject(err);\n }\n });\n });\n },\n DelObj: function DelObj(_ref12, univerifyInfo) {\n var commit = _ref12.commit,\n state = _ref12.state;\n return new Promise(function (resolve, reject) {\n // console.log(state.url);\n uni.request({\n url: state.url + \"PDA/DelObj\",\n data: univerifyInfo,\n method: 'POST',\n dataType: \"json\",\n header: {\n 'content-type': 'application/x-www-form-urlencoded'\n },\n success: function success(res) {\n __f__(\"log\", res, \" at store/index.js:540\");\n var ret = res.data;\n if (ret.code == '00000') {\n commit(\"DelObj\", ret);\n resolve(ret);\n } else {\n reject({\n \"errMsg\": JSON.stringify(ret)\n });\n }\n },\n fail: function fail(err) {\n __f__(\"log\", err, \" at store/index.js:550\");\n reject(err);\n }\n });\n });\n }\n }\n});\nvar _default = store;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 18)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJtb2R1bGVzIiwiYXBwIiwic3RhdGUiLCJoYXNMb2dpbiIsImxvZ2luUHJvdmlkZXIiLCJhcmVhRnVuYyIsInRoaXNhcmVhRnVuY0lEIiwidGhpc2FyZWFGdW5jU3ViSUQiLCJ0aGlzRWRpdE5hbWUiLCJ0aGlzRWRpdFN1Yk5hbWUiLCJ0aGlzRGljdE5hbWUiLCJfY2xhc3NBdHRyTGlzdCIsIl9jbGFzc0dyaWRTdHlsZUluZm8iLCJfc3ViQ2xhc3NBdHRyTGlzdCIsIl9zdWJDbGFzc0dyaWRTdHlsZUluZm8iLCJfZGljVmFsdWVJbmZvIiwiRGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbyIsInF1ZXJ5U2VscHNuIiwiUHJvamVjdEdldEFuYWx5c2lzTGlzdCIsImFkZGNsYXNzYXR0ciIsIkRlbE9iaiIsInVzZXJuYW1lIiwidXNlcnB3ZCIsInVybCIsIm11dGF0aW9ucyIsInNldFVybCIsImxvZ2luIiwicHJvdmlkZXIiLCJyZXQiLCJzZXRhcmVhRnVuY2lkIiwiaWQiLCJzZXRhcmVhRnVuU3ViY2lkIiwic2V0ZWRpdE5hbWUiLCJlZGl0TmFtZSIsInNldGVkaXRTdWJOYW1lIiwic2V0RGljdE5hbWUiLCJkaWN0TmFtZSIsImNsYXNzQXR0ckxpc3QiLCJzZXQiLCJjbGFzc0dyaWRTdHlsZUluZm8iLCJkYXRhIiwic3ViQ2xhc3NBdHRyTGlzdCIsInN1YkNsYXNzR3JpZFN0eWxlSW5mbyIsImRpY1ZhbHVlSW5mbyIsImxvZ291dCIsImdldHRlcnMiLCJsb2dpbmlkIiwiZ2V0VXJsIiwiZ2V0Y2xhc3NBdHRyTGlzdCIsImdldGNsYXNzR3JpZFN0eWxlSW5mbyIsImdldFN1YkNsYXNzQXR0ckxpc3QiLCJnZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8iLCJnZXRkaWNWYWx1ZUluZm8iLCJhY3Rpb25zIiwidW5pdmVyaWZ5SW5mbyIsImNvbW1pdCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2VydmVyIiwidW5hbWUiLCJwd2QiLCJsZW5ndGgiLCJvcGVuaW5mbyIsInVuaSIsInJlcXVlc3QiLCJtZXRob2QiLCJkYXRhVHlwZSIsImhlYWRlciIsInN1Y2Nlc3MiLCJyZXMiLCJjb2RlIiwibXNnIiwiZmFpbCIsImVyciIsImRpY19uYW1lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUdBO0FBRkFBLFlBQUcsQ0FBQ0MsR0FBRyxDQUFDQyxhQUFJLENBQUM7QUFHYixJQUFNQyxLQUFLLEdBQUcsSUFBSUQsYUFBSSxDQUFDRSxLQUFLLENBQUM7RUFDNUJDLE9BQU8sRUFBQztJQUNQQyxHQUFHLEVBQUhBO0VBQ0QsQ0FBQztFQUNEQyxLQUFLLEVBQUU7SUFDTkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsYUFBYSxFQUFFLEVBQUU7SUFDakJDLFFBQVEsRUFBQyxFQUFFO0lBQ1hDLGNBQWMsRUFBQyxFQUFFO0lBQ2pCQyxpQkFBaUIsRUFBQyxFQUFFO0lBQ3BCQyxZQUFZLEVBQUMsRUFBRTtJQUNmQyxlQUFlLEVBQUMsRUFBRTtJQUNsQkMsWUFBWSxFQUFDLEVBQUU7SUFDZkMsY0FBYyxFQUFDLENBQUMsQ0FBQztJQUNqQkMsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDO0lBQ3RCQyxpQkFBaUIsRUFBQyxDQUFDLENBQUM7SUFDcEJDLHNCQUFzQixFQUFDLENBQUMsQ0FBQztJQUN6QkMsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUNoQkMseUJBQXlCLEVBQUMsRUFBRTtJQUM1QkMsV0FBVyxFQUFDLEVBQUU7SUFDZEMsc0JBQXNCLEVBQUMsRUFBRTtJQUN6QkMsWUFBWSxFQUFDLEVBQUU7SUFDZkMsTUFBTSxFQUFDLEVBQUU7SUFDVEMsUUFBUSxFQUFDLElBQUk7SUFDYkMsT0FBTyxFQUFDLE1BQU07SUFDZEMsR0FBRyxFQUFDLG9CQUFvQixDQUFDO0VBQzFCLENBQUM7O0VBQ0RDLFNB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QUU7WUFDUCxjQUFjLEVBQUU7VUFDakIsQ0FBQztVQUNEQyxPQUFPLEVBQUUsaUJBQUNDLEdBQUcsRUFBSztZQUNqQixhQUFZQSxHQUFHO1lBQ2YsSUFBTTFDLEdBQUcsR0FBRzBDLEdBQUcsQ0FBQzlCLElBQUk7WUFDcEIsSUFBSVosR0FBRyxDQUFDMkMsSUFBSSxJQUFFLE9BQU8sRUFBRTtjQUN0QmhCLE1BQU0sQ0FBQyxRQUFRLEVBQUMzQixHQUFHLENBQUM7Y0FDcEI2QixPQUFPLENBQUM3QixHQUFHLENBQUM7WUFDYixDQUFDLE1BQU07Y0FDTjhCLE1BQU0sQ0FBQztnQkFBQyxRQUFRLEVBQUNrQixJQUFJLENBQUNFLFNBQVMsQ0FBQ2xELEdBQUc7Y0FBQyxDQUFDLENBQUM7WUFDdkM7VUFDRCxDQUFDO1VBQ0Q2QyxJQUFJLEVBQUUsY0FBQ0MsR0FBRyxFQUFLO1lBQ2QsYUFBWUEsR0FBRztZQUNmaEIsTUFBTSxDQUFDZ0IsR0FBRyxDQUFDO1VBQ1o7UUFDRCxDQUFDLENBQUM7TUFDSCxDQUFDLENBQUM7SUFDSDtFQUVEO0FBQ0QsQ0FBQyxDQUFDO0FBQUEsZUFFYTVFLEtBQUs7QUFBQSwyQiIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuaW1wb3J0IFZ1ZXggZnJvbSAndnVleCdcclxuVnVlLnVzZShWdWV4KVxyXG5cclxuaW1wb3J0IGFwcCBmcm9tICcuL21vZHVsZXMvYXBwJ1xyXG5jb25zdCBzdG9yZSA9IG5ldyBWdWV4LlN0b3JlKHtcclxuXHRtb2R1bGVzOntcclxuXHRcdGFwcCxcclxuXHR9LFxyXG5cdHN0YXRlOiB7XHJcblx0XHRoYXNMb2dpbjogZmFsc2UsXHJcblx0XHRsb2dpblByb3ZpZGVyOiBcIlwiLFxyXG5cdFx0YXJlYUZ1bmM6JycsXHJcblx0XHR0aGlzYXJlYUZ1bmNJRDonJyxcclxuXHRcdHRoaXNhcmVhRnVuY1N1YklEOicnLFxyXG5cdFx0dGhpc0VkaXROYW1lOicnLFxyXG5cdFx0dGhpc0VkaXRTdWJOYW1lOicnLFxyXG5cdFx0dGhpc0RpY3ROYW1lOicnLFxyXG5cdFx0X2NsYXNzQXR0ckxpc3Q6e30sXHJcblx0XHRfY2xhc3NHcmlkU3R5bGVJbmZvOnt9LFxyXG5cdFx0X3N1YkNsYXNzQXR0ckxpc3Q6e30sXHJcblx0XHRfc3ViQ2xhc3NHcmlkU3R5bGVJbmZvOnt9LFxyXG5cdFx0X2RpY1ZhbHVlSW5mbzp7fSxcclxuXHRcdERhdGFPYmpSdW5DdXN0b21FdmVudEluZm86JycsXHJcblx0XHRxdWVyeVNlbHBzbjonJyxcclxuXHRcdFByb2plY3RHZXRBbmFseXNpc0xpc3Q6JycsXHJcblx0XHRhZGRjbGFzc2F0dHI6JycsXHJcblx0XHREZWxPYmo6JycsXHJcblx0XHR1c2VybmFtZTpcInNhXCIsXHJcblx0XHR1c2VycHdkOlwiMDAwMFwiLFxyXG5cdFx0dXJsOlwiMTE1LjI5LjE4NS4yNjo1MDAwXCIgLy8xOTIuMTY4LjEuMTg0OjUyMDAgMzYuMzMuMjQuOTQ6NTIwMFxyXG5cdH0sXHJcblx0bXV0YXRpb25zOiB7XHJcblx0XHRzZXRVcmwoc3RhdGUsIHVybCkge1xyXG5cdFx0XHRzdGF0ZS51cmwgPSB1cmw7XHJcblx0XHR9LFxyXG5cdFx0bG9naW4oc3RhdGUsIHByb3ZpZGVyKSB7XHJcblx0XHRcdHN0YXRlLmhhc0xvZ2luID0gdHJ1ZTtcclxuXHRcdFx0c3RhdGUubG9naW5Qcm92aWRlciA9IHByb3ZpZGVyO1xyXG5cdFx0fSxcclxuXHRcdGFyZWFGdW5jKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuYXJlYUZ1bmMgPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0c2V0YXJlYUZ1bmNpZChzdGF0ZSxpZCl7XHJcblx0XHRcdHN0YXRlLnRoaXNhcmVhRnVuY0lEPWlkO1xyXG5cdFx0fSxcclxuXHRcdHNldGFyZWFGdW5TdWJjaWQoc3RhdGUsaWQpe1xyXG5cdFx0XHRzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRD1pZDtcclxuXHRcdH0sXHJcblx0XHRzZXRlZGl0TmFtZShzdGF0ZSxlZGl0TmFtZSl7XHJcblx0XHRcdHN0YXRlLnRoaXNFZGl0TmFtZT1lZGl0TmFtZTtcclxuXHRcdH0sXHJcblx0XHRzZXRlZGl0U3ViTmFtZShzdGF0ZSxlZGl0TmFtZSl7XHJcblx0XHRcdHN0YXRlLnRoaXNFZGl0U3ViTmFtZT1lZGl0TmFtZTtcclxuXHRcdH0sXHJcblx0XHRzZXREaWN0TmFtZShzdGF0ZSxkaWN0TmFtZSl7XHJcblx0XHRcdHN0YXRlLnRoaXNEaWN0TmFtZT1kaWN0TmFtZTtcclxuXHRcdH0sXHJcblx0XHRjbGFzc0F0dHJMaXN0KHN0YXRlLCByZXQpIHtcclxuXHRcdFx0Ly8gc3RhdGUuX2NsYXNzQXR0ckxpc3Rbc3RhdGUudGhpc2FyZWFGdW5jSURdID0gcmV0O1xyXG5cdFx0XHRWdWUuc2V0KHN0YXRlLl9jbGFzc0F0dHJMaXN0LHN0YXRlLnRoaXNhcmVhRnVuY0lELHJldCk7XHJcblx0XHR9LFxyXG5cdFx0Y2xhc3NHcmlkU3R5bGVJbmZvKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0Ly8gc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF0gPSByZXQ7XHJcblx0XHRcdHZhciBkYXRhID0ge307XHJcblx0XHRcdGlmKHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdKVxyXG5cdFx0XHRcdGRhdGEgPSBzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXTtcclxuXHRcdFx0VnVlLnNldChkYXRhLHN0YXRlLnRoaXNFZGl0TmFtZSxyZXQpO1xyXG5cdFx0XHRWdWUuc2V0KHN0YXRlLl9jbGFzc0dyaWRTdHlsZUluZm8sc3RhdGUudGhpc2FyZWFGdW5jSUQsZGF0YSk7XHJcblx0XHR9LFxyXG5cdFx0c3ViQ2xhc3NBdHRyTGlzdChzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdFZ1ZS5zZXQoc3RhdGUuX3N1YkNsYXNzQXR0ckxpc3Qsc3RhdGUudGhpc2FyZWFGdW5jU3ViSUQscmV0KTtcclxuXHRcdH0sXHJcblx0XHRzdWJDbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUsIHJldCkge1xyXG5cdFx0XHR2YXIgZGF0YSA9IHt9O1xyXG5cdFx0XHRpZihzdGF0ZS5fc3ViQ2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY1N1YklEXSlcclxuXHRcdFx0XHRkYXRhID0gc3RhdGUuX3N1YkNsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRF07XHJcblx0XHRcdFZ1ZS5zZXQoZGF0YSxzdGF0ZS50aGlzRWRpdFN1Yk5hbWUscmV0KTtcclxuXHRcdFx0VnVlLnNldChzdGF0ZS5fc3ViQ2xhc3NHcmlkU3R5bGVJbmZvLHN0YXRlLnRoaXNhcmVhRnVuY1N1YklELGRhdGEpO1xyXG5cdFx0fSxcclxuXHRcdGRpY1ZhbHVlSW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdC8vIHN0YXRlLl9kaWNWYWx1ZUluZm9bc3RhdGUudGhpc2FyZWFGdW5jSURdID0gcmV0O1xyXG5cdFx0XHRWdWUuc2V0KHN0YXRlLl9kaWNWYWx1ZUluZm8sc3RhdGUudGhpc0RpY3ROYW1lLHJldCk7XHJcblx0XHR9LFxyXG5cdFx0RGF0YU9ialJ1bkN1c3RvbUV2ZW50SW5mbyhzdGF0ZSwgcmV0KSB7XHJcblx0XHRcdHN0YXRlLkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm8gPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0cXVlcnlTZWxwc24oc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5xdWVyeVNlbHBzbiA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRQcm9qZWN0R2V0QW5hbHlzaXNMaXN0KHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuUHJvamVjdEdldEFuYWx5c2lzTGlzdCA9IHJldDtcclxuXHRcdH0sXHJcblx0XHRhZGRjbGFzc2F0dHIoc3RhdGUsIHJldCkge1xyXG5cdFx0XHRzdGF0ZS5hZGRjbGFzc2F0dHIgPSByZXQ7XHJcblx0XHR9LFxyXG5cdFx0RGVsT2JqKHN0YXRlLCByZXQpIHtcclxuXHRcdFx0c3RhdGUuRGVsT2JqID0gcmV0O1xyXG5cdFx0fSxcclxuXHRcdGxvZ291dChzdGF0ZSkge1xyXG5cdFx0XHRzdGF0ZS5oYXNMb2dpbiA9IGZhbHNlXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0Z2V0dGVyczoge1xyXG5cdFx0bG9naW5pZChzdGF0ZSkge1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUubG9naW5Qcm92aWRlci5sb2dpbmlkXHJcblx0XHR9LFxyXG5cdFx0Z2V0VXJsKHN0YXRlKSB7XHJcblx0XHRcdHJldHVybiBzdGF0ZS51cmxcclxuXHRcdH0sXHJcblx0XHRnZXRjbGFzc0F0dHJMaXN0KHN0YXRlKXtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLl9jbGFzc0F0dHJMaXN0W3N0YXRlLnRoaXNhcmVhRnVuY0lEXTtcclxuXHRcdH0sXHJcblx0XHRnZXRjbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUpe1xyXG5cdFx0XHRpZihzdGF0ZS5fY2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY0lEXSlcclxuXHRcdFx0XHRyZXR1cm4gc3RhdGUuX2NsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNJRF1bc3RhdGUudGhpc0VkaXROYW1lXTtcclxuXHRcdFx0ZWxzZSBcclxuXHRcdFx0XHRyZXR1cm4gXCJcIjtcclxuXHRcdH0sXHJcblx0XHRnZXRTdWJDbGFzc0F0dHJMaXN0KHN0YXRlKXtcclxuXHRcdFx0cmV0dXJuIHN0YXRlLl9zdWJDbGFzc0F0dHJMaXN0W3N0YXRlLnRoaXNhcmVhRnVuY1N1YklEXTtcclxuXHRcdH0sXHJcblx0XHRnZXRTdWJDbGFzc0dyaWRTdHlsZUluZm8oc3RhdGUpe1xyXG5cdFx0XHRpZihzdGF0ZS5fc3ViQ2xhc3NHcmlkU3R5bGVJbmZvW3N0YXRlLnRoaXNhcmVhRnVuY1N1YklEXSlcclxuXHRcdFx0XHRyZXR1cm4gc3RhdGUuX3N1YkNsYXNzR3JpZFN0eWxlSW5mb1tzdGF0ZS50aGlzYXJlYUZ1bmNTdWJJRF1bc3RhdGUudGhpc0VkaXRTdWJOYW1lXTtcclxuXHRcdFx0ZWxzZSBcclxuXHRcdFx0XHRyZXR1cm4gXCJcIjtcclxuXHRcdH0sXHJcblx0XHRnZXRkaWNWYWx1ZUluZm8oc3RhdGUpe1xyXG5cdFx0XHRyZXR1cm4gc3RhdGUuX2RpY1ZhbHVlSW5mb1tzdGF0ZS50aGlzRGljdE5hbWVdO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRcclxuXHR9LFxyXG5cdGFjdGlvbnM6IHtcclxuXHRcdC8ve2NvbW1pdH0g6Kej5p6E77yMXHJcblx0XHQvL3VuaXZlcmlmeUluZm8g6Ieq5a6a5LmJ5Y+C5pWwXHJcblx0XHRsb2dpbjogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mbyA9IHVuaXZlcmlmeUluZm8gfHwge307XHJcblx0XHRcdFx0dW5pdmVyaWZ5SW5mby5zZXJ2ZXIgPSB1bml2ZXJpZnlJbmZvLnNlcnZlciB8fCAnJztcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvLnVuYW1lID0gdW5pdmVyaWZ5SW5mby51bmFtZSB8fCAnJztcclxuXHRcdFx0XHR1bml2ZXJpZnlJbmZvLnB3ZCA9IHVuaXZlcmlmeUluZm8ucHdkIHx8ICcnO1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHVuaXZlcmlmeUluZm8pO1xyXG5cdFx0XHRcdGlmICh1bml2ZXJpZnlJbmZvLnNlcnZlci5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOifmnI3liqHlmajlnLDlnYDkuI3og73kuLrnqbohJ30pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodW5pdmVyaWZ5SW5mby51bmFtZS5sZW5ndGggPCAyKSB7XHJcblx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6J+i0puWPt+acgOefreS4uiAyIOS4quWtl+espiEnfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh1bml2ZXJpZnlJbmZvLnB3ZC5sZW5ndGggPCAxKSB7XHJcblx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6J+WvhueggeacgOefreS4uiAx5Liq5a2X56ymISd9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIG9wZW5pbmZvID0gXCJodHRwOi8vXCIgKyB1bml2ZXJpZnlJbmZvLnNlcnZlciArIFwiL1wiOyAvLytcIi9PcmdXZWJTXCJcclxuXHRcdFx0XHQvL+iuvue9ruWFqOWxgOWPguaVsO+8mnVybC3mnI3liqHlmajlnLDlnYBcclxuXHRcdFx0XHRjb21taXQoXCJzZXRVcmxcIixvcGVuaW5mbyk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gaWYgKHVuaXZlcmlmeUluZm8uc2VydmVyLnNwbGl0KCc6JykubGVuZ3RoIDwgMilcclxuXHRcdFx0XHQvLyBcdGNnaSA9IFwiaHR0cDovL1wiICsgdW5pdmVyaWZ5SW5mby5zZXJ2ZXIgKyBcIjo1MDEwXCI7IC8vL09yZ1dlYlNcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyBzZXRUaW1lb3V0KF89PntcclxuXHRcdFx0XHQvLyBcdHJlc29sdmUoXCIwMDAwMDAwMDAwMFwiKVxyXG5cdFx0XHRcdC8vIH0sMzAwMClcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhvcGVuaW5mbyArIFwiUERBL1NpZ25JblwiKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IG9wZW5pbmZvICsgXCJQREEvU2lnbkluXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0ICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzKTsgXHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImxvZ2luXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGFyZWFGdW5jOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHQgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFBcmVhXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcImFyZWFGdW5jXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdGNsYXNzQXR0ckxpc3Q6IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBQXR0ckxpc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiY2xhc3NBdHRyTGlzdFwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRjbGFzc0dyaWRTdHlsZUluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQUdyaWRTdHlsZUdldEluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdmFyIGRhdGEgPXt9O1xyXG5cdFx0XHRcdFx0XHRcdC8vIFZ1ZS5zZXQoZGF0YSx1bml2ZXJpZnlJbmZvLm5hbWUscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJjbGFzc0dyaWRTdHlsZUluZm9cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0c3ViQ2xhc3NBdHRyTGlzdDogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9QREFBdHRyTGlzdFwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJzdWJDbGFzc0F0dHJMaXN0XCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdHN1YkNsYXNzR3JpZFN0eWxlSW5mbzogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0IFxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBR3JpZFN0eWxlR2V0SW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyB2YXIgZGF0YSA9e307XHJcblx0XHRcdFx0XHRcdFx0Ly8gVnVlLnNldChkYXRhLHVuaXZlcmlmeUluZm8ubmFtZSxyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcInN1YkNsYXNzR3JpZFN0eWxlSW5mb1wiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRkaWNWYWx1ZUluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdCBcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiUERBL1BEQURpY1ZhbHVlR2V0SW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZS50aGlzRGljdE5hbWUgPSB1bml2ZXJpZnlJbmZvLmRpY19uYW1lXHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiZGljVmFsdWVJbmZvXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOnJldC5tc2d9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdERhdGFPYmpSdW5DdXN0b21FdmVudEluZm86IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJQREEvUERBRGF0YU9ialJ1bkN1c3RvbUV2ZW50XCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcIkRhdGFPYmpSdW5DdXN0b21FdmVudEluZm9cIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0cXVlcnlTZWxwc246IGZ1bmN0aW9uKHtcclxuXHRcdFx0Y29tbWl0LFxyXG5cdFx0XHRzdGF0ZVxyXG5cdFx0fSwgdW5pdmVyaWZ5SW5mbykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdCAvLyBjb25zb2xlLmxvZyhzdGF0ZS51cmwpO1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogc3RhdGUudXJsICsgXCJzZWxwc24vcXVlcnlqc29uXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB1bml2ZXJpZnlJbmZvLFxyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTpcImpzb25cIixcclxuXHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcyk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHJldCA9IEpTT04ucGFyc2UocmVzLmRhdGEpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmV0LmNvZGU9PScwMDAwMCcpIHtcclxuXHRcdFx0XHRcdFx0XHRjb21taXQoXCJxdWVyeVNlbHBzblwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpyZXQubXNnfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRQcm9qZWN0R2V0QW5hbHlzaXNMaXN0OiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwiYnBtL1Byb2plY3RHZXRBbmFseXNpc0xpc3RcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcIlByb2plY3RHZXRBbmFseXNpc0xpc3RcIixyZXQpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmV0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZWplY3Qoe1wiZXJyTXNnXCI6cmV0Lm1zZ30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIpO1xyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdFxyXG5cdFx0YWRkY2xhc3NhdHRyOiBmdW5jdGlvbih7XHJcblx0XHRcdGNvbW1pdCxcclxuXHRcdFx0c3RhdGVcclxuXHRcdH0sIHVuaXZlcmlmeUluZm8pIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQgLy8gY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHN0YXRlLnVybCArIFwid29ya3NwYWNlL2FkZGNsYXNzYXR0clwiLFxyXG5cdFx0XHRcdFx0ZGF0YTogdW5pdmVyaWZ5SW5mbyxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6XCJqc29uXCIsXHJcblx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCByZXQgPSByZXMuZGF0YTtcclxuXHRcdFx0XHRcdFx0aWYgKHJldC5jb2RlPT0nMDAwMDAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29tbWl0KFwiYWRkY2xhc3NhdHRyXCIscmV0KTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJldCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmVqZWN0KHtcImVyck1zZ1wiOkpTT04uc3RyaW5naWZ5KHJldCl9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKTtcclxuXHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRcclxuXHRcdERlbE9iajogZnVuY3Rpb24oe1xyXG5cdFx0XHRjb21taXQsXHJcblx0XHRcdHN0YXRlXHJcblx0XHR9LCB1bml2ZXJpZnlJbmZvKSB7XHJcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0IC8vIGNvbnNvbGUubG9nKHN0YXRlLnVybCk7XHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBzdGF0ZS51cmwgKyBcIlBEQS9EZWxPYmpcIixcclxuXHRcdFx0XHRcdGRhdGE6IHVuaXZlcmlmeUluZm8sXHJcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0XHRcdGRhdGFUeXBlOlwianNvblwiLFxyXG5cdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcmV0ID0gcmVzLmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXQuY29kZT09JzAwMDAwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvbW1pdChcIkRlbE9ialwiLHJldCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXQpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJlamVjdCh7XCJlcnJNc2dcIjpKU09OLnN0cmluZ2lmeShyZXQpfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycik7XHJcblx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBzdG9yZVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ -- Gitblit v1.9.1