Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
U
uni-app-ddh-shop
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhanhai
uni-app-ddh-shop
Commits
f1c3a12a
Commit
f1c3a12a
authored
Sep 27, 2024
by
ly
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d
parent
42d509b0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
8 deletions
+10
-8
upgradePopup.vue
components/showModal/upgradePopup.vue
+3
-3
app-service.js
unpackage/dist/dev/app-plus/app-service.js
+7
-5
No files found.
components/showModal/upgradePopup.vue
View file @
f1c3a12a
...
...
@@ -26,8 +26,8 @@
<view
v-if=
"updateButtonBoolean"
class=
"update-button"
>
<button
class=
"not-updated-button"
:disabled=
"noUpdatedDisabled"
v-show=
"appUpgeadeObj.forceUpdate == false"
type=
"warn"
@
tap
.
stop=
"noUpdate"
>
暂不更新
</button>
<button
v-show=
'appUpgeadeObj.type == "ANDROID"'
class=
"updated-button"
type=
"warn"
@
tap
.
stop=
"upgradeNowAndroid"
>
立即升级
</button>
<button
v-show=
'appUpgeadeObj.type == "IOS"'
class=
"updated-button"
type=
"warn"
@
tap
.
stop=
"upgradeNow"
>
立即升级
</button>
<button
v-show=
'appUpgeadeObj.type == "ANDROID"
|| appUpgeadeObj.type == "WGT"
'
class=
"updated-button"
type=
"warn"
@
tap
.
stop=
"upgradeNowAndroid"
>
立即升级
</button>
<button
v-show=
'appUpgeadeObj.type == "IOS"
|| appUpgeadeObj.type == "WGT"
'
class=
"updated-button"
type=
"warn"
@
tap
.
stop=
"upgradeNow"
>
立即升级
</button>
</view>
<!-- v-if="progressBolean" -->
<!--
{{
progressBolean
}}
-->
...
...
@@ -106,7 +106,7 @@
that
.
isWGT
=
that
.
appUpgeadeObj
.
type
==
'wgt'
const
index
=
that
.
appUpgeadeObj
.
downloadUrl
.
indexOf
(
'apps.apple.com'
)
console
.
log
(
that
.
isWGT
,
'that.isWGT3333'
)
if
(
that
.
isWGT
!
=
true
){
if
(
that
.
isWGT
=
=
true
){
that
.
updateWgt
(
that
.
appUpgeadeObj
.
downloadUrl
,
that
.
appUpgeadeObj
.
downloadUrl
.
versionName
)
}
else
{
if
(
platform
==
'ios'
&&
index
!==
-
1
)
return
plus
.
runtime
.
openURL
(
that
.
appUpgeadeObj
.
downloadUrl
);
...
...
unpackage/dist/dev/app-plus/app-service.js
View file @
f1c3a12a
...
...
@@ -27841,10 +27841,11 @@ var render = function () {
value: _vm._$s(
16,
"v-show",
_vm.appUpgeadeObj.type == "ANDROID"
_vm.appUpgeadeObj.type == "ANDROID" ||
_vm.appUpgeadeObj.type == "WGT"
),
expression:
"_$s(16,'v-show',appUpgeadeObj.type == \"ANDROID\")"
,
'_$s(16,\'v-show\',appUpgeadeObj.type == "ANDROID" || appUpgeadeObj.type == "WGT")'
,
},
],
staticClass: _vm._$s(16, "sc", "updated-button"),
...
...
@@ -27864,10 +27865,11 @@ var render = function () {
value: _vm._$s(
17,
"v-show",
_vm.appUpgeadeObj.type == "IOS"
_vm.appUpgeadeObj.type == "IOS" ||
_vm.appUpgeadeObj.type == "WGT"
),
expression:
"_$s(17,'v-show',appUpgeadeObj.type == \"IOS\")"
,
'_$s(17,\'v-show\',appUpgeadeObj.type == "IOS" || appUpgeadeObj.type == "WGT")'
,
},
],
staticClass: _vm._$s(17, "sc", "updated-button"),
...
...
@@ -28221,7 +28223,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App
/***/ (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//\nvar _default2 = {\n props: {\n appUpgeadeObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n }\n },\n components: {},\n data: function data() {\n return {\n popupShow: false,\n updateButtonBoolean: true,\n // 按钮的显示和隐藏\n // 进度条数据\n progressData: {\n percent: 0 //百分比\n },\n\n progressBolean: false,\n // 进度条的显示和隐藏\n noUpdatedDisabled: false,\n isWGT: false // 是否wgt资源包\n };\n },\n\n watch: {\n 'progressData.percent': {\n handler: function handler(newdata) {\n if (newdata) {\n this.progressBolean = true;\n this.updateButtonBoolean = false;\n }\n if (newdata == 100) {\n this.noUpdatedDisabled = false;\n }\n },\n immediate: true\n }\n },\n beforeMount: function beforeMount() {\n uni.hideTabBar();\n },\n mounted: function mounted() {\n this.$refs.upgradePopup.open('center');\n },\n methods: {\n // 升级弹窗的change事件\n upgradePopupChange: function upgradePopupChange(e) {\n this.popupShow = e.show;\n },\n // 暂不更新按钮事件\n noUpdate: function noUpdate() {\n uni.showTabBar();\n this.$emit('pause');\n },\n // 立即升级事件\n upgradeNow: function upgradeNow() {\n var that = this;\n that.noUpdatedDisabled = true;\n var platform = uni.getSystemInfoSync().platform;\n that.isWGT = that.appUpgeadeObj.type == 'wgt';\n var index = that.appUpgeadeObj.downloadUrl.indexOf('apps.apple.com');\n __f__(\"log\", that.isWGT, 'that.isWGT3333', \" at components/showModal/upgradePopup.vue:108\");\n if (that.isWGT
!= true) {\n that.updateWgt(that.appUpgeadeObj.downloadUrl, that.appUpgeadeObj.downloadUrl.versionName);\n } else {\n if (platform == 'ios' && index !== -1) return plus.runtime.openURL(that.appUpgeadeObj.downloadUrl);\n }\n },\n upgradeNowAndroid: function upgradeNowAndroid() {\n var _this = this;\n var that = this;\n that.noUpdatedDisabled = true;\n var platform = uni.getSystemInfoSync().platform;\n var index = that.containsApkExtension(this.appUpgeadeObj.downloadUrl);\n that.isWGT = that.appUpgeadeObj.type == 'wgt';\n if (that.isWGT == true) {\n that.updateWgt(that.appUpgeadeObj.downloadUrl, that.appUpgeadeObj.downloadUrl.versionName);\n } else {\n if (index == true) {\n plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {\n var downloadTask = uni.downloadFile({\n url: that.appUpgeadeObj.downloadUrl,\n success: function success(downloadResult) {\n if (downloadResult.statusCode === 200) {\n plus.runtime.install(downloadResult.tempFilePath, {\n force: false\n }, function () {\n plus.cache.clear();\n plus.runtime.restart();\n }, function (err) {\n __f__(\"log\", 'err--------安装升级包失败', err, \" at components/showModal/upgradePopup.vue:140\");\n uni.showToast({\n title: '安装升级包失败',\n icon: 'none'\n });\n });\n }\n }\n });\n downloadTask.onProgressUpdate(function (res) {\n _this.progressData.percent = res.progress;\n });\n });\n } else {\n __f__(\"log\", 333, 'indexw', \" at components/showModal/upgradePopup.vue:154\");\n //跳转到应用商店\n var appurl = \"market://details?id=io.dcloud.ddh\";\n plus.runtime.openURL(appurl);\n }\n }\n },\n //wgt更新\n updateWgt: function updateWgt(downloadUrl, newVersion) {\n uni.showModal({\n title: '已发现新版本',\n content: '确认更新?',\n showCancel: false,\n success: function success(res) {\n uni.setStorageSync('checkVersions', newVersion);\n if (res.confirm) {\n uni.downloadFile({\n url: downloadUrl,\n success: function success(downloadResult) {\n plus.runtime.install(downloadResult.tempFilePath, {\n force: true\n }, function () {\n //应用热重启,重新启动进入首页\n plus.runtime.restart();\n uni.showModal({\n title: '安装成功!',\n content: '已重新进入应用',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n __f__(\"log\", '用户点击确定', \" at components/showModal/upgradePopup.vue:185\");\n } else if (res.cancel) {\n __f__(\"log\", '用户点击确定', \" at components/showModal/upgradePopup.vue:187\");\n }\n }\n });\n }, function (e) {\n __f__(\"log\", e, '安装失败', \" at components/showModal/upgradePopup.vue:194\");\n uni.showModal({\n title: '安装失败',\n icon: 'none'\n });\n });\n },\n fail: function fail(err) {\n uni.showToast({\n title: '下载失败',\n icon: 'none'\n });\n }\n });\n } else if (res.cancel) {\n uni.showToast({\n title: '已取消',\n icon: 'none'\n });\n }\n }\n });\n },\n containsApkExtension: function containsApkExtension(url) {\n return /\\.apk$/i.test(url);\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 12)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9zaG93TW9kYWwvdXBncmFkZVBvcHVwLnZ1ZSJdLCJuYW1lcyI6WyJwcm9wcyIsImFwcFVwZ2VhZGVPYmoiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbXBvbmVudHMiLCJkYXRhIiwicG9wdXBTaG93IiwidXBkYXRlQnV0dG9uQm9vbGVhbiIsInByb2dyZXNzRGF0YSIsInBlcmNlbnQiLCJwcm9ncmVzc0JvbGVhbiIsIm5vVXBkYXRlZERpc2FibGVkIiwiaXNXR1QiLCJ3YXRjaCIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJiZWZvcmVNb3VudCIsInVuaSIsIm1vdW50ZWQiLCJtZXRob2RzIiwidXBncmFkZVBvcHVwQ2hhbmdlIiwibm9VcGRhdGUiLCJ1cGdyYWRlTm93IiwidGhhdCIsInVwZ3JhZGVOb3dBbmRyb2lkIiwicGx1cyIsInVybCIsInN1Y2Nlc3MiLCJ0ZW1wRmlsZVBhdGgiLCJmb3JjZSIsInRpdGxlIiwiaWNvbiIsImRvd25sb2FkVGFzayIsInVwZGF0ZVdndCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwiZmFpbCIsImNvbnRhaW5zQXBrRXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQkEwQ0E7RUFDQUE7SUFDQUM7TUFDQUM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQyxhQUVBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7TUFBQTtNQUNBO01BQ0FDO1FBQ0FDO01BRUE7O01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7SUFFQTtFQUNBOztFQUNBQztJQUNBO01BQ0FDO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7RUFDQTtFQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBSjtNQUNBO0lBQ0E7SUFDQTtJQUNBSztNQUNBO01BQ0FDO01BRUE7TUFDQUE7TUFDQTtNQUNBO01BQ0E7UUFDQUE7TUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBQztNQUFBO01BQ0E7TUFDQUQ7TUFDQTtNQUNBO01BQ0FBO01BQ0E7UUFDQUE7TUFDQTtRQUNBO1VBQ0FFO1lBQ0E7Y0FDQUM7Y0FDQUM7Z0JBQ0E7a0JBQ0FGLG9DQUNBRztvQkFDQUM7a0JBQ0EsR0FDQTtvQkFDQUo7b0JBQ0FBO2tCQUNBLEdBQ0E7b0JBQ0E7b0JBQ0FSO3NCQUNBYTtzQkFDQUM7b0JBQ0E7a0JBQ0E7Z0JBQ0E7Y0FDQTtZQUNBO1lBQ0FDO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQVA7UUFDQTtNQUNBO0lBR0E7SUFDQTtJQUNBUTtNQUNBaEI7UUFDQWE7UUFDQUk7UUFDQUM7UUFDQVI7VUFDQVY7VUFDQTtZQUNBQTtjQUNBUztjQUNBQztnQkFDQUY7a0JBQUFJO2dCQUFBO2tCQUNBO2tCQUNBSjtrQkFDQVI7b0JBQ0FhO29CQUNBSTtvQkFDQUM7b0JBQ0FSO3NCQUNBO3dCQUVBO3NCQUNBO3dCQUNBO3NCQUNBO29CQUNBO2tCQUVBO2dCQUNBLEdBQ0E7a0JBQ0E7a0JBQ0FWO29CQUNBYTtvQkFDQUM7a0JBQ0E7Z0JBQ0E7Y0FDQTtjQUNBSztnQkFDQW5CO2tCQUNBYTtrQkFDQUM7Z0JBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQWQ7Y0FDQWE7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FNO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSw0QiIsImZpbGUiOiIzMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8IS0tIOmBrue9qea7muWKqOmUgeWumue7hOS7tiAtLT5cclxuXHRcdDxwYWdlLW1ldGEgOnBhZ2Utc3R5bGU9XCInb3ZlcmZsb3c6JysocG9wdXBTaG93PydoaWRkZW4nOid2aXNpYmxlJylcIj48L3BhZ2UtbWV0YT5cclxuXHRcdDx1bmktcG9wdXAgcmVmPVwidXBncmFkZVBvcHVwXCIgYmFja2dyb3VuZC1jb2xvcj1cIiNmZmZcIiBjbGFzcz1cInVwZ3JhZGVQb3B1cFwiIEBjaGFuZ2U9XCJ1cGdyYWRlUG9wdXBDaGFuZ2VcIlxyXG5cdFx0XHQ6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicm9ja2V0LWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvY2tldC1pbWdcIj48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cblx0XHRcdFxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LXYtZGVzXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC12XCI+dnt7IGFwcFVwZ2VhZGVPYmoudmVyc2lvbk5hbWUgfX08L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPSdjb250ZW50LXRleHQnPuWPkeeOsOaWsOeJiOacrDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdDwhLS0g5pu05paw5YaF5a65IC0tPlxuXHRcdFx0XHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImluZm9fZGVzY19zY3JvbGxcIiAgc2Nyb2xsLXk9XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHQ8cmljaC10ZXh0IGNsYXNzPSdzY3JvbGwtdGV4dCcgOm5vZGVzPVwiYXBwVXBnZWFkZU9iai5jb250ZW50XCI+PC9yaWNoLXRleHQ+XG5cdFx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0XHJcblx0XHRcdFxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVwZGF0ZS1jb250ZW50XCI+XHJcblx0XHRcdFx0PHRleHQgc3BhY2U9XCJuYnNwXCI+e3thcHBVcGdlYWRlT2JqLnVwZGF0ZUNvbnRlbnR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwidXBkYXRlQnV0dG9uQm9vbGVhblwiIGNsYXNzPVwidXBkYXRlLWJ1dHRvblwiPlxyXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJub3QtdXBkYXRlZC1idXR0b25cIiA6ZGlzYWJsZWQ9XCJub1VwZGF0ZWREaXNhYmxlZFwiXHJcblx0XHRcdFx0XHR2LXNob3c9XCJhcHBVcGdlYWRlT2JqLmZvcmNlVXBkYXRlID09IGZhbHNlXCIgdHlwZT1cIndhcm5cIiBAdGFwLnN0b3A9XCJub1VwZGF0ZVwiPuaaguS4jeabtOaWsDwvYnV0dG9uPlxyXG5cdFx0XHRcdDxidXR0b24gdi1zaG93PSdhcHBVcGdlYWRlT2JqLnR5cGUgPT0gXCJBTkRST0lEXCInIGNsYXNzPVwidXBkYXRlZC1idXR0b25cIiB0eXBlPVwid2FyblwiIEB0YXAuc3RvcD1cInVwZ3JhZGVOb3dBbmRyb2lkXCI+56uL5Y2z5Y2H57qnPC9idXR0b24+XG5cdFx0XHRcdDxidXR0b24gdi1zaG93PSdhcHBVcGdlYWRlT2JqLnR5cGUgPT0gXCJJT1NcIicgY2xhc3M9XCJ1cGRhdGVkLWJ1dHRvblwiIHR5cGU9XCJ3YXJuXCIgQHRhcC5zdG9wPVwidXBncmFkZU5vd1wiPueri+WNs+WNh+e6pzwvYnV0dG9uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gdi1pZj1cInByb2dyZXNzQm9sZWFuXCIgLS0+XHJcblx0XHRcdDwhLS0ge3twcm9ncmVzc0JvbGVhbn19IC0tPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwicHJvZ3Jlc3NCb2xlYW5cIiBjbGFzcz1cInByb2dyZXNzLWJhclwiPlxyXG5cdFx0XHRcdDxwcm9ncmVzcyBib3JkZXItcmFkaXVzPVwiOTBcIiBmb250LXNpemU9XCIyNFwiIGFjdGl2ZUNvbG9yPVwiI0RCNDAzMlwiIGJhY2tncm91bmRDb2xvcj1cIiNmMGYwZjBcIiBzaG93LWluZm9cclxuXHRcdFx0XHRcdDpwZXJjZW50PVwicHJvZ3Jlc3NEYXRhLnBlcmNlbnRcIiBzdHJva2Utd2lkdGg9XCIxNVwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0YXBwVXBnZWFkZU9iajoge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0OiAoKSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4ge31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0cG9wdXBTaG93OiBmYWxzZSxcclxuXHRcdFx0XHR1cGRhdGVCdXR0b25Cb29sZWFuOiB0cnVlLCAvLyDmjInpkq7nmoTmmL7npLrlkozpmpDol49cclxuXHRcdFx0XHQvLyDov5vluqbmnaHmlbDmja5cclxuXHRcdFx0XHRwcm9ncmVzc0RhdGE6IHtcclxuXHRcdFx0XHRcdHBlcmNlbnQ6IDAsIC8v55m+5YiG5q+UXHJcblxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cHJvZ3Jlc3NCb2xlYW46IGZhbHNlLCAvLyDov5vluqbmnaHnmoTmmL7npLrlkozpmpDol49cclxuXHRcdFx0XHRub1VwZGF0ZWREaXNhYmxlZDogZmFsc2UsXHJcblx0XHRcdFx0aXNXR1Q6ZmFsc2UsLy8g5piv5ZCmd2d06LWE5rqQ5YyFXHJcblxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdCdwcm9ncmVzc0RhdGEucGVyY2VudCc6IHtcclxuXHRcdFx0XHRoYW5kbGVyKG5ld2RhdGEpIHtcclxuXHRcdFx0XHRcdGlmIChuZXdkYXRhKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMucHJvZ3Jlc3NCb2xlYW4gPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQnV0dG9uQm9vbGVhbiA9IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobmV3ZGF0YSA9PSAxMDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5ub1VwZGF0ZWREaXNhYmxlZCA9IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWUsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0YmVmb3JlTW91bnQoKSB7XHJcblx0XHRcdHVuaS5oaWRlVGFiQmFyKClcclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLiRyZWZzLnVwZ3JhZGVQb3B1cC5vcGVuKCdjZW50ZXInKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly8g5Y2H57qn5by556qX55qEY2hhbmdl5LqL5Lu2XHJcblx0XHRcdHVwZ3JhZGVQb3B1cENoYW5nZShlKSB7XHJcblx0XHRcdFx0dGhpcy5wb3B1cFNob3cgPSBlLnNob3dcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pqC5LiN5pu05paw5oyJ6ZKu5LqL5Lu2XHJcblx0XHRcdG5vVXBkYXRlKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VGFiQmFyKClcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdwYXVzZScpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOeri+WNs+WNh+e6p+S6i+S7tlxyXG5cdFx0XHR1cGdyYWRlTm93KCkge1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHRoYXQubm9VcGRhdGVkRGlzYWJsZWQgPSB0cnVlXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bGV0IHBsYXRmb3JtID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm1cblx0XHRcdFx0dGhhdC5pc1dHVD10aGF0LmFwcFVwZ2VhZGVPYmoudHlwZSA9PSAnd2d0J1xyXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLmluZGV4T2YoJ2FwcHMuYXBwbGUuY29tJylcblx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5pc1dHVCwndGhhdC5pc1dHVDMzMzMnKVxuXHRcdFx0XHRpZih0aGF0LmlzV0dUI
T10cnVlKXtcblx0XHRcdFx0XHR0aGF0LnVwZGF0ZVdndCh0aGF0LmFwcFVwZ2VhZGVPYmouZG93bmxvYWRVcmwsdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLnZlcnNpb25OYW1lKVxuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRpZiAocGxhdGZvcm0gPT0gJ2lvcycgJiYgaW5kZXggIT09IC0xKSByZXR1cm4gcGx1cy5ydW50aW1lLm9wZW5VUkwodGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsKTtcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxuXHRcdFx0dXBncmFkZU5vd0FuZHJvaWQoKXtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubm9VcGRhdGVkRGlzYWJsZWQgPSB0cnVlXG5cdFx0XHRcdGxldCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhhdC5jb250YWluc0Fwa0V4dGVuc2lvbih0aGlzLmFwcFVwZ2VhZGVPYmouZG93bmxvYWRVcmwpXG5cdFx0XHRcdHRoYXQuaXNXR1Q9dGhhdC5hcHBVcGdlYWRlT2JqLnR5cGUgPT0gJ3dndCdcblx0XHRcdFx0aWYodGhhdC5pc1dHVD09dHJ1ZSl7XG5cdFx0XHRcdFx0dGhhdC51cGRhdGVXZ3QodGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLHRoYXQuYXBwVXBnZWFkZU9iai5kb3dubG9hZFVybC52ZXJzaW9uTmFtZSlcblx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0aWYoaW5kZXg9PXRydWUpe1xuXHRcdFx0XHRcdFx0cGx1cy5ydW50aW1lLmdldFByb3BlcnR5KHBsdXMucnVudGltZS5hcHBpZCwgKHdndGluZm8pID0+IHtcblx0XHRcdFx0XHRcdFx0dmFyIGRvd25sb2FkVGFzayA9IHVuaS5kb3dubG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHRcdHVybDogdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLFxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChkb3dubG9hZFJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGRvd25sb2FkUmVzdWx0LnN0YXR1c0NvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbChkb3dubG9hZFJlc3VsdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC50ZW1wRmlsZVBhdGgsIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcmNlOiBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLmNhY2hlLmNsZWFyKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oZXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyLS0tLS0tLS3lronoo4XljYfnuqfljIXlpLHotKUnLCBlcnIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICflronoo4XljYfnuqfljIXlpLHotKUnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRkb3dubG9hZFRhc2sub25Qcm9ncmVzc1VwZGF0ZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5wcm9ncmVzc0RhdGEucGVyY2VudCA9IHJlcy5wcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygzMzMsJ2luZGV4dycpXG5cdFx0XHRcdFx0XHQvL+i3s+i9rOWIsOW6lOeUqOWVhuW6l1xuXHRcdFx0XHRcdFx0bGV0IGFwcHVybCA9IFwibWFya2V0Oi8vZGV0YWlscz9pZD1pby5kY2xvdWQuZGRoXCIgXG5cdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChhcHB1cmwpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvL3dndOabtOaWsFxyXG5cdFx0XHR1cGRhdGVXZ3QoZG93bmxvYWRVcmwsbmV3VmVyc2lvbil7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn5bey5Y+R546w5paw54mI5pysJyxcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAn56Gu6K6k5pu05paw77yfJyxcclxuXHRcdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0XHRzdWNjZXNzOmZ1bmN0aW9uKHJlcyl7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2NoZWNrVmVyc2lvbnMnLG5ld1ZlcnNpb24pXHJcblx0XHRcdFx0XHRcdFx0XHRpZihyZXMuY29uZmlybSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5kb3dubG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogZG93bmxvYWRVcmwsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogKGRvd25sb2FkUmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbChkb3dubG9hZFJlc3VsdC50ZW1wRmlsZVBhdGgse2ZvcmNlOiB0cnVlfSxmdW5jdGlvbigpe1x0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly/lupTnlKjng63ph43lkK/vvIzph43mlrDlkK/liqjov5vlhaXpppbpobVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICflronoo4XmiJDlip/vvIEnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29udGVudDogJ+W3sumHjeaWsOi/m+WFpeW6lOeUqCcsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ZnVuY3Rpb24ocmVzKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYocmVzLmNvbmZpcm0pe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNlIGlmKHJlcy5jYW5jZWwpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnlKjmiLfngrnlh7vnoa7lrponKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSkgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oZSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGUsJ+WuieijheWksei0pScpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5a6J6KOF5aSx6LSlJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfkuIvovb3lpLHotKUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fWVsc2UgaWYocmVzLmNhbmNlbCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5bey5Y+W5raIJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdH0sXG5cdFx0XHRjb250YWluc0Fwa0V4dGVuc2lvbih1cmwpIHtcblx0XHRcdCAgcmV0dXJuIC9cXC5hcGskL2kudGVzdCh1cmwpO1xuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG5cdC51cGdyYWRlUG9wdXAge1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cclxuXHRcdC9kZWVwLy51bmktcG9wdXBfX3dyYXBwZXIge1xyXG5cdFx0XHR3aWR0aDogNjAycnB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vaW1ncy91cGdyYWRlQmFja2dyb3VuZC5wbmcnKTtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdFx0XHQvLyBib3JkZXI6IHNvbGlkIDFweCByZWQ7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0XHRcdC5yb2NrZXQtY29udGVudCB7XHJcblx0XHRcdFx0aGVpZ2h0OiAzNjhycHg7XHJcblxyXG5cdFx0XHRcdC5yb2NrZXQtaW1nIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi9pbWdzL3JvY2tldC5wbmcnKTtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdFx0XHRcdHdpZHRoOiAxNTJycHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IDIxMnJweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdHRvcDogLTEwNXJweDtcclxuXHRcdFx0XHRcdGxlZnQ6IDIyNXJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cblx0XHRcdC5jb250ZW50LXYtZGVze1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDQwcnB4O1xuXHRcdFx0XHR0b3A6IDMwcnB4O1xuXHRcdFx0XHR6LWluZGV4OiAzO1xuXHRcdFx0XHQuY29udGVudC12e1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogNzVycHg7XG5cdFx0XHRcdFx0Y29sb3I6I0ZGRkZGRjtcblx0XHRcdFx0fVxuXHRcdFx0XHQuY29udGVudC10ZXh0e1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiAyMHJweDtcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQywgUGluZ0ZhbmcgU0M7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiA0MnJweDtcblx0XHRcdFx0XHRjb2xvcjojMzMzMzMzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDoyMHJweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBQaW5nRmFuZ1NDLCBQaW5nRmFuZyBTQztcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRjb2xvcjogIzk5OTk5OTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdFx0XHQuaW5mb19kZXNjX3Njcm9sbHtcblx0XHRcdFx0XHRcdHdpZHRoOiA0NTBycHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDIwMHJweDtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdFx0XHRcdFx0LnNjcm9sbC10ZXh0e1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTo2cnB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxyXG5cdFx0XHRcblx0XHRcdFxyXG5cdFx0XHRcclxuXHJcblx0XHRcdC51cGRhdGUtY29udGVudCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogNDRycHg7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcnB4IHJlZDtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwMHJweDtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0XHRcdHVuaS10ZXh0IHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQy1SZWd1bGFyLCBQaW5nRmFuZyBTQztcclxuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRcdFx0XHRjb2xvcjogIzk4OTg5OTtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDhycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQudXBkYXRlLWJ1dHRvbiB7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcnB4IHllbGxvdztcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdHdpZHRoOiA0ODJycHg7XHJcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogNDhycHg7XHJcblxyXG5cdFx0XHRcdHVuaS1idXR0b24ge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQy1NZWRpdW0sIFBpbmdGYW5nIFNDO1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwcnB4O1xyXG5cdFx0XHRcdFx0ZmxleDogMTtcclxuXHRcdFx0XHRcdGhlaWdodDogODBycHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiA4MHJweDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC5ub3QtdXBkYXRlZC1idXR0b24ge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA0MHJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5wcm9ncmVzcy1iYXIge1xyXG5cdFx0XHRcdHdpZHRoOiA1MzhycHg7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcHggcmVkO1xyXG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDk2cnB4O1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwMnJweDtcclxuXHJcblx0XHRcdFx0dW5pLXByb2dyZXNzIHtcclxuXHRcdFx0XHRcdC51bmktcHJvZ3Jlc3MtYmFyIHtcclxuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XHJcblxyXG5cdFx0XHRcdFx0XHQudW5pLXByb2dyZXNzLWlubmVyLWJhciB7XHJcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///331\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//\nvar _default2 = {\n props: {\n appUpgeadeObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n }\n },\n components: {},\n data: function data() {\n return {\n popupShow: false,\n updateButtonBoolean: true,\n // 按钮的显示和隐藏\n // 进度条数据\n progressData: {\n percent: 0 //百分比\n },\n\n progressBolean: false,\n // 进度条的显示和隐藏\n noUpdatedDisabled: false,\n isWGT: false // 是否wgt资源包\n };\n },\n\n watch: {\n 'progressData.percent': {\n handler: function handler(newdata) {\n if (newdata) {\n this.progressBolean = true;\n this.updateButtonBoolean = false;\n }\n if (newdata == 100) {\n this.noUpdatedDisabled = false;\n }\n },\n immediate: true\n }\n },\n beforeMount: function beforeMount() {\n uni.hideTabBar();\n },\n mounted: function mounted() {\n this.$refs.upgradePopup.open('center');\n },\n methods: {\n // 升级弹窗的change事件\n upgradePopupChange: function upgradePopupChange(e) {\n this.popupShow = e.show;\n },\n // 暂不更新按钮事件\n noUpdate: function noUpdate() {\n uni.showTabBar();\n this.$emit('pause');\n },\n // 立即升级事件\n upgradeNow: function upgradeNow() {\n var that = this;\n that.noUpdatedDisabled = true;\n var platform = uni.getSystemInfoSync().platform;\n that.isWGT = that.appUpgeadeObj.type == 'wgt';\n var index = that.appUpgeadeObj.downloadUrl.indexOf('apps.apple.com');\n __f__(\"log\", that.isWGT, 'that.isWGT3333', \" at components/showModal/upgradePopup.vue:108\");\n if (that.isWGT
== true) {\n that.updateWgt(that.appUpgeadeObj.downloadUrl, that.appUpgeadeObj.downloadUrl.versionName);\n } else {\n if (platform == 'ios' && index !== -1) return plus.runtime.openURL(that.appUpgeadeObj.downloadUrl);\n }\n },\n upgradeNowAndroid: function upgradeNowAndroid() {\n var _this = this;\n var that = this;\n that.noUpdatedDisabled = true;\n var platform = uni.getSystemInfoSync().platform;\n var index = that.containsApkExtension(this.appUpgeadeObj.downloadUrl);\n that.isWGT = that.appUpgeadeObj.type == 'wgt';\n if (that.isWGT == true) {\n that.updateWgt(that.appUpgeadeObj.downloadUrl, that.appUpgeadeObj.downloadUrl.versionName);\n } else {\n if (index == true) {\n plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {\n var downloadTask = uni.downloadFile({\n url: that.appUpgeadeObj.downloadUrl,\n success: function success(downloadResult) {\n if (downloadResult.statusCode === 200) {\n plus.runtime.install(downloadResult.tempFilePath, {\n force: false\n }, function () {\n plus.cache.clear();\n plus.runtime.restart();\n }, function (err) {\n __f__(\"log\", 'err--------安装升级包失败', err, \" at components/showModal/upgradePopup.vue:140\");\n uni.showToast({\n title: '安装升级包失败',\n icon: 'none'\n });\n });\n }\n }\n });\n downloadTask.onProgressUpdate(function (res) {\n _this.progressData.percent = res.progress;\n });\n });\n } else {\n __f__(\"log\", 333, 'indexw', \" at components/showModal/upgradePopup.vue:154\");\n //跳转到应用商店\n var appurl = \"market://details?id=io.dcloud.ddh\";\n plus.runtime.openURL(appurl);\n }\n }\n },\n //wgt更新\n updateWgt: function updateWgt(downloadUrl, newVersion) {\n uni.showModal({\n title: '已发现新版本',\n content: '确认更新?',\n showCancel: false,\n success: function success(res) {\n uni.setStorageSync('checkVersions', newVersion);\n if (res.confirm) {\n uni.downloadFile({\n url: downloadUrl,\n success: function success(downloadResult) {\n plus.runtime.install(downloadResult.tempFilePath, {\n force: true\n }, function () {\n //应用热重启,重新启动进入首页\n plus.runtime.restart();\n uni.showModal({\n title: '安装成功!',\n content: '已重新进入应用',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n __f__(\"log\", '用户点击确定', \" at components/showModal/upgradePopup.vue:185\");\n } else if (res.cancel) {\n __f__(\"log\", '用户点击确定', \" at components/showModal/upgradePopup.vue:187\");\n }\n }\n });\n }, function (e) {\n __f__(\"log\", e, '安装失败', \" at components/showModal/upgradePopup.vue:194\");\n uni.showModal({\n title: '安装失败',\n icon: 'none'\n });\n });\n },\n fail: function fail(err) {\n uni.showToast({\n title: '下载失败',\n icon: 'none'\n });\n }\n });\n } else if (res.cancel) {\n uni.showToast({\n title: '已取消',\n icon: 'none'\n });\n }\n }\n });\n },\n containsApkExtension: function containsApkExtension(url) {\n return /\\.apk$/i.test(url);\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 12)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9zaG93TW9kYWwvdXBncmFkZVBvcHVwLnZ1ZSJdLCJuYW1lcyI6WyJwcm9wcyIsImFwcFVwZ2VhZGVPYmoiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbXBvbmVudHMiLCJkYXRhIiwicG9wdXBTaG93IiwidXBkYXRlQnV0dG9uQm9vbGVhbiIsInByb2dyZXNzRGF0YSIsInBlcmNlbnQiLCJwcm9ncmVzc0JvbGVhbiIsIm5vVXBkYXRlZERpc2FibGVkIiwiaXNXR1QiLCJ3YXRjaCIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJiZWZvcmVNb3VudCIsInVuaSIsIm1vdW50ZWQiLCJtZXRob2RzIiwidXBncmFkZVBvcHVwQ2hhbmdlIiwibm9VcGRhdGUiLCJ1cGdyYWRlTm93IiwidGhhdCIsInVwZ3JhZGVOb3dBbmRyb2lkIiwicGx1cyIsInVybCIsInN1Y2Nlc3MiLCJ0ZW1wRmlsZVBhdGgiLCJmb3JjZSIsInRpdGxlIiwiaWNvbiIsImRvd25sb2FkVGFzayIsInVwZGF0ZVdndCIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwiZmFpbCIsImNvbnRhaW5zQXBrRXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQkEwQ0E7RUFDQUE7SUFDQUM7TUFDQUM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQyxhQUVBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7TUFBQTtNQUNBO01BQ0FDO1FBQ0FDO01BRUE7O01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7SUFFQTtFQUNBOztFQUNBQztJQUNBO01BQ0FDO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7RUFDQTtFQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBSjtNQUNBO0lBQ0E7SUFDQTtJQUNBSztNQUNBO01BQ0FDO01BRUE7TUFDQUE7TUFDQTtNQUNBO01BQ0E7UUFDQUE7TUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBQztNQUFBO01BQ0E7TUFDQUQ7TUFDQTtNQUNBO01BQ0FBO01BQ0E7UUFDQUE7TUFDQTtRQUNBO1VBQ0FFO1lBQ0E7Y0FDQUM7Y0FDQUM7Z0JBQ0E7a0JBQ0FGLG9DQUNBRztvQkFDQUM7a0JBQ0EsR0FDQTtvQkFDQUo7b0JBQ0FBO2tCQUNBLEdBQ0E7b0JBQ0E7b0JBQ0FSO3NCQUNBYTtzQkFDQUM7b0JBQ0E7a0JBQ0E7Z0JBQ0E7Y0FDQTtZQUNBO1lBQ0FDO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQVA7UUFDQTtNQUNBO0lBR0E7SUFDQTtJQUNBUTtNQUNBaEI7UUFDQWE7UUFDQUk7UUFDQUM7UUFDQVI7VUFDQVY7VUFDQTtZQUNBQTtjQUNBUztjQUNBQztnQkFDQUY7a0JBQUFJO2dCQUFBO2tCQUNBO2tCQUNBSjtrQkFDQVI7b0JBQ0FhO29CQUNBSTtvQkFDQUM7b0JBQ0FSO3NCQUNBO3dCQUVBO3NCQUNBO3dCQUNBO3NCQUNBO29CQUNBO2tCQUVBO2dCQUNBLEdBQ0E7a0JBQ0E7a0JBQ0FWO29CQUNBYTtvQkFDQUM7a0JBQ0E7Z0JBQ0E7Y0FDQTtjQUNBSztnQkFDQW5CO2tCQUNBYTtrQkFDQUM7Z0JBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQWQ7Y0FDQWE7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FNO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSw0QiIsImZpbGUiOiIzMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0XHQ8IS0tIOmBrue9qea7muWKqOmUgeWumue7hOS7tiAtLT5cclxuXHRcdDxwYWdlLW1ldGEgOnBhZ2Utc3R5bGU9XCInb3ZlcmZsb3c6JysocG9wdXBTaG93PydoaWRkZW4nOid2aXNpYmxlJylcIj48L3BhZ2UtbWV0YT5cclxuXHRcdDx1bmktcG9wdXAgcmVmPVwidXBncmFkZVBvcHVwXCIgYmFja2dyb3VuZC1jb2xvcj1cIiNmZmZcIiBjbGFzcz1cInVwZ3JhZGVQb3B1cFwiIEBjaGFuZ2U9XCJ1cGdyYWRlUG9wdXBDaGFuZ2VcIlxyXG5cdFx0XHQ6bWFzay1jbGljaz1cImZhbHNlXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwicm9ja2V0LWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvY2tldC1pbWdcIj48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cblx0XHRcdFxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LXYtZGVzXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC12XCI+dnt7IGFwcFVwZ2VhZGVPYmoudmVyc2lvbk5hbWUgfX08L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPSdjb250ZW50LXRleHQnPuWPkeeOsOaWsOeJiOacrDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdDwhLS0g5pu05paw5YaF5a65IC0tPlxuXHRcdFx0XHRcdDxzY3JvbGwtdmlldyBjbGFzcz1cImluZm9fZGVzY19zY3JvbGxcIiAgc2Nyb2xsLXk9XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHQ8cmljaC10ZXh0IGNsYXNzPSdzY3JvbGwtdGV4dCcgOm5vZGVzPVwiYXBwVXBnZWFkZU9iai5jb250ZW50XCI+PC9yaWNoLXRleHQ+XG5cdFx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0XHJcblx0XHRcdFxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVwZGF0ZS1jb250ZW50XCI+XHJcblx0XHRcdFx0PHRleHQgc3BhY2U9XCJuYnNwXCI+e3thcHBVcGdlYWRlT2JqLnVwZGF0ZUNvbnRlbnR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwidXBkYXRlQnV0dG9uQm9vbGVhblwiIGNsYXNzPVwidXBkYXRlLWJ1dHRvblwiPlxyXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJub3QtdXBkYXRlZC1idXR0b25cIiA6ZGlzYWJsZWQ9XCJub1VwZGF0ZWREaXNhYmxlZFwiXHJcblx0XHRcdFx0XHR2LXNob3c9XCJhcHBVcGdlYWRlT2JqLmZvcmNlVXBkYXRlID09IGZhbHNlXCIgdHlwZT1cIndhcm5cIiBAdGFwLnN0b3A9XCJub1VwZGF0ZVwiPuaaguS4jeabtOaWsDwvYnV0dG9uPlxyXG5cdFx0XHRcdDxidXR0b24gdi1zaG93PSdhcHBVcGdlYWRlT2JqLnR5cGUgPT0gXCJBTkRST0lEXCIgfHwgYXBwVXBnZWFkZU9iai50eXBlID09IFwiV0dUXCInIGNsYXNzPVwidXBkYXRlZC1idXR0b25cIiB0eXBlPVwid2FyblwiIEB0YXAuc3RvcD1cInVwZ3JhZGVOb3dBbmRyb2lkXCI+56uL5Y2z5Y2H57qnPC9idXR0b24+XG5cdFx0XHRcdDxidXR0b24gdi1zaG93PSdhcHBVcGdlYWRlT2JqLnR5cGUgPT0gXCJJT1NcIiB8fCBhcHBVcGdlYWRlT2JqLnR5cGUgPT0gXCJXR1RcIicgY2xhc3M9XCJ1cGRhdGVkLWJ1dHRvblwiIHR5cGU9XCJ3YXJuXCIgQHRhcC5zdG9wPVwidXBncmFkZU5vd1wiPueri+WNs+WNh+e6pzwvYnV0dG9uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gdi1pZj1cInByb2dyZXNzQm9sZWFuXCIgLS0+XHJcblx0XHRcdDwhLS0ge3twcm9ncmVzc0JvbGVhbn19IC0tPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwicHJvZ3Jlc3NCb2xlYW5cIiBjbGFzcz1cInByb2dyZXNzLWJhclwiPlxyXG5cdFx0XHRcdDxwcm9ncmVzcyBib3JkZXItcmFkaXVzPVwiOTBcIiBmb250LXNpemU9XCIyNFwiIGFjdGl2ZUNvbG9yPVwiI0RCNDAzMlwiIGJhY2tncm91bmRDb2xvcj1cIiNmMGYwZjBcIiBzaG93LWluZm9cclxuXHRcdFx0XHRcdDpwZXJjZW50PVwicHJvZ3Jlc3NEYXRhLnBlcmNlbnRcIiBzdHJva2Utd2lkdGg9XCIxNVwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0YXBwVXBnZWFkZU9iajoge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0OiAoKSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4ge31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0cG9wdXBTaG93OiBmYWxzZSxcclxuXHRcdFx0XHR1cGRhdGVCdXR0b25Cb29sZWFuOiB0cnVlLCAvLyDmjInpkq7nmoTmmL7npLrlkozpmpDol49cclxuXHRcdFx0XHQvLyDov5vluqbmnaHmlbDmja5cclxuXHRcdFx0XHRwcm9ncmVzc0RhdGE6IHtcclxuXHRcdFx0XHRcdHBlcmNlbnQ6IDAsIC8v55m+5YiG5q+UXHJcblxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cHJvZ3Jlc3NCb2xlYW46IGZhbHNlLCAvLyDov5vluqbmnaHnmoTmmL7npLrlkozpmpDol49cclxuXHRcdFx0XHRub1VwZGF0ZWREaXNhYmxlZDogZmFsc2UsXHJcblx0XHRcdFx0aXNXR1Q6ZmFsc2UsLy8g5piv5ZCmd2d06LWE5rqQ5YyFXHJcblxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdCdwcm9ncmVzc0RhdGEucGVyY2VudCc6IHtcclxuXHRcdFx0XHRoYW5kbGVyKG5ld2RhdGEpIHtcclxuXHRcdFx0XHRcdGlmIChuZXdkYXRhKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMucHJvZ3Jlc3NCb2xlYW4gPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQnV0dG9uQm9vbGVhbiA9IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobmV3ZGF0YSA9PSAxMDApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5ub1VwZGF0ZWREaXNhYmxlZCA9IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWUsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0YmVmb3JlTW91bnQoKSB7XHJcblx0XHRcdHVuaS5oaWRlVGFiQmFyKClcclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLiRyZWZzLnVwZ3JhZGVQb3B1cC5vcGVuKCdjZW50ZXInKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly8g5Y2H57qn5by556qX55qEY2hhbmdl5LqL5Lu2XHJcblx0XHRcdHVwZ3JhZGVQb3B1cENoYW5nZShlKSB7XHJcblx0XHRcdFx0dGhpcy5wb3B1cFNob3cgPSBlLnNob3dcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pqC5LiN5pu05paw5oyJ6ZKu5LqL5Lu2XHJcblx0XHRcdG5vVXBkYXRlKCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VGFiQmFyKClcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdwYXVzZScpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOeri+WNs+WNh+e6p+S6i+S7tlxyXG5cdFx0XHR1cGdyYWRlTm93KCkge1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHRoYXQubm9VcGRhdGVkRGlzYWJsZWQgPSB0cnVlXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bGV0IHBsYXRmb3JtID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGxhdGZvcm1cblx0XHRcdFx0dGhhdC5pc1dHVD10aGF0LmFwcFVwZ2VhZGVPYmoudHlwZSA9PSAnd2d0J1xyXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLmluZGV4T2YoJ2FwcHMuYXBwbGUuY29tJylcblx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5pc1dHVCwndGhhdC5pc1dHVDMzMzMnKVxuXHRcdFx0XHRpZih0aGF0LmlzV0dUP
T10cnVlKXtcblx0XHRcdFx0XHR0aGF0LnVwZGF0ZVdndCh0aGF0LmFwcFVwZ2VhZGVPYmouZG93bmxvYWRVcmwsdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLnZlcnNpb25OYW1lKVxuXHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRpZiAocGxhdGZvcm0gPT0gJ2lvcycgJiYgaW5kZXggIT09IC0xKSByZXR1cm4gcGx1cy5ydW50aW1lLm9wZW5VUkwodGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsKTtcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxuXHRcdFx0dXBncmFkZU5vd0FuZHJvaWQoKXtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubm9VcGRhdGVkRGlzYWJsZWQgPSB0cnVlXG5cdFx0XHRcdGxldCBwbGF0Zm9ybSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhhdC5jb250YWluc0Fwa0V4dGVuc2lvbih0aGlzLmFwcFVwZ2VhZGVPYmouZG93bmxvYWRVcmwpXG5cdFx0XHRcdHRoYXQuaXNXR1Q9dGhhdC5hcHBVcGdlYWRlT2JqLnR5cGUgPT0gJ3dndCdcblx0XHRcdFx0aWYodGhhdC5pc1dHVD09dHJ1ZSl7XG5cdFx0XHRcdFx0dGhhdC51cGRhdGVXZ3QodGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLHRoYXQuYXBwVXBnZWFkZU9iai5kb3dubG9hZFVybC52ZXJzaW9uTmFtZSlcblx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0aWYoaW5kZXg9PXRydWUpe1xuXHRcdFx0XHRcdFx0cGx1cy5ydW50aW1lLmdldFByb3BlcnR5KHBsdXMucnVudGltZS5hcHBpZCwgKHdndGluZm8pID0+IHtcblx0XHRcdFx0XHRcdFx0dmFyIGRvd25sb2FkVGFzayA9IHVuaS5kb3dubG9hZEZpbGUoe1xuXHRcdFx0XHRcdFx0XHRcdHVybDogdGhhdC5hcHBVcGdlYWRlT2JqLmRvd25sb2FkVXJsLFxuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChkb3dubG9hZFJlc3VsdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGRvd25sb2FkUmVzdWx0LnN0YXR1c0NvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbChkb3dubG9hZFJlc3VsdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC50ZW1wRmlsZVBhdGgsIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvcmNlOiBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLmNhY2hlLmNsZWFyKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oZXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyLS0tLS0tLS3lronoo4XljYfnuqfljIXlpLHotKUnLCBlcnIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICflronoo4XljYfnuqfljIXlpLHotKUnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRkb3dubG9hZFRhc2sub25Qcm9ncmVzc1VwZGF0ZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5wcm9ncmVzc0RhdGEucGVyY2VudCA9IHJlcy5wcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygzMzMsJ2luZGV4dycpXG5cdFx0XHRcdFx0XHQvL+i3s+i9rOWIsOW6lOeUqOWVhuW6l1xuXHRcdFx0XHRcdFx0bGV0IGFwcHVybCA9IFwibWFya2V0Oi8vZGV0YWlscz9pZD1pby5kY2xvdWQuZGRoXCIgXG5cdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUub3BlblVSTChhcHB1cmwpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvL3dndOabtOaWsFxyXG5cdFx0XHR1cGRhdGVXZ3QoZG93bmxvYWRVcmwsbmV3VmVyc2lvbil7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAn5bey5Y+R546w5paw54mI5pysJyxcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAn56Gu6K6k5pu05paw77yfJyxcclxuXHRcdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0XHRzdWNjZXNzOmZ1bmN0aW9uKHJlcyl7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2NoZWNrVmVyc2lvbnMnLG5ld1ZlcnNpb24pXHJcblx0XHRcdFx0XHRcdFx0XHRpZihyZXMuY29uZmlybSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5kb3dubG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogZG93bmxvYWRVcmwsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogKGRvd25sb2FkUmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbChkb3dubG9hZFJlc3VsdC50ZW1wRmlsZVBhdGgse2ZvcmNlOiB0cnVlfSxmdW5jdGlvbigpe1x0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly/lupTnlKjng63ph43lkK/vvIzph43mlrDlkK/liqjov5vlhaXpppbpobVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICflronoo4XmiJDlip/vvIEnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29udGVudDogJ+W3sumHjeaWsOi/m+WFpeW6lOeUqCcsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6ZnVuY3Rpb24ocmVzKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYocmVzLmNvbmZpcm0pe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1lbHNlIGlmKHJlcy5jYW5jZWwpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnlKjmiLfngrnlh7vnoa7lrponKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSkgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oZSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGUsJ+WuieijheWksei0pScpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5a6J6KOF5aSx6LSlJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfkuIvovb3lpLHotKUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fWVsc2UgaWYocmVzLmNhbmNlbCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5bey5Y+W5raIJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdH0sXG5cdFx0XHRjb250YWluc0Fwa0V4dGVuc2lvbih1cmwpIHtcblx0XHRcdCAgcmV0dXJuIC9cXC5hcGskL2kudGVzdCh1cmwpO1xuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG5cdC51cGdyYWRlUG9wdXAge1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cclxuXHRcdC9kZWVwLy51bmktcG9wdXBfX3dyYXBwZXIge1xyXG5cdFx0XHR3aWR0aDogNjAycnB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vaW1ncy91cGdyYWRlQmFja2dyb3VuZC5wbmcnKTtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE1cnB4O1xyXG5cdFx0XHQvLyBib3JkZXI6IHNvbGlkIDFweCByZWQ7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0XHRcdC5yb2NrZXQtY29udGVudCB7XHJcblx0XHRcdFx0aGVpZ2h0OiAzNjhycHg7XHJcblxyXG5cdFx0XHRcdC5yb2NrZXQtaW1nIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi9pbWdzL3JvY2tldC5wbmcnKTtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdFx0XHRcdHdpZHRoOiAxNTJycHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IDIxMnJweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdHRvcDogLTEwNXJweDtcclxuXHRcdFx0XHRcdGxlZnQ6IDIyNXJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cblx0XHRcdC5jb250ZW50LXYtZGVze1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDQwcnB4O1xuXHRcdFx0XHR0b3A6IDMwcnB4O1xuXHRcdFx0XHR6LWluZGV4OiAzO1xuXHRcdFx0XHQuY29udGVudC12e1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogNzVycHg7XG5cdFx0XHRcdFx0Y29sb3I6I0ZGRkZGRjtcblx0XHRcdFx0fVxuXHRcdFx0XHQuY29udGVudC10ZXh0e1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiAyMHJweDtcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQywgUGluZ0ZhbmcgU0M7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiA0MnJweDtcblx0XHRcdFx0XHRjb2xvcjojMzMzMzMzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDoyMHJweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBQaW5nRmFuZ1NDLCBQaW5nRmFuZyBTQztcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRjb2xvcjogIzk5OTk5OTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdFx0XHQuaW5mb19kZXNjX3Njcm9sbHtcblx0XHRcdFx0XHRcdHdpZHRoOiA0NTBycHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDIwMHJweDtcblx0XHRcdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdFx0XHRcdFx0LnNjcm9sbC10ZXh0e1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTo2cnB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxyXG5cdFx0XHRcblx0XHRcdFxyXG5cdFx0XHRcclxuXHJcblx0XHRcdC51cGRhdGUtY29udGVudCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogNDRycHg7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcnB4IHJlZDtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwMHJweDtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0XHRcdHVuaS10ZXh0IHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQy1SZWd1bGFyLCBQaW5nRmFuZyBTQztcclxuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRcdFx0XHRjb2xvcjogIzk4OTg5OTtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDhycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQudXBkYXRlLWJ1dHRvbiB7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcnB4IHllbGxvdztcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdHdpZHRoOiA0ODJycHg7XHJcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogNDhycHg7XHJcblxyXG5cdFx0XHRcdHVuaS1idXR0b24ge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRmb250LWZhbWlseTogUGluZ0ZhbmdTQy1NZWRpdW0sIFBpbmdGYW5nIFNDO1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwcnB4O1xyXG5cdFx0XHRcdFx0ZmxleDogMTtcclxuXHRcdFx0XHRcdGhlaWdodDogODBycHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiA4MHJweDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC5ub3QtdXBkYXRlZC1idXR0b24ge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA0MHJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5wcm9ncmVzcy1iYXIge1xyXG5cdFx0XHRcdHdpZHRoOiA1MzhycHg7XHJcblx0XHRcdFx0Ly8gYm9yZGVyOiBzb2xpZCAxcHggcmVkO1xyXG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDk2cnB4O1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwMnJweDtcclxuXHJcblx0XHRcdFx0dW5pLXByb2dyZXNzIHtcclxuXHRcdFx0XHRcdC51bmktcHJvZ3Jlc3MtYmFyIHtcclxuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XHJcblxyXG5cdFx0XHRcdFx0XHQudW5pLXByb2dyZXNzLWlubmVyLWJhciB7XHJcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBycHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///331\n");
/***/ }),
/* 332 */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment