tin-spa 2.3.1 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/classes/Classes.mjs +1 -1
- package/esm2020/lib/classes/TinCore.mjs +20 -5
- package/esm2020/lib/components/form/form.component.mjs +3 -34
- package/esm2020/lib/components/message/messageDialog.component.mjs +5 -4
- package/esm2020/lib/components/table/detailsDialog.component.mjs +8 -5
- package/esm2020/lib/components/table/table.component.mjs +4 -1
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +8 -5
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +6 -3
- package/fesm2015/tin-spa.mjs +49 -51
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +47 -51
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +1 -0
- package/lib/classes/TinCore.d.ts +1 -0
- package/lib/components/form/form.component.d.ts +0 -1
- package/lib/components/table/detailsDialog.component.d.ts +1 -0
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -255,4 +255,4 @@ export var LogLevel;
|
|
|
255
255
|
LogLevel[LogLevel["Fatal"] = 5] = "Fatal";
|
|
256
256
|
LogLevel[LogLevel["Off"] = 6] = "Off";
|
|
257
257
|
})(LogLevel || (LogLevel = {}));
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxNQUFNLE9BQU8sV0FBVztDQUl2QjtBQUVELE1BQU0sT0FBTyxTQUFTOztBQUNHLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLDJCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUN4QiwwQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFHaEQsTUFBTSxPQUFPLGdCQUFnQjtDQUk1QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBQXdCO0FBQXBDLFdBQVksYUFBYTtJQUFFLCtDQUFHLENBQUE7SUFBRSwrQ0FBRyxDQUFBO0FBQUEsQ0FBQyxFQUF4QixhQUFhLEtBQWIsYUFBYSxRQUFXO0FBRXBDLE1BQU0sT0FBTyxtQkFBbUI7Q0FjL0I7QUFFRCxNQUFNLE9BQU8sTUFBTTtDQU1sQjtBQUlELE1BQU0sT0FBTyxZQUFZO0NBR3hCO0FBUUQsTUFBTSxPQUFPLFVBQVU7Q0FZdEI7QUErREQsTUFBTSxPQUFPLFdBQVc7Q0FzQnZCO0FBOEJELE1BQU0sT0FBTyxVQUFVO0NBTXRCO0FBY0QsTUFBTSxPQUFPLElBQUk7Q0FHaEI7QUFJRCxNQUFNLE9BQU8sY0FBYztDQUcxQjtBQUdELE1BQU0sT0FBTyxXQUFXO0lBRXRCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFB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S0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Q0F3R0Y7QUFHRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUFPLENBQUE7SUFDUCx5Q0FBUyxDQUFBO0lBQ1QsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7SUFDUix5Q0FBUyxDQUFBO0lBQ1QseUNBQVMsQ0FBQTtJQUNULHFDQUFPLENBQUE7QUFDVCxDQUFDLEVBUlcsUUFBUSxLQUFSLFFBQVEsUUFRbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlIH0gZnJvbSBcIi4vVGluQ29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZ3tcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZXRhaWxzU291cmNlIHtSb3csIFVybH1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgZm9ybUNvbmZpZzogRm9ybUNvbmZpZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlncz86IFRhYmxlQ29uZmlnW107XHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdO1xyXG4gIGRldGFpbHM/IDogYW55XHJcbiAgaGVyb0ZpZWxkPyA6IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIG1vZGUgPzogc3RyaW5nXHJcbiAgLy8gc2V0SGVybyA/OiBib29sZWFuXHJcbiAgZGV0YWlsc1NvdXJjZT86IERldGFpbHNTb3VyY2VcclxuICAvLyBzb3VyY2VNZXRob2QgOiAncm93JyB8ICdpZCcgfCAnaWRGaWVsZCdcclxuICAvLyByb3c/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29uZmlnIHtcclxuICBmaWVsZHM6IFNlYXJjaEZpZWxkW11cclxuICBzZWFyY2hBY3Rpb24/OiBBY3Rpb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGaWVsZCBleHRlbmRzIEZpZWxke1xyXG5cclxuICBzaG93PzogYm9vbGVhblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgZmllbGRzOiBGaWVsZFtdXHJcbiAgbW9kZT86IHN0cmluZ1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBmaWxlQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCdXR0b257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlzaWJsZT86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGRpc3BsYXk/OiBzdHJpbmc7XHJcbiAgaWNvbj86IEljb247XHJcbiAgZGlzYWJsZWQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBjb2xvcj86IHN0cmluZztcclxuICB0aXA/OiBzdHJpbmdcclxuICBkaWFsb2c/OiBib29sZWFuXHJcbiAgYWN0aW9uPzogQWN0aW9uXHJcbiAgY29uZmlybT86IENvbmZpcm1cclxuICBpbkRpYWxvZz86IGJvb2xlYW5cclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtIHtcclxuICBtZXNzYWdlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb257XHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlOiAndGV4dCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ211bHRpLXNlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnc2VjdGlvbicgfCAnYmxhbmsnIHwgJ2NoaXAnIHwgJ2ZpbGUnIHwgJ2ZpbGUtdmlldycgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgZGVmYXVsdFZhbHVlPzogYW55XHJcbiAgZGVmYXVsdEZpcnN0VmFsdWU/OiBib29sZWFuXHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuXHJcbiAgbWluPzogYW55XHJcbiAgbWF4PzogYW55XHJcbiAgcm93cz86IG51bWJlclxyXG4gIHNwYW4/OiBib29sZWFuXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuXHJcbiAgaGlkZGVuPzogYm9vbGVhblxyXG4gIHBhdGg/OiBzdHJpbmdcclxuICBrZXlGaWxlZE5hbWU/OiBzdHJpbmdcclxuICBoaW50Pzogc3RyaW5nXHJcbiAgbWFzdGVyRmllbGQ/OiBzdHJpbmdcclxuICBjaGlsZD86IENoaWxkRmllbGRcclxuICBjaGlsZHJlbj86IENoaWxkRmllbGRbXVxyXG4gIG1hc3Rlck9wdGlvbnM/OiBhbnlbXVxyXG4gIG51bGxhYmxlID86IGJvb2xlYW5cclxuXHJcbiAgaGlkZU9uQ3JlYXRlID86IGJvb2xlYW5cclxuICBoaWRlT25FeGlzdHMgPzogYm9vbGVhblxyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIHJlYWRvbmx5Q29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoaWxkRmllbGQge1xyXG4gIGNoaWxkRmllbGQ/OiBzdHJpbmdcclxuICBjaGlsZFZhbHVlRmllbGQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlne1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgY29sdW1ucz8gOiBDb2x1bW5bXVxyXG4gIG1pbkNvbHVtbnM/OiBzdHJpbmdbXVxyXG4gIHNob3dGaWx0ZXI/OiBib29sZWFuXHJcbiAgZWxldmF0aW9uPzogJ25vbmUnIHwgJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJ1xyXG4gIGZvcm1Db25maWc/OiBGb3JtQ29uZmlnXHJcbiAgc2VhcmNoQ29uZmlnPzogU2VhcmNoQ29uZmlnXHJcbiAgdGlsZUNvbmZpZz86IFRpbGVDb25maWdcclxuICBidXR0b25zPzogQnV0dG9uW11cclxuICBtaW5CdXR0b25zPzogc3RyaW5nW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZElERmllbGQgPzogc3RyaW5nXHJcbiAgbG9hZENyaXRlcmlhPzogc3RyaW5nXHJcbiAgbG9nUmVzcG9uc2U/OiBib29sZWFuXHJcbiAgZmxhdEJ1dHRvbnM/OiBib29sZWFuXHJcbiAgZ3JleU91dD86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIGNvbGxhcHNlQnV0dG9ucz86IGJvb2xlYW5cclxuICBwYXJlbnREYXRhID8gOiBhbnlcclxuICBoaWRlVGFiQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlPzogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdtb25leScgfCAnbnVtYmVyJyB8ICdjaGlwJyB8ICdpY29uJyB8ICdzcGlubmVyJyB8ICdidXR0b24nO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGNvbG9yPzogQ29sb3I7XHJcbiAgaWNvbnM/OiBJY29uW107XHJcbiAgb3B0aW9ucz86IGFueVtdO1xyXG4gIG9wdGlvbkRpc3BsYXk/OiBzdHJpbmdcclxuICBvcHRpb25WYWx1ZT86IHN0cmluZ1xyXG4gIGRldGFpbHNDb25maWc/OiBEZXRhaWxzRGlhbG9nQ29uZmlnXHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEljb257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29sb3I/OiBzdHJpbmdcclxuICB0aXA/OiBzdHJpbmdcclxuICB0aXBGaWVsZD86IHN0cmluZ1xyXG4gIGJhbm5lckZpZWxkPzogc3RyaW5nXHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3Ige1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWd7XHJcbiAgdGlsZXMgOiBUaWxlW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEluaXQ/OiBib29sZWFuXHJcbiAgY2xpY2thYmxlPzogYm9vbGVhblxyXG4gIC8vIHJlbG9hZD86IGJvb2xlYW5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbGUge1xyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRUaWxlPzogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgaW5mbz86IHN0cmluZztcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaWNvbjogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25SZXNwb25zZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIGxvZ2luQ29uZmlnIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWxmU2VydmljZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dvID0gXCJcIjtcclxuICAgIHRoaXMubG9nb1NpemUgPSBcIm5vcm1hbFwiO1xyXG4gIH1cclxuXHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIHNlbGZTZXJ2aWNlOiBib29sZWFuO1xyXG4gIGxvZ286IHN0cmluZztcclxuICBsb2dvU2l6ZTogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIkFwcCBOYW1lXCI7XHJcbiAgICB0aGlzLmxvZ28gPSBcIlwiO1xyXG4gICAgdGhpcy5sb2dvU2l6ZSA9IFwibm9ybWFsXCI7XHJcbiAgICB0aGlzLkFEQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmxvY2FsQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmdvb2dsZUF1dGggPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZlNlcnZpY2UgPSBmYWxzZTtcclxuICAgIHRoaXMubXVsdGl0ZW5hbnQgPSBmYWxzZTtcclxuICAgIHRoaXMubmF2aWdhdGlvbiA9ICd0b3AnO1xyXG4gIH1cclxuICBhcHBOYW1lOiBzdHJpbmc7XHJcbiAgbG9nbzogc3RyaW5nO1xyXG4gIGxvZ29TaXplOiBzdHJpbmc7XHJcbiAgQURBdXRoOiBib29sZWFuO1xyXG4gIGxvY2FsQXV0aDogYm9vbGVhbjtcclxuICBnb29nbGVBdXRoOiBib29sZWFuO1xyXG4gIHNlbGZTZXJ2aWNlOiBib29sZWFuO1xyXG4gIGNhcEl0ZW1zOiBDYXBJdGVtW107XHJcbiAgbXVsdGl0ZW5hbnQgOiBib29sZWFuO1xyXG4gIG5hdmlnYXRpb24gOiAndG9wJyB8ICdzaWRlJ1xyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYXBJdGVtIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gXCJOZXcgQ2FwIEl0ZW1cIjtcclxuICAgIHRoaXMuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50eXBlID0gXCJcIjtcclxuICAgIHRoaXMubmV3TGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XHJcbiAgICB0aGlzLmlnbm9yZVN1YnNEaXNwbGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbmsgPSBcIlwiO1xyXG4gICAgdGhpcy5pY29uID0gXCJuYXZpZ2F0ZV9uZXh0XCI7XHJcblxyXG4gIH1cclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRpc3BsYXk6IHN0cmluZztcclxuICBlbmFibGVkOiBib29sZWFuO1xyXG4gIHNob3dNZW51OiBib29sZWFuO1xyXG5cclxuICBpZ25vcmVTdWJzRGlzcGxheTogYm9vbGVhbjtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbmV3TGluZTogYm9vbGVhbjtcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNhcFN1Ykl0ZW1zOiBDYXBJdGVtW107XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY291bnQge1xyXG4gIHVzZXI6IFVzZXI7XHJcbiAgcHJvZmlsZTogUHJvZmlsZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcblxyXG4gICAgdGhpcy51c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMudHJpZXMgPSBcIjBcIjtcclxuICAgIHRoaXMubG9ja2VkID0gXCIwXCI7XHJcbiAgICB0aGlzLmxvZ2dlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5jaGFuZ2VwYXNzd29yZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kYXRlQ3JlYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy5kYXRlVXBkYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy50b2tlbiA9IFwiXCI7XHJcbiAgICB0aGlzLmRhdGVFeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMudG9rZW5FeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMuYXV0aFR5cGUgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgdXNlck5hbWU6c3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgdHJpZXM6IHN0cmluZztcclxuICBsb2NrZWQ6IHN0cmluZztcclxuICBsb2dnZWQ6IHN0cmluZztcclxuICBkaXNhYmxlZDogc3RyaW5nO1xyXG4gIGNoYW5nZXBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgZGF0ZUNyZWF0ZWQ6IHN0cmluZztcclxuICBkYXRlVXBkYXRlZDogc3RyaW5nO1xyXG4gIGRhdGVFeHBpcmU6IHN0cmluZztcclxuICB0b2tlbjogc3RyaW5nO1xyXG4gIHRva2VuRXhwaXJlOiBzdHJpbmc7XHJcblxyXG4gIGF1dGhUeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFuZ2VVc2VyUGFzc3dvcmQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudXNlck5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5jdXJyZW50UGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgdGhpcy5uZXdQYXNzd29yZCA9IFwiXCI7XHJcbiAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG4gIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcclxuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5uYXJyYXRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5hbW91bnQgPSAnMCc7XHJcbiAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgdGhpcy5kYXRlID0gXCJcIjtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMuZGVzdGluYXRpb25JRCA9IDA7XHJcbiAgICB0aGlzLmNhdGVnb3J5SUQgPSAwO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25JRCA6IG51bWJlcjtcclxuICBuYXJyYXRpb24gOiBzdHJpbmc7XHJcbiAgYW1vdW50IDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICBkYXRlIDogc3RyaW5nO1xyXG4gIGFjY291bnRJRCA6IG51bWJlcjtcclxuICBkZXN0aW5hdGlvbklEIDogbnVtYmVyO1xyXG4gIGNhdGVnb3J5SUQgOiBudW1iZXI7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmluQWNjb3VudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYWNjb3VudElEOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmF1dGhUeXBlID0gXCJsb2NhbFwiO1xyXG4gICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnByb2ZpbGVJRCA9IFwiXCI7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmVtcElEID0gXCJcIjtcclxuICAgIHRoaXMuYXJJRCA9IFwiMFwiO1xyXG4gICAgdGhpcy5hdXRoVHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMucm9sZSA9IG5ldyBSb2xlKCk7XHJcbiAgfVxyXG5cclxuICBwcm9maWxlSUQ6IHN0cmluZztcclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBlbXBJRDogc3RyaW5nO1xyXG4gIGFySUQ6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcm9sZTogUm9sZVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGUge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucm9sZUlEID0gMDtcclxuICAgIHRoaXMucm9sZU5hbWUgPSBcIk5ldyBSb2xlXCI7XHJcbiAgICB0aGlzLmNhcDEgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDExID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDczID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwMCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcm9sZUlEOiBudW1iZXI7XHJcbiAgcm9sZU5hbWU6IHN0cmluZztcclxuICBjYXAxOiBib29sZWFuO1xyXG4gIGNhcDI6IGJvb2xlYW47XHJcbiAgY2FwMzogYm9vbGVhbjtcclxuICBjYXA0OiBib29sZWFuO1xyXG4gIGNhcDU6IGJvb2xlYW47XHJcbiAgY2FwNjogYm9vbGVhbjtcclxuICBjYXA3OiBib29sZWFuO1xyXG4gIGNhcDg6IGJvb2xlYW47XHJcbiAgY2FwOTogYm9vbGVhbjtcclxuICBjYXAxMDogYm9vbGVhbjtcclxuICBjYXAxMTogYm9vbGVhbjtcclxuICBjYXAxMjogYm9vbGVhbjtcclxuICBjYXAxMzogYm9vbGVhbjtcclxuICBjYXAxNDogYm9vbGVhbjtcclxuICBjYXAxNTogYm9vbGVhbjtcclxuICBjYXAxNjogYm9vbGVhbjtcclxuICBjYXAxNzogYm9vbGVhbjtcclxuICBjYXAxODogYm9vbGVhbjtcclxuICBjYXAxOTogYm9vbGVhbjtcclxuICBjYXAyMDogYm9vbGVhbjtcclxuICBjYXAyMTogYm9vbGVhbjtcclxuICBjYXAyMjogYm9vbGVhbjtcclxuICBjYXAyMzogYm9vbGVhbjtcclxuICBjYXAyNDogYm9vbGVhbjtcclxuICBjYXAyNTogYm9vbGVhbjtcclxuICBjYXAyNjogYm9vbGVhbjtcclxuICBjYXAyNzogYm9vbGVhbjtcclxuICBjYXAyODogYm9vbGVhbjtcclxuICBjYXAyOTogYm9vbGVhbjtcclxuICBjYXAzMDogYm9vbGVhbjtcclxuICBjYXAzMTogYm9vbGVhbjtcclxuICBjYXAzMjogYm9vbGVhbjtcclxuICBjYXAzMzogYm9vbGVhbjtcclxuICBjYXAzNDogYm9vbGVhbjtcclxuICBjYXAzNTogYm9vbGVhbjtcclxuICBjYXAzNjogYm9vbGVhbjtcclxuICBjYXAzNzogYm9vbGVhbjtcclxuICBjYXAzODogYm9vbGVhbjtcclxuICBjYXAzOTogYm9vbGVhbjtcclxuICBjYXA0MDogYm9vbGVhbjtcclxuICBjYXA0MTogYm9vbGVhbjtcclxuICBjYXA0MjogYm9vbGVhbjtcclxuICBjYXA0MzogYm9vbGVhbjtcclxuICBjYXA0NDogYm9vbGVhbjtcclxuICBjYXA0NTogYm9vbGVhbjtcclxuICBjYXA0NjogYm9vbGVhbjtcclxuICBjYXA0NzogYm9vbGVhbjtcclxuICBjYXA0ODogYm9vbGVhbjtcclxuICBjYXA0OTogYm9vbGVhbjtcclxuICBjYXA1MDogYm9vbGVhbjtcclxuICBjYXA1MTogYm9vbGVhbjtcclxuICBjYXA1MjogYm9vbGVhbjtcclxuICBjYXA1MzogYm9vbGVhbjtcclxuICBjYXA1NDogYm9vbGVhbjtcclxuICBjYXA1NTogYm9vbGVhbjtcclxuICBjYXA1NjogYm9vbGVhbjtcclxuICBjYXA1NzogYm9vbGVhbjtcclxuICBjYXA1ODogYm9vbGVhbjtcclxuICBjYXA1OTogYm9vbGVhbjtcclxuICBjYXA2MDogYm9vbGVhbjtcclxuICBjYXA2MTogYm9vbGVhbjtcclxuICBjYXA2MjogYm9vbGVhbjtcclxuICBjYXA2MzogYm9vbGVhbjtcclxuICBjYXA2NDogYm9vbGVhbjtcclxuICBjYXA2NTogYm9vbGVhbjtcclxuICBjYXA2NjogYm9vbGVhbjtcclxuICBjYXA2NzogYm9vbGVhbjtcclxuICBjYXA2ODogYm9vbGVhbjtcclxuICBjYXA2OTogYm9vbGVhbjtcclxuICBjYXA3MDogYm9vbGVhbjtcclxuICBjYXA3MTogYm9vbGVhbjtcclxuICBjYXA3MjogYm9vbGVhbjtcclxuICBjYXA3MzogYm9vbGVhbjtcclxuICBjYXA3NDogYm9vbGVhbjtcclxuICBjYXA3NTogYm9vbGVhbjtcclxuICBjYXA3NjogYm9vbGVhbjtcclxuICBjYXA3NzogYm9vbGVhbjtcclxuICBjYXA3ODogYm9vbGVhbjtcclxuICBjYXA3OTogYm9vbGVhbjtcclxuICBjYXA4MDogYm9vbGVhbjtcclxuICBjYXA4MTogYm9vbGVhbjtcclxuICBjYXA4MjogYm9vbGVhbjtcclxuICBjYXA4MzogYm9vbGVhbjtcclxuICBjYXA4NDogYm9vbGVhbjtcclxuICBjYXA4NTogYm9vbGVhbjtcclxuICBjYXA4NjogYm9vbGVhbjtcclxuICBjYXA4NzogYm9vbGVhbjtcclxuICBjYXA4ODogYm9vbGVhbjtcclxuICBjYXA4OTogYm9vbGVhbjtcclxuICBjYXA5MDogYm9vbGVhbjtcclxuICBjYXA5MTogYm9vbGVhbjtcclxuICBjYXA5MjogYm9vbGVhbjtcclxuICBjYXA5MzogYm9vbGVhbjtcclxuICBjYXA5NDogYm9vbGVhbjtcclxuICBjYXA5NTogYm9vbGVhbjtcclxuICBjYXA5NjogYm9vbGVhbjtcclxuICBjYXA5NzogYm9vbGVhbjtcclxuICBjYXA5ODogYm9vbGVhbjtcclxuICBjYXA5OTogYm9vbGVhbjtcclxuICBjYXAxMDA6IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XHJcbiAgQWxsID0gMCxcclxuICBEZWJ1ZyA9IDEsXHJcbiAgSW5mbyA9IDIsXHJcbiAgV2FybiA9IDMsXHJcbiAgRXJyb3IgPSA0LFxyXG4gIEZhdGFsID0gNSxcclxuICBPZmYgPSA2LFxyXG59XHJcbiJdfQ==
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxNQUFNLE9BQU8sV0FBVztDQUl2QjtBQUVELE1BQU0sT0FBTyxTQUFTOztBQUNHLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLDJCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUN4QiwwQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFHaEQsTUFBTSxPQUFPLGdCQUFnQjtDQUk1QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBQXdCO0FBQXBDLFdBQVksYUFBYTtJQUFFLCtDQUFHLENBQUE7SUFBRSwrQ0FBRyxDQUFBO0FBQUEsQ0FBQyxFQUF4QixhQUFhLEtBQWIsYUFBYSxRQUFXO0FBRXBDLE1BQU0sT0FBTyxtQkFBbUI7Q0FjL0I7QUFFRCxNQUFNLE9BQU8sTUFBTTtDQU1sQjtBQUlELE1BQU0sT0FBTyxZQUFZO0NBR3hCO0FBUUQsTUFBTSxPQUFPLFVBQVU7Q0FZdEI7QUErREQsTUFBTSxPQUFPLFdBQVc7Q0FzQnZCO0FBNkJELE1BQU0sT0FBTyxVQUFVO0NBTXRCO0FBY0QsTUFBTSxPQUFPLElBQUk7Q0FHaEI7QUFJRCxNQUFNLE9BQU8sY0FBYztDQUcxQjtBQUdELE1BQU0sT0FBTyxXQUFXO0lBRXRCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFB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S0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Q0F3R0Y7QUFHRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUFPLENBQUE7SUFDUCx5Q0FBUyxDQUFBO0lBQ1QsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7SUFDUix5Q0FBUyxDQUFBO0lBQ1QseUNBQVMsQ0FBQTtJQUNULHFDQUFPLENBQUE7QUFDVCxDQUFDLEVBUlcsUUFBUSxLQUFSLFFBQVEsUUFRbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlIH0gZnJvbSBcIi4vVGluQ29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZ3tcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZXRhaWxzU291cmNlIHtSb3csIFVybH1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgZm9ybUNvbmZpZzogRm9ybUNvbmZpZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlncz86IFRhYmxlQ29uZmlnW107XHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdO1xyXG4gIGRldGFpbHM/IDogYW55XHJcbiAgaGVyb0ZpZWxkPyA6IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIG1vZGUgPzogc3RyaW5nXHJcbiAgLy8gc2V0SGVybyA/OiBib29sZWFuXHJcbiAgZGV0YWlsc1NvdXJjZT86IERldGFpbHNTb3VyY2VcclxuICAvLyBzb3VyY2VNZXRob2QgOiAncm93JyB8ICdpZCcgfCAnaWRGaWVsZCdcclxuICAvLyByb3c/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29uZmlnIHtcclxuICBmaWVsZHM6IFNlYXJjaEZpZWxkW11cclxuICBzZWFyY2hBY3Rpb24/OiBBY3Rpb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGaWVsZCBleHRlbmRzIEZpZWxke1xyXG5cclxuICBzaG93PzogYm9vbGVhblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgZmllbGRzOiBGaWVsZFtdXHJcbiAgbW9kZT86IHN0cmluZ1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBmaWxlQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCdXR0b257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlzaWJsZT86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGRpc3BsYXk/OiBzdHJpbmc7XHJcbiAgaWNvbj86IEljb247XHJcbiAgZGlzYWJsZWQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBjb2xvcj86IHN0cmluZztcclxuICB0aXA/OiBzdHJpbmdcclxuICBkaWFsb2c/OiBib29sZWFuXHJcbiAgYWN0aW9uPzogQWN0aW9uXHJcbiAgY29uZmlybT86IENvbmZpcm1cclxuICBpbkRpYWxvZz86IGJvb2xlYW5cclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIHNldEhlcm9GaWVsZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybSB7XHJcbiAgbWVzc2FnZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9ue1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdtdWx0aS1zZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ3NlY3Rpb24nIHwgJ2JsYW5rJyB8ICdjaGlwJyB8ICdmaWxlJyB8ICdmaWxlLXZpZXcnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbic7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueVtdO1xyXG4gIG9wdGlvbkRpc3BsYXk/OiBzdHJpbmdcclxuICBvcHRpb25WYWx1ZT86IHN0cmluZ1xyXG4gIGRlZmF1bHRWYWx1ZT86IGFueVxyXG4gIGRlZmF1bHRGaXJzdFZhbHVlPzogYm9vbGVhblxyXG4gIHJlcXVpcmVkPzogYm9vbGVhblxyXG4gIG1pbj86IGFueVxyXG4gIG1heD86IGFueVxyXG4gIHJvd3M/OiBudW1iZXJcclxuICBzcGFuPzogYm9vbGVhblxyXG4gIHJlYWRvbmx5PzogYm9vbGVhblxyXG4gIGhpZGRlbj86IGJvb2xlYW5cclxuICBwYXRoPzogc3RyaW5nXHJcbiAga2V5RmlsZWROYW1lPzogc3RyaW5nXHJcbiAgaGludD86IHN0cmluZ1xyXG4gIG1hc3RlckZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGQ/OiBDaGlsZEZpZWxkXHJcbiAgY2hpbGRyZW4/OiBDaGlsZEZpZWxkW11cclxuICBtYXN0ZXJPcHRpb25zPzogYW55W11cclxuICBudWxsYWJsZSA/OiBib29sZWFuXHJcblxyXG4gIGhpZGVPbkNyZWF0ZSA/OiBib29sZWFuXHJcbiAgaGlkZU9uRXhpc3RzID86IGJvb2xlYW5cclxuICBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICByZWFkb25seUNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEZpZWxkIHtcclxuICBjaGlsZEZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGRWYWx1ZUZpZWxkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbmZpZ3tcclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIGNvbHVtbnM/IDogQ29sdW1uW11cclxuICBtaW5Db2x1bW5zPzogc3RyaW5nW11cclxuICBzaG93RmlsdGVyPzogYm9vbGVhblxyXG4gIGVsZXZhdGlvbj86ICdub25lJyB8ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCdcclxuICBmb3JtQ29uZmlnPzogRm9ybUNvbmZpZ1xyXG4gIHNlYXJjaENvbmZpZz86IFNlYXJjaENvbmZpZ1xyXG4gIHRpbGVDb25maWc/OiBUaWxlQ29uZmlnXHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdXHJcbiAgbWluQnV0dG9ucz86IHN0cmluZ1tdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJREZpZWxkID86IHN0cmluZ1xyXG4gIGxvYWRDcml0ZXJpYT86IHN0cmluZ1xyXG4gIGxvZ1Jlc3BvbnNlPzogYm9vbGVhblxyXG4gIGZsYXRCdXR0b25zPzogYm9vbGVhblxyXG4gIGdyZXlPdXQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBjb2xsYXBzZUJ1dHRvbnM/OiBib29sZWFuXHJcbiAgcGFyZW50RGF0YSA/IDogYW55XHJcbiAgaGlkZVRhYkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnY2hpcCcgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBpY29uPzogSWNvbjtcclxuICBjb2xvcj86IENvbG9yO1xyXG4gIGljb25zPzogSWNvbltdO1xyXG4gIG9wdGlvbnM/OiBhbnlbXTtcclxuICBvcHRpb25EaXNwbGF5Pzogc3RyaW5nXHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEljb257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29sb3I/OiBzdHJpbmdcclxuICB0aXA/OiBzdHJpbmdcclxuICB0aXBGaWVsZD86IHN0cmluZ1xyXG4gIGJhbm5lckZpZWxkPzogc3RyaW5nXHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3Ige1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWd7XHJcbiAgdGlsZXMgOiBUaWxlW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEluaXQ/OiBib29sZWFuXHJcbiAgY2xpY2thYmxlPzogYm9vbGVhblxyXG4gIC8vIHJlbG9hZD86IGJvb2xlYW5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbGUge1xyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRUaWxlPzogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgaW5mbz86IHN0cmluZztcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaWNvbjogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25SZXNwb25zZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIGxvZ2luQ29uZmlnIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWxmU2VydmljZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dvID0gXCJcIjtcclxuICAgIHRoaXMubG9nb1NpemUgPSBcIm5vcm1hbFwiO1xyXG4gIH1cclxuXHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIHNlbGZTZXJ2aWNlOiBib29sZWFuO1xyXG4gIGxvZ286IHN0cmluZztcclxuICBsb2dvU2l6ZTogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIkFwcCBOYW1lXCI7XHJcbiAgICB0aGlzLmxvZ28gPSBcIlwiO1xyXG4gICAgdGhpcy5sb2dvU2l6ZSA9IFwibm9ybWFsXCI7XHJcbiAgICB0aGlzLkFEQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmxvY2FsQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmdvb2dsZUF1dGggPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZlNlcnZpY2UgPSBmYWxzZTtcclxuICAgIHRoaXMubXVsdGl0ZW5hbnQgPSBmYWxzZTtcclxuICAgIHRoaXMubmF2aWdhdGlvbiA9ICd0b3AnO1xyXG4gIH1cclxuICBhcHBOYW1lOiBzdHJpbmc7XHJcbiAgbG9nbzogc3RyaW5nO1xyXG4gIGxvZ29TaXplOiBzdHJpbmc7XHJcbiAgQURBdXRoOiBib29sZWFuO1xyXG4gIGxvY2FsQXV0aDogYm9vbGVhbjtcclxuICBnb29nbGVBdXRoOiBib29sZWFuO1xyXG4gIHNlbGZTZXJ2aWNlOiBib29sZWFuO1xyXG4gIGNhcEl0ZW1zOiBDYXBJdGVtW107XHJcbiAgbXVsdGl0ZW5hbnQgOiBib29sZWFuO1xyXG4gIG5hdmlnYXRpb24gOiAndG9wJyB8ICdzaWRlJ1xyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYXBJdGVtIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gXCJOZXcgQ2FwIEl0ZW1cIjtcclxuICAgIHRoaXMuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50eXBlID0gXCJcIjtcclxuICAgIHRoaXMubmV3TGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XHJcbiAgICB0aGlzLmlnbm9yZVN1YnNEaXNwbGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbmsgPSBcIlwiO1xyXG4gICAgdGhpcy5pY29uID0gXCJuYXZpZ2F0ZV9uZXh0XCI7XHJcblxyXG4gIH1cclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRpc3BsYXk6IHN0cmluZztcclxuICBlbmFibGVkOiBib29sZWFuO1xyXG4gIHNob3dNZW51OiBib29sZWFuO1xyXG5cclxuICBpZ25vcmVTdWJzRGlzcGxheTogYm9vbGVhbjtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbmV3TGluZTogYm9vbGVhbjtcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNhcFN1Ykl0ZW1zOiBDYXBJdGVtW107XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY291bnQge1xyXG4gIHVzZXI6IFVzZXI7XHJcbiAgcHJvZmlsZTogUHJvZmlsZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcblxyXG4gICAgdGhpcy51c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMudHJpZXMgPSBcIjBcIjtcclxuICAgIHRoaXMubG9ja2VkID0gXCIwXCI7XHJcbiAgICB0aGlzLmxvZ2dlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5jaGFuZ2VwYXNzd29yZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kYXRlQ3JlYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy5kYXRlVXBkYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy50b2tlbiA9IFwiXCI7XHJcbiAgICB0aGlzLmRhdGVFeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMudG9rZW5FeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMuYXV0aFR5cGUgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgdXNlck5hbWU6c3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgdHJpZXM6IHN0cmluZztcclxuICBsb2NrZWQ6IHN0cmluZztcclxuICBsb2dnZWQ6IHN0cmluZztcclxuICBkaXNhYmxlZDogc3RyaW5nO1xyXG4gIGNoYW5nZXBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgZGF0ZUNyZWF0ZWQ6IHN0cmluZztcclxuICBkYXRlVXBkYXRlZDogc3RyaW5nO1xyXG4gIGRhdGVFeHBpcmU6IHN0cmluZztcclxuICB0b2tlbjogc3RyaW5nO1xyXG4gIHRva2VuRXhwaXJlOiBzdHJpbmc7XHJcblxyXG4gIGF1dGhUeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFuZ2VVc2VyUGFzc3dvcmQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudXNlck5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5jdXJyZW50UGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgdGhpcy5uZXdQYXNzd29yZCA9IFwiXCI7XHJcbiAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG4gIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcclxuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5uYXJyYXRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5hbW91bnQgPSAnMCc7XHJcbiAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgdGhpcy5kYXRlID0gXCJcIjtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMuZGVzdGluYXRpb25JRCA9IDA7XHJcbiAgICB0aGlzLmNhdGVnb3J5SUQgPSAwO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25JRCA6IG51bWJlcjtcclxuICBuYXJyYXRpb24gOiBzdHJpbmc7XHJcbiAgYW1vdW50IDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICBkYXRlIDogc3RyaW5nO1xyXG4gIGFjY291bnRJRCA6IG51bWJlcjtcclxuICBkZXN0aW5hdGlvbklEIDogbnVtYmVyO1xyXG4gIGNhdGVnb3J5SUQgOiBudW1iZXI7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmluQWNjb3VudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYWNjb3VudElEOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmF1dGhUeXBlID0gXCJsb2NhbFwiO1xyXG4gICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnByb2ZpbGVJRCA9IFwiXCI7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmVtcElEID0gXCJcIjtcclxuICAgIHRoaXMuYXJJRCA9IFwiMFwiO1xyXG4gICAgdGhpcy5hdXRoVHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMucm9sZSA9IG5ldyBSb2xlKCk7XHJcbiAgfVxyXG5cclxuICBwcm9maWxlSUQ6IHN0cmluZztcclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBlbXBJRDogc3RyaW5nO1xyXG4gIGFySUQ6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcm9sZTogUm9sZVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGUge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucm9sZUlEID0gMDtcclxuICAgIHRoaXMucm9sZU5hbWUgPSBcIk5ldyBSb2xlXCI7XHJcbiAgICB0aGlzLmNhcDEgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDExID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDczID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwMCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcm9sZUlEOiBudW1iZXI7XHJcbiAgcm9sZU5hbWU6IHN0cmluZztcclxuICBjYXAxOiBib29sZWFuO1xyXG4gIGNhcDI6IGJvb2xlYW47XHJcbiAgY2FwMzogYm9vbGVhbjtcclxuICBjYXA0OiBib29sZWFuO1xyXG4gIGNhcDU6IGJvb2xlYW47XHJcbiAgY2FwNjogYm9vbGVhbjtcclxuICBjYXA3OiBib29sZWFuO1xyXG4gIGNhcDg6IGJvb2xlYW47XHJcbiAgY2FwOTogYm9vbGVhbjtcclxuICBjYXAxMDogYm9vbGVhbjtcclxuICBjYXAxMTogYm9vbGVhbjtcclxuICBjYXAxMjogYm9vbGVhbjtcclxuICBjYXAxMzogYm9vbGVhbjtcclxuICBjYXAxNDogYm9vbGVhbjtcclxuICBjYXAxNTogYm9vbGVhbjtcclxuICBjYXAxNjogYm9vbGVhbjtcclxuICBjYXAxNzogYm9vbGVhbjtcclxuICBjYXAxODogYm9vbGVhbjtcclxuICBjYXAxOTogYm9vbGVhbjtcclxuICBjYXAyMDogYm9vbGVhbjtcclxuICBjYXAyMTogYm9vbGVhbjtcclxuICBjYXAyMjogYm9vbGVhbjtcclxuICBjYXAyMzogYm9vbGVhbjtcclxuICBjYXAyNDogYm9vbGVhbjtcclxuICBjYXAyNTogYm9vbGVhbjtcclxuICBjYXAyNjogYm9vbGVhbjtcclxuICBjYXAyNzogYm9vbGVhbjtcclxuICBjYXAyODogYm9vbGVhbjtcclxuICBjYXAyOTogYm9vbGVhbjtcclxuICBjYXAzMDogYm9vbGVhbjtcclxuICBjYXAzMTogYm9vbGVhbjtcclxuICBjYXAzMjogYm9vbGVhbjtcclxuICBjYXAzMzogYm9vbGVhbjtcclxuICBjYXAzNDogYm9vbGVhbjtcclxuICBjYXAzNTogYm9vbGVhbjtcclxuICBjYXAzNjogYm9vbGVhbjtcclxuICBjYXAzNzogYm9vbGVhbjtcclxuICBjYXAzODogYm9vbGVhbjtcclxuICBjYXAzOTogYm9vbGVhbjtcclxuICBjYXA0MDogYm9vbGVhbjtcclxuICBjYXA0MTogYm9vbGVhbjtcclxuICBjYXA0MjogYm9vbGVhbjtcclxuICBjYXA0MzogYm9vbGVhbjtcclxuICBjYXA0NDogYm9vbGVhbjtcclxuICBjYXA0NTogYm9vbGVhbjtcclxuICBjYXA0NjogYm9vbGVhbjtcclxuICBjYXA0NzogYm9vbGVhbjtcclxuICBjYXA0ODogYm9vbGVhbjtcclxuICBjYXA0OTogYm9vbGVhbjtcclxuICBjYXA1MDogYm9vbGVhbjtcclxuICBjYXA1MTogYm9vbGVhbjtcclxuICBjYXA1MjogYm9vbGVhbjtcclxuICBjYXA1MzogYm9vbGVhbjtcclxuICBjYXA1NDogYm9vbGVhbjtcclxuICBjYXA1NTogYm9vbGVhbjtcclxuICBjYXA1NjogYm9vbGVhbjtcclxuICBjYXA1NzogYm9vbGVhbjtcclxuICBjYXA1ODogYm9vbGVhbjtcclxuICBjYXA1OTogYm9vbGVhbjtcclxuICBjYXA2MDogYm9vbGVhbjtcclxuICBjYXA2MTogYm9vbGVhbjtcclxuICBjYXA2MjogYm9vbGVhbjtcclxuICBjYXA2MzogYm9vbGVhbjtcclxuICBjYXA2NDogYm9vbGVhbjtcclxuICBjYXA2NTogYm9vbGVhbjtcclxuICBjYXA2NjogYm9vbGVhbjtcclxuICBjYXA2NzogYm9vbGVhbjtcclxuICBjYXA2ODogYm9vbGVhbjtcclxuICBjYXA2OTogYm9vbGVhbjtcclxuICBjYXA3MDogYm9vbGVhbjtcclxuICBjYXA3MTogYm9vbGVhbjtcclxuICBjYXA3MjogYm9vbGVhbjtcclxuICBjYXA3MzogYm9vbGVhbjtcclxuICBjYXA3NDogYm9vbGVhbjtcclxuICBjYXA3NTogYm9vbGVhbjtcclxuICBjYXA3NjogYm9vbGVhbjtcclxuICBjYXA3NzogYm9vbGVhbjtcclxuICBjYXA3ODogYm9vbGVhbjtcclxuICBjYXA3OTogYm9vbGVhbjtcclxuICBjYXA4MDogYm9vbGVhbjtcclxuICBjYXA4MTogYm9vbGVhbjtcclxuICBjYXA4MjogYm9vbGVhbjtcclxuICBjYXA4MzogYm9vbGVhbjtcclxuICBjYXA4NDogYm9vbGVhbjtcclxuICBjYXA4NTogYm9vbGVhbjtcclxuICBjYXA4NjogYm9vbGVhbjtcclxuICBjYXA4NzogYm9vbGVhbjtcclxuICBjYXA4ODogYm9vbGVhbjtcclxuICBjYXA4OTogYm9vbGVhbjtcclxuICBjYXA5MDogYm9vbGVhbjtcclxuICBjYXA5MTogYm9vbGVhbjtcclxuICBjYXA5MjogYm9vbGVhbjtcclxuICBjYXA5MzogYm9vbGVhbjtcclxuICBjYXA5NDogYm9vbGVhbjtcclxuICBjYXA5NTogYm9vbGVhbjtcclxuICBjYXA5NjogYm9vbGVhbjtcclxuICBjYXA5NzogYm9vbGVhbjtcclxuICBjYXA5ODogYm9vbGVhbjtcclxuICBjYXA5OTogYm9vbGVhbjtcclxuICBjYXAxMDA6IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XHJcbiAgQWxsID0gMCxcclxuICBEZWJ1ZyA9IDEsXHJcbiAgSW5mbyA9IDIsXHJcbiAgV2FybiA9IDMsXHJcbiAgRXJyb3IgPSA0LFxyXG4gIEZhdGFsID0gNSxcclxuICBPZmYgPSA2LFxyXG59XHJcbiJdfQ==
|
|
@@ -43,6 +43,20 @@ export class Core {
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
+
static testVisible(config, data, f) {
|
|
47
|
+
if (f.hidden)
|
|
48
|
+
return false;
|
|
49
|
+
if (config.mode == 'create' && f.hideOnCreate) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
if (config.mode != 'create' && f.hideOnExists) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
if (f.hiddenCondition) {
|
|
56
|
+
return !f.hiddenCondition(data);
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
46
60
|
static validateObject(fields, data) {
|
|
47
61
|
console.log("Validations");
|
|
48
62
|
for (let field of fields) {
|
|
@@ -78,12 +92,13 @@ export class Core {
|
|
|
78
92
|
return '';
|
|
79
93
|
}
|
|
80
94
|
static getInitialValue(field) {
|
|
81
|
-
// if (field.defaultFirstValue && field.options){
|
|
82
|
-
// return field.options[0][field.optionValue]
|
|
83
|
-
// }
|
|
84
95
|
if (field.defaultValue) {
|
|
96
|
+
if (field.type == 'date' || field.type == 'datetime' && field.defaultValue == 'now')
|
|
97
|
+
return this.nowDate(true);
|
|
85
98
|
return field.defaultValue;
|
|
86
99
|
}
|
|
100
|
+
if (field.type == 'select' && (field.hidden || field.hideOnCreate))
|
|
101
|
+
return 0;
|
|
87
102
|
switch (field.type) {
|
|
88
103
|
case 'text':
|
|
89
104
|
return '';
|
|
@@ -92,7 +107,7 @@ export class Core {
|
|
|
92
107
|
case 'number':
|
|
93
108
|
return 0;
|
|
94
109
|
case 'date':
|
|
95
|
-
return
|
|
110
|
+
return this.nowDate(true);
|
|
96
111
|
case 'checkbox':
|
|
97
112
|
return false;
|
|
98
113
|
case 'select':
|
|
@@ -382,4 +397,4 @@ export class DetailsDialogProcessor {
|
|
|
382
397
|
return { extraButtons, createButton, editButton, deleteButton };
|
|
383
398
|
}
|
|
384
399
|
}
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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USxFQUFFO2dCQUNoQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4STtZQUNELFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztZQUN0RCxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDbEQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldGFpbHNEaWFsb2dDb25maWcsIERldGFpbHNTb3VyY2UsIEZpZWxkLCBGb3JtQ29uZmlnIH0gZnJvbSBcIi4vQ2xhc3Nlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvcmUge1xyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkZWVwQ2xvbmUob2JqKSB7XHJcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICBjb25zdCBhcnJDb3B5ID0gW107XHJcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGFyckNvcHlbaW5kZXhdID0gdGhpcy5kZWVwQ2xvbmUoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYXJyQ29weTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYmpDb3B5ID0ge307XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgb2JqQ29weVtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JqQ29weTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjYW1lbFRvV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBsZXQgdiA9IHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc3Vic3RyaW5nKDEpXHJcbiAgICByZXR1cm4gdi5yZXBsYWNlKC8oW0EtWl0rKSooW0EtWl1bYS16XSkvZywgXCIkMSAkMlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdKSB7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycgKXtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlc2V0T2JqZWN0KGZpZWxkczogRmllbGRbXSwgZGF0YSkge1xyXG5cclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgIT0gJ3NlY3Rpb24nICYmIGZpZWxkLnR5cGUgIT0gJ2JsYW5rJykge1xyXG4gICAgICAgIGRhdGFbZmllbGQubmFtZV0gPSB0aGlzLmdldEluaXRpYWxWYWx1ZShmaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKTogc3RyaW5nIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIlZhbGlkYXRpb25zXCIpXHJcblxyXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PSAnZmlsZScgfHwgZmllbGQudHlwZSA9PSAnZmlsZS12aWV3JyB8fCBmaWVsZC50eXBlID09ICdibGFuaycgfHwgZmllbGQudHlwZSA9PSAnc2VjdGlvbicgKSBjb250aW51ZVxyXG5cclxuXHJcblxyXG4gICAgICBsZXQgbmFtZSA9IGZpZWxkLmFsaWFzID8/IHRoaXMuY2FtZWxUb1dvcmRzKGZpZWxkLm5hbWUpO1xyXG4gICAgICBsZXQgZCA9IGRhdGFbZmllbGQubmFtZV07XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2cobmFtZSArICcgJyArIGQpXHJcblxyXG4gICAgICBpZiAoZmllbGQucmVxdWlyZWQpe1xyXG5cclxuICAgICAgICBpZiAoZCA9PSB1bmRlZmluZWQgfHwgZCA9PSBudWxsKSByZXR1cm4gYCR7bmFtZX0gaXMgcmVxdWlyZWRgO1xyXG5cclxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PSAndGV4dCcpe1xyXG5cclxuICAgICAgICAgIGlmIChkID09ICcnKSByZXR1cm4gYFBsZWFzZSBlbnRlciAke25hbWV9YDtcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWluICYmIGQubGVuZ3RoIDwgZmllbGQubWluKSByZXR1cm4gYE1pbmltdW0gICR7bmFtZX0gbGVuZ3RoIGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQubGVuZ3RoID4gZmllbGQubWF4KSByZXR1cm4gYE1heGltdW0gJHtuYW1lfSBsZW5ndGggaXMgJHtmaWVsZC5tYXh9YFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnbnVtYmVyJyB8fCBmaWVsZC50eXBlID09ICdtb25leScgfHwgZmllbGQudHlwZSA9PSAnZGF0ZScpe1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5taW4gJiYgZCA8IGZpZWxkLm1pbikgcmV0dXJuIGBNaW5pbXVtICAke25hbWV9IGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQgPiBmaWVsZC5tYXgpIHJldHVybiBgTWF4aW11bSAke25hbWV9IGlzICR7ZmllbGQubWF4fWBcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcpIHtcclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mKGQpID09ICdzdHJpbmcnICYmIGQgPT0gJycpIHJldHVybiBgUGxlYXNlIHNlbGVjdCAke25hbWV9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRJbml0aWFsVmFsdWUoZmllbGQ6IEZpZWxkKSB7XHJcblxyXG4gICAgLy8gaWYgKGZpZWxkLmRlZmF1bHRGaXJzdFZhbHVlICYmIGZpZWxkLm9wdGlvbnMpe1xyXG4gICAgLy8gICByZXR1cm4gZmllbGQub3B0aW9uc1swXVtmaWVsZC5vcHRpb25WYWx1ZV1cclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAoZmllbGQuZGVmYXVsdFZhbHVlKXtcclxuICAgICAgcmV0dXJuIGZpZWxkLmRlZmF1bHRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdtb25leSc6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSAnc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRDbG9uZSh4KSB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWVwQ2xvbmUoeCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XHJcblxyXG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gXCJcIikge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvbmx5TnVtYmVycyA9IHZhbHVlLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKTtcclxuICAgIHJldHVybiBvbmx5TnVtYmVyc1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGaXJzdERheU9mTW9udGgoKSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVtYWlsSXNWYWxpZChlbWFpbCkge1xyXG4gICAgLy8gcmV0dXJuIC9cXFMrQFxcUytcXC5cXFMrLy50ZXN0KGVtYWlsKVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkVU5DUGF0aChwYXRoOiBzdHJpbmcpIHtcclxuICAgIC8vIHJldHVybiAvXFxcXFxcXFwoW2EtekEtWjAtOV8uJOKXjy1dKylcXFxcKFthLXpBLVowLTlfLiTil48tXSspLiovLnRlc3QocGF0aClcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUoZGF0ZSkge1xyXG5cclxuICAgIHZhciBwYXJzZWREYXRlID0gRGF0ZS5wYXJzZShkYXRlKTtcclxuXHJcblxyXG4gICAgaWYgKGlzTmFOKGRhdGUpICYmICFpc05hTihwYXJzZWREYXRlKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFbWFpbExpc3QobGlzdDogc3RyaW5nKSB7XHJcblxyXG4gICAgaWYgKGxpc3QuaW5jbHVkZXMoXCI7XCIpKSB7XHJcblxyXG4gICAgICBsZXQgZW1haWxzID0gbGlzdC5zcGxpdChcIjtcIilcclxuXHJcbiAgICAgIGZvciAodmFyIGVtYWlsIG9mIGVtYWlscykge1xyXG4gICAgICAgIGlmICh0aGlzLmVtYWlsSXNWYWxpZChlbWFpbCkgPT0gZmFsc2UpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLmVtYWlsSXNWYWxpZChsaXN0KSA9PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG51bGxEYXRlID0gXCIwMSBKYW4gMTk2OVwiXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNOdW1iZXIodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICgodmFsdWUgIT0gbnVsbCkgJiZcclxuICAgICAgKHZhbHVlICE9PSAnJykgJiZcclxuICAgICAgIWlzTmFOKE51bWJlcih2YWx1ZS50b1N0cmluZygpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXREaWZmKHN0YXJ0RGF0ZSwgZW5kRGF0ZSA9IERhdGUoKSkge1xyXG5cclxuICAgIHZhciBldmVudFN0YXJ0VGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XHJcbiAgICB2YXIgZXZlbnRFbmRUaW1lID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gZXZlbnRFbmRUaW1lLnZhbHVlT2YoKSAtIGV2ZW50U3RhcnRUaW1lLnZhbHVlT2YoKTtcclxuXHJcbiAgICBmdW5jdGlvbiBudW1iZXJFbmRpbmcobnVtYmVyOiBudW1iZXIpIHtcclxuXHJcbiAgICAgIGlmIChudW1iZXIudG9GaXhlZCgpID09ICcxJykge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAncyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdmFyIG1pbnV0ZXMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCkpO1xyXG5cclxuICAgIHZhciBob3VyczogbnVtYmVyID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCkpO1xyXG5cclxuICAgIHZhciBkYXlzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XHJcblxyXG4gICAgdmFyIHdlZWtzOiBudW1iZXIgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiA3KSk7XHJcblxyXG4gICAgdmFyIG1vbnRocyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDcgKiA0KSk7XHJcblxyXG4gICAgdmFyIHllYXJzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1KSk7XHJcblxyXG5cclxuICAgIGlmICh5ZWFycyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4geWVhcnMudG9GaXhlZCgpICsgJyB5ZWFyJyArIG51bWJlckVuZGluZyh5ZWFycyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtb250aHMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIG1vbnRocy50b0ZpeGVkKCkgKyAnIG1vbnRoJyArIG51bWJlckVuZGluZyhtb250aHMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAod2Vla3MgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIHdlZWtzLnRvRml4ZWQoKSArICcgd2VlaycgKyBudW1iZXJFbmRpbmcod2Vla3MpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoZGF5cyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gZGF5cy50b0ZpeGVkKCkgKyAnIGRheScgKyBudW1iZXJFbmRpbmcoZGF5cyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChob3VycyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gaG91cnMudG9GaXhlZCgpICsgJyBob3VyJyArIG51bWJlckVuZGluZyhob3Vycyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtaW51dGVzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBtaW51dGVzLnRvRml4ZWQoKSArICcgbWludXRlJyArIG51bWJlckVuZGluZyhtaW51dGVzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1pbGxpc2Vjb25kcyA+PSAoLTEwMDAgKiA2MCkpIHtcclxuXHJcbiAgICAgIHJldHVybiAnYSBtaW51dGUnO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICByZXR1cm4gJ04vQSc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbm93RGF0ZShOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuICAgIGlmIChOb1RpbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWREYXRlKERhdGUoKSwgdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXRlZERhdGUoRGF0ZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rm9ybWF0ZWREYXRlKGRhdGVTdHJpbmc6IHN0cmluZywgTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcbiAgICBsZXQgZDogRGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xyXG4gICAgZC5zZXRIb3VycyhkLmdldEhvdXJzKCkgKyAyKTtcclxuXHJcbiAgICBpZiAoTm9UaW1lID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnLicpWzBdO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rm9ybWF0ZWREYXRlMihkIDogRGF0ZSwgTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgZC5zZXRIb3VycyhkLmdldEhvdXJzKCkgKyAyKTtcclxuXHJcbiAgICBpZiAoTm9UaW1lID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnLicpWzBdO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0QnVzaW5lc3NEYXRlc0NvdW50KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpIHtcclxuICAgIHZhciBjb3VudCA9IDA7XHJcbiAgICB2YXIgX3N0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XHJcbiAgICB2YXIgX2VuZERhdGUgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuXHJcbiAgICB2YXIgY3VyRGF0ZSA9IF9zdGFydERhdGU7XHJcblxyXG4gICAgd2hpbGUgKGN1ckRhdGUgPCBfZW5kRGF0ZSkge1xyXG4gICAgICB2YXIgZGF5T2ZXZWVrID0gY3VyRGF0ZS5nZXREYXkoKTtcclxuICAgICAgaWYgKCEoZGF5T2ZXZWVrID09IDYgfHwgZGF5T2ZXZWVrID09IDApKSBjb3VudCsrO1xyXG4gICAgICBjdXJEYXRlLnNldERhdGUoY3VyRGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nUHJvY2Vzc29yIHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBwcm9jZXNzRGV0YWlsc0NvbmZpZyhkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCByb3c6IGFueSk6IERldGFpbHNEaWFsb2dDb25maWcge1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZWREZXRhaWxzQ29uZmlnIDogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IENvcmUuZ2V0Q2xvbmUoZGV0YWlsc0NvbmZpZyk7XHJcbiAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5kZXRhaWxzID0gcm93O1xyXG5cclxuICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLmZvcm1Db25maWcubW9kZSA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLm1vZGUgPz8gXCJ2aWV3XCI7XHJcblxyXG4gICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCkge1xyXG4gICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUgPSByb3dbdXBkYXRlZERldGFpbHNDb25maWcuaGVyb0ZpZWxkXTtcclxuXHJcbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVRhYmxlQ29uZmlnKHRhYmxlQ29uZmlnKSB7XHJcbiAgICAgICAgdGFibGVDb25maWcuaGVyb0ZpZWxkID0gdXBkYXRlZERldGFpbHNDb25maWcuaGVyb0ZpZWxkO1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLmhlcm9WYWx1ZSA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZTtcclxuICAgICAgICAvLyB0YWJsZUNvbmZpZy5zZXRIZXJvID0gdXBkYXRlZERldGFpbHNDb25maWcuc2V0SGVybztcclxuICAgICAgICB0YWJsZUNvbmZpZy5zZWFyY2hDb25maWcgPSBudWxsO1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLnRpbGVDb25maWcgPSBudWxsO1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLnBhcmVudERhdGEgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5kZXRhaWxzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpIHtcclxuICAgICAgICB1cGRhdGVUYWJsZUNvbmZpZyh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MpIHtcclxuICAgICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MuZm9yRWFjaCh1cGRhdGVUYWJsZUNvbmZpZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1Mb2FkVXJsKHRhYmxlQ29uZmlnKSB7XHJcbiAgICAgIGlmICh0YWJsZUNvbmZpZy5sb2FkQWN0aW9uICYmIHRhYmxlQ29uZmlnLmxvYWRDcml0ZXJpYSAmJiB0YWJsZUNvbmZpZy5sb2FkSURGaWVsZCkge1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLmxvYWRBY3Rpb24udXJsID0gYCR7dGFibGVDb25maWcubG9hZEFjdGlvbi51cmwuc3BsaXQoJy8nKVswXX0vJHt0YWJsZUNvbmZpZy5sb2FkQ3JpdGVyaWF9LyR7dXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlsc1t0YWJsZUNvbmZpZy5sb2FkSURGaWVsZF19YDtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlRyYW5zZm9ybWVkXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTk9UIFRyYW5zZm9ybWVkXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKSB7XHJcbiAgICAgIHRyYW5zZm9ybUxvYWRVcmwodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MpIHtcclxuICAgICAgdXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzLmZvckVhY2godHJhbnNmb3JtTG9hZFVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVwZGF0ZWREZXRhaWxzQ29uZmlnO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBpbml0aWFsaXplQ29uZmlncyhkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBjb25zdCB0YWJsZUNvbmZpZyA9IGRldGFpbHNDb25maWcudGFibGVDb25maWc7XHJcbiAgICBjb25zdCB0YWJsZUNvbmZpZ3MgPSBkZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncztcclxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBkZXRhaWxzQ29uZmlnLmZvcm1Db25maWc7XHJcbiAgICBjb25zdCBidXR0b25zID0gZGV0YWlsc0NvbmZpZy5idXR0b25zO1xyXG4gICAgZm9ybUNvbmZpZy5tb2RlID0gZm9ybUNvbmZpZy5tb2RlID8/IFwidmlld1wiO1xyXG4gICAgcmV0dXJuIHsgdGFibGVDb25maWcsIHRhYmxlQ29uZmlncywgZm9ybUNvbmZpZywgYnV0dG9ucyB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNldEhlcm9WYWx1ZShkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBkZXRhaWxzOiBhbnkpIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhkZXRhaWxzQ29uZmlnKVxyXG5cclxuICAgIGlmICgoZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnLm1vZGUgPT0gXCJjcmVhdGVcIiAgKSAmJiBkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiBkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG4gICAgICBkZXRhaWxzW2RldGFpbHNDb25maWcuaGVyb0ZpZWxkXSA9IGRldGFpbHNDb25maWcuaGVyb1ZhbHVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgKGRldGFpbHNDb25maWcuY29uZmlnLm1vZGUgIT0gXCJjcmVhdGVcIiAmJiBkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCkge1xyXG4gICAgLy8gICBkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSA9IGRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdO1xyXG4gICAgLy8gfVxyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZyhkZXRhaWxzQ29uZmlnKVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGhhbmRsZUZvcm1Nb2RlKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGZvcm1Db25maWc6IEZvcm1Db25maWcsKSB7XHJcbiAgICBsZXQgZGV0YWlscztcclxuICAgIGxldCBhY3Rpb247XHJcbiAgICBsZXQgbG9hZEJ5QWN0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKGZvcm1Db25maWcubW9kZSA9PT0gXCJjcmVhdGVcIikge1xyXG5cclxuICAgICAgZGV0YWlscyA9IENvcmUuZ2VuZXJhdGVPYmplY3QoZm9ybUNvbmZpZy5maWVsZHMpO1xyXG5cclxuICAgICAgLy8gdGhpcy5zZXRIZXJvVmFsdWUoZGV0YWlsc0NvbmZpZywgZGV0YWlscyk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHJlc3AgPSB0aGlzLmxvYWREZXRhaWxzRGF0YShkZXRhaWxzQ29uZmlnLCBmb3JtQ29uZmlnKTtcclxuICAgICAgZGV0YWlscyA9IHJlc3AuZGV0YWlscztcclxuXHJcbiAgICAgIGFjdGlvbiA9IHJlc3AuYWN0aW9uO1xyXG4gICAgICBsb2FkQnlBY3Rpb24gPSByZXNwLmxvYWRCeUFjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBkZXRhaWxzLCBsb2FkQnlBY3Rpb24sIGFjdGlvbiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgbG9hZERldGFpbHNEYXRhKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGZvcm1Db25maWc6IEZvcm1Db25maWcpIHtcclxuXHJcbiAgICBsZXQgZGV0YWlscztcclxuICAgIGxldCBhY3Rpb247XHJcbiAgICBsZXQgbG9hZEJ5QWN0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJMb2FkaW5nIERldGFpbHMgRGF0YVwiIClcclxuICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcbiAgICBjb25zb2xlLmxvZyhmb3JtQ29uZmlnKVxyXG5cclxuXHJcblxyXG4gICAgLy9DaG9vc2Ugc291cmNlXHJcbiAgICBpZiAoZGV0YWlsc0NvbmZpZy5kZXRhaWxzU291cmNlID09IERldGFpbHNTb3VyY2UuUm93KSB7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIkRldGFpbHMgRGF0YSBSb3cgY29uZmlnXCIpXHJcbiAgICAgIGRldGFpbHMgPSBkZXRhaWxzQ29uZmlnLmRldGFpbHM7XHJcblxyXG4gICAgfSBlbHNlIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHNTb3VyY2UgPT0gRGV0YWlsc1NvdXJjZS5VcmwpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzIERhdGEgVXJsIGNvbmZpZ1wiKVxyXG4gICAgICBhY3Rpb24gPSB0aGlzLmxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnLCBmb3JtQ29uZmlnKTtcclxuICAgICAgbG9hZEJ5QWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkRldGFpbHMgRGF0YSBFbHNlXCIpXHJcbiAgICAgIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHMgJiYgIWRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmICFkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIGRldGFpbHNcIik7XHJcbiAgICAgICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZyk7XHJcbiAgICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybUNvbmZpZy5sb2FkQWN0aW9uKSB7XHJcblxyXG4gICAgICAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYXV0byBkYXRhIHNvdXJjZSBmYWlsZWQgdG8gcGljaywgdHJ5aW5nIHNvdXJjZSBjb25maWdcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIHJldHVybiB7IGRldGFpbHMsIGxvYWRCeUFjdGlvbiwgYWN0aW9uIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBsb2FkRGV0YWlsc0Zyb21VcmwoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG4gICAgbGV0IGFjdGlvbjtcclxuXHJcbiAgICBpZiAoZm9ybUNvbmZpZy5sb2FkQWN0aW9uKSB7XHJcblxyXG4gICAgICBpZiAoZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQgJiYgZGV0YWlsc0NvbmZpZy5kZXRhaWxzKSB7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgZm9ybSBkYXRhIGZyb20gdXJsICsgSUQgRmllbGQgXCIgKyBkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCk7XHJcbiAgICAgICAgYWN0aW9uID0geyB1cmw6IGAke2Zvcm1Db25maWcubG9hZEFjdGlvbi51cmx9LyR7ZGV0YWlsc0NvbmZpZy5kZXRhaWxzW2RldGFpbHNDb25maWcuaGVyb0ZpZWxkXX1gIH07XHJcblxyXG4gICAgICB9IGVsc2UgaWYgKGRldGFpbHNDb25maWcuaGVyb1ZhbHVlKSB7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgZm9ybSBkYXRhIGZyb20gdXJsICsgU29saWQgSURcIik7XHJcbiAgICAgICAgYWN0aW9uID0geyB1cmw6IGAke2Zvcm1Db25maWcubG9hZEFjdGlvbi51cmx9LyR7ZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWV9YCB9O1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidXJsIHNvdXJjZSBmYWlsZWQgOiBzZXR1cCBoZXJvIGZpZWxkIG9yIGhlcm8gdmFsdWVcIik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc29sZS5sb2coXCJObyBsb2FkIGFjdGlvbiBzZXRcIik7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICByZXR1cm4gYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNldEZpbGVGaWVsZChmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcbiAgICByZXR1cm4gZm9ybUNvbmZpZy5maWVsZHMuZmluZCh4ID0+IHgudHlwZSA9PT0gJ2ZpbGUnKTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgc2V0dXBCdXR0b25zKGZvcm1Db25maWc6IEZvcm1Db25maWcsIGJ1dHRvbnM6IGFueSkge1xyXG4gICAgbGV0IGV4dHJhQnV0dG9ucywgY3JlYXRlQnV0dG9uLCBlZGl0QnV0dG9uLCBkZWxldGVCdXR0b247XHJcblxyXG4gICAgaWYgKGJ1dHRvbnMpIHtcclxuICAgICAgaWYgKGZvcm1Db25maWcubW9kZSAhPT0gXCJjcmVhdGVcIikge1xyXG4gICAgICAgIGV4dHJhQnV0dG9ucyA9IGJ1dHRvbnMuZmlsdGVyKHggPT4geC5uYW1lICE9PSBcImNyZWF0ZVwiICYmIHgubmFtZSAhPT0gXCJlZGl0XCIgJiYgeC5uYW1lICE9PSBcImRlbGV0ZVwiICYmIHgubmFtZSAhPT0gXCJ2aWV3XCIgJiYgeC5pbkRpYWxvZyk7XHJcbiAgICAgIH1cclxuICAgICAgY3JlYXRlQnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImNyZWF0ZVwiKTtcclxuICAgICAgZWRpdEJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJlZGl0XCIpO1xyXG4gICAgICBkZWxldGVCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiZGVsZXRlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgZXh0cmFCdXR0b25zLCBjcmVhdGVCdXR0b24sIGVkaXRCdXR0b24sIGRlbGV0ZUJ1dHRvbiB9O1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuIl19
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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Q0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDdEQsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXRhaWxzRGlhbG9nQ29uZmlnLCBEZXRhaWxzU291cmNlLCBGaWVsZCwgRm9ybUNvbmZpZyB9IGZyb20gXCIuL0NsYXNzZXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb3JlIHtcclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGVlcENsb25lKG9iaikge1xyXG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgY29uc3QgYXJyQ29weSA9IFtdO1xyXG4gICAgICBvYmouZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBhcnJDb3B5W2luZGV4XSA9IHRoaXMuZGVlcENsb25lKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFyckNvcHk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JqQ29weSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIG9iakNvcHlba2V5XSA9IHRoaXMuZGVlcENsb25lKG9ialtrZXldKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9iakNvcHk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2FtZWxUb1dvcmRzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgbGV0IHYgPSB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnN1YnN0cmluZygxKVxyXG4gICAgcmV0dXJuIHYucmVwbGFjZSgvKFtBLVpdKykqKFtBLVpdW2Etel0pL2csIFwiJDEgJDJcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlT2JqZWN0KGZpZWxkczogRmllbGRbXSkge1xyXG5cclxuICAgIGxldCBkYXRhID0ge307XHJcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPSAnc2VjdGlvbicgJiYgZmllbGQudHlwZSAhPSAnYmxhbmsnICl7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKGZpZWxkKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZXNldE9iamVjdChmaWVsZHM6IEZpZWxkW10sIGRhdGEpIHtcclxuXHJcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycpIHtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHRlc3RWaXNpYmxlKGNvbmZpZyA6IEZvcm1Db25maWcsIGRhdGEsIGY6IEZpZWxkKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKGNvbmZpZy5tb2RlID09ICdjcmVhdGUnICYmIGYuaGlkZU9uQ3JlYXRlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGNvbmZpZy5tb2RlICE9ICdjcmVhdGUnICYmIGYuaGlkZU9uRXhpc3RzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZi5oaWRkZW5Db25kaXRpb24pIHtcclxuICAgICAgcmV0dXJuICFmLmhpZGRlbkNvbmRpdGlvbihkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKTogc3RyaW5nIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIlZhbGlkYXRpb25zXCIpXHJcblxyXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PSAnZmlsZScgfHwgZmllbGQudHlwZSA9PSAnZmlsZS12aWV3JyB8fCBmaWVsZC50eXBlID09ICdibGFuaycgfHwgZmllbGQudHlwZSA9PSAnc2VjdGlvbicgKSBjb250aW51ZVxyXG5cclxuXHJcblxyXG4gICAgICBsZXQgbmFtZSA9IGZpZWxkLmFsaWFzID8/IHRoaXMuY2FtZWxUb1dvcmRzKGZpZWxkLm5hbWUpO1xyXG4gICAgICBsZXQgZCA9IGRhdGFbZmllbGQubmFtZV07XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2cobmFtZSArICcgJyArIGQpXHJcblxyXG4gICAgICBpZiAoZmllbGQucmVxdWlyZWQpe1xyXG5cclxuICAgICAgICBpZiAoZCA9PSB1bmRlZmluZWQgfHwgZCA9PSBudWxsKSByZXR1cm4gYCR7bmFtZX0gaXMgcmVxdWlyZWRgO1xyXG5cclxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PSAndGV4dCcpe1xyXG5cclxuICAgICAgICAgIGlmIChkID09ICcnKSByZXR1cm4gYFBsZWFzZSBlbnRlciAke25hbWV9YDtcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWluICYmIGQubGVuZ3RoIDwgZmllbGQubWluKSByZXR1cm4gYE1pbmltdW0gICR7bmFtZX0gbGVuZ3RoIGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQubGVuZ3RoID4gZmllbGQubWF4KSByZXR1cm4gYE1heGltdW0gJHtuYW1lfSBsZW5ndGggaXMgJHtmaWVsZC5tYXh9YFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnbnVtYmVyJyB8fCBmaWVsZC50eXBlID09ICdtb25leScgfHwgZmllbGQudHlwZSA9PSAnZGF0ZScpe1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5taW4gJiYgZCA8IGZpZWxkLm1pbikgcmV0dXJuIGBNaW5pbXVtICAke25hbWV9IGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQgPiBmaWVsZC5tYXgpIHJldHVybiBgTWF4aW11bSAke25hbWV9IGlzICR7ZmllbGQubWF4fWBcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcpIHtcclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mKGQpID09ICdzdHJpbmcnICYmIGQgPT0gJycpIHJldHVybiBgUGxlYXNlIHNlbGVjdCAke25hbWV9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRJbml0aWFsVmFsdWUoZmllbGQ6IEZpZWxkKSB7XHJcblxyXG4gICAgaWYgKGZpZWxkLmRlZmF1bHRWYWx1ZSl7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PSAnZGF0ZScgfHwgZmllbGQudHlwZSA9PSAnZGF0ZXRpbWUnICYmIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PSAnbm93JykgcmV0dXJuIHRoaXMubm93RGF0ZSh0cnVlKTtcclxuXHJcbiAgICAgIHJldHVybiBmaWVsZC5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcgJiYgKGZpZWxkLmhpZGRlbiB8fCBmaWVsZC5oaWRlT25DcmVhdGUpKSByZXR1cm4gMDtcclxuXHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdtb25leSc6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm5vd0RhdGUodHJ1ZSk7XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94JzpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q2xvbmUoeCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVlcENsb25lKHgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXROdW1iZXIodmFsdWU6IHN0cmluZykge1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IFwiXCIpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb25seU51bWJlcnMgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyk7XHJcbiAgICByZXR1cm4gb25seU51bWJlcnNcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rmlyc3REYXlPZk1vbnRoKCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlbWFpbElzVmFsaWQoZW1haWwpIHtcclxuICAgIC8vIHJldHVybiAvXFxTK0BcXFMrXFwuXFxTKy8udGVzdChlbWFpbClcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFVOQ1BhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyByZXR1cm4gL1xcXFxcXFxcKFthLXpBLVowLTlfLiTil48tXSspXFxcXChbYS16QS1aMC05Xy4k4pePLV0rKS4qLy50ZXN0KHBhdGgpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKGRhdGUpIHtcclxuXHJcbiAgICB2YXIgcGFyc2VkRGF0ZSA9IERhdGUucGFyc2UoZGF0ZSk7XHJcblxyXG5cclxuICAgIGlmIChpc05hTihkYXRlKSAmJiAhaXNOYU4ocGFyc2VkRGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW1haWxMaXN0KGxpc3Q6IHN0cmluZykge1xyXG5cclxuICAgIGlmIChsaXN0LmluY2x1ZGVzKFwiO1wiKSkge1xyXG5cclxuICAgICAgbGV0IGVtYWlscyA9IGxpc3Quc3BsaXQoXCI7XCIpXHJcblxyXG4gICAgICBmb3IgKHZhciBlbWFpbCBvZiBlbWFpbHMpIHtcclxuICAgICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQoZW1haWwpID09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQobGlzdCkgPT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBudWxsRGF0ZSA9IFwiMDEgSmFuIDE5NjlcIlxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoKHZhbHVlICE9IG51bGwpICYmXHJcbiAgICAgICh2YWx1ZSAhPT0gJycpICYmXHJcbiAgICAgICFpc05hTihOdW1iZXIodmFsdWUudG9TdHJpbmcoKSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGlmZihzdGFydERhdGUsIGVuZERhdGUgPSBEYXRlKCkpIHtcclxuXHJcbiAgICB2YXIgZXZlbnRTdGFydFRpbWUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIGV2ZW50RW5kVGltZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IGV2ZW50RW5kVGltZS52YWx1ZU9mKCkgLSBldmVudFN0YXJ0VGltZS52YWx1ZU9mKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gbnVtYmVyRW5kaW5nKG51bWJlcjogbnVtYmVyKSB7XHJcblxyXG4gICAgICBpZiAobnVtYmVyLnRvRml4ZWQoKSA9PSAnMScpIHtcclxuICAgICAgICByZXR1cm4gJydcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ3MnO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHZhciBtaW51dGVzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjApKTtcclxuXHJcbiAgICB2YXIgaG91cnM6IG51bWJlciA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjApKTtcclxuXHJcbiAgICB2YXIgZGF5cyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xyXG5cclxuICAgIHZhciB3ZWVrczogbnVtYmVyID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogNykpO1xyXG5cclxuICAgIHZhciBtb250aHMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiA3ICogNCkpO1xyXG5cclxuICAgIHZhciB5ZWFycyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NSkpO1xyXG5cclxuXHJcbiAgICBpZiAoeWVhcnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIHllYXJzLnRvRml4ZWQoKSArICcgeWVhcicgKyBudW1iZXJFbmRpbmcoeWVhcnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobW9udGhzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBtb250aHMudG9GaXhlZCgpICsgJyBtb250aCcgKyBudW1iZXJFbmRpbmcobW9udGhzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHdlZWtzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiB3ZWVrcy50b0ZpeGVkKCkgKyAnIHdlZWsnICsgbnVtYmVyRW5kaW5nKHdlZWtzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRheXMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGRheXMudG9GaXhlZCgpICsgJyBkYXknICsgbnVtYmVyRW5kaW5nKGRheXMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGhvdXJzLnRvRml4ZWQoKSArICcgaG91cicgKyBudW1iZXJFbmRpbmcoaG91cnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gbWludXRlcy50b0ZpeGVkKCkgKyAnIG1pbnV0ZScgKyBudW1iZXJFbmRpbmcobWludXRlcyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPj0gKC0xMDAwICogNjApKSB7XHJcblxyXG4gICAgICByZXR1cm4gJ2EgbWludXRlJztcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgcmV0dXJuICdOL0EnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vd0RhdGUoTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcbiAgICBpZiAoTm9UaW1lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdGVkRGF0ZShEYXRlKCksIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWREYXRlKERhdGUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgbGV0IGQ6IERhdGUgPSBuZXcgRGF0ZShkYXRlU3RyaW5nKTtcclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZTIoZCA6IERhdGUsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG5cclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEJ1c2luZXNzRGF0ZXNDb3VudChzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKSB7XHJcbiAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgdmFyIF9zdGFydERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIF9lbmREYXRlID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcblxyXG4gICAgdmFyIGN1ckRhdGUgPSBfc3RhcnREYXRlO1xyXG5cclxuICAgIHdoaWxlIChjdXJEYXRlIDwgX2VuZERhdGUpIHtcclxuICAgICAgdmFyIGRheU9mV2VlayA9IGN1ckRhdGUuZ2V0RGF5KCk7XHJcbiAgICAgIGlmICghKGRheU9mV2VlayA9PSA2IHx8IGRheU9mV2VlayA9PSAwKSkgY291bnQrKztcclxuICAgICAgY3VyRGF0ZS5zZXREYXRlKGN1ckRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ1Byb2Nlc3NvciB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcHJvY2Vzc0RldGFpbHNDb25maWcoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgcm93OiBhbnkpOiBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkRGV0YWlsc0NvbmZpZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSBDb3JlLmdldENsb25lKGRldGFpbHNDb25maWcpO1xyXG4gICAgdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscyA9IHJvdztcclxuXHJcbiAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnLm1vZGUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5tb2RlID8/IFwidmlld1wiO1xyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpIHtcclxuICAgICAgdXBkYXRlZERldGFpbHNDb25maWcuaGVyb1ZhbHVlID0gcm93W3VwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF07XHJcblxyXG4gICAgICBmdW5jdGlvbiB1cGRhdGVUYWJsZUNvbmZpZyh0YWJsZUNvbmZpZykge1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLmhlcm9GaWVsZCA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9GaWVsZDtcclxuICAgICAgICB0YWJsZUNvbmZpZy5oZXJvVmFsdWUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICAgICAgLy8gdGFibGVDb25maWcuc2V0SGVybyA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLnNldEhlcm87XHJcbiAgICAgICAgdGFibGVDb25maWcuc2VhcmNoQ29uZmlnID0gbnVsbDtcclxuICAgICAgICB0YWJsZUNvbmZpZy50aWxlQ29uZmlnID0gbnVsbDtcclxuICAgICAgICB0YWJsZUNvbmZpZy5wYXJlbnREYXRhID0gdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKSB7XHJcbiAgICAgICAgdXBkYXRlVGFibGVDb25maWcodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzKSB7XHJcbiAgICAgICAgdXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzLmZvckVhY2godXBkYXRlVGFibGVDb25maWcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtTG9hZFVybCh0YWJsZUNvbmZpZykge1xyXG4gICAgICBpZiAodGFibGVDb25maWcubG9hZEFjdGlvbiAmJiB0YWJsZUNvbmZpZy5sb2FkQ3JpdGVyaWEgJiYgdGFibGVDb25maWcubG9hZElERmllbGQpIHtcclxuICAgICAgICB0YWJsZUNvbmZpZy5sb2FkQWN0aW9uLnVybCA9IGAke3RhYmxlQ29uZmlnLmxvYWRBY3Rpb24udXJsLnNwbGl0KCcvJylbMF19LyR7dGFibGVDb25maWcubG9hZENyaXRlcmlhfS8ke3VwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHNbdGFibGVDb25maWcubG9hZElERmllbGRdfWA7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk5PVCBUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZykge1xyXG4gICAgICB0cmFuc2Zvcm1Mb2FkVXJsKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzKSB7XHJcbiAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncy5mb3JFYWNoKHRyYW5zZm9ybUxvYWRVcmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1cGRhdGVkRGV0YWlsc0NvbmZpZztcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgaW5pdGlhbGl6ZUNvbmZpZ3MoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZykge1xyXG4gICAgY29uc3QgdGFibGVDb25maWcgPSBkZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnO1xyXG4gICAgY29uc3QgdGFibGVDb25maWdzID0gZGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3M7XHJcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnO1xyXG4gICAgY29uc3QgYnV0dG9ucyA9IGRldGFpbHNDb25maWcuYnV0dG9ucztcclxuICAgIGZvcm1Db25maWcubW9kZSA9IGZvcm1Db25maWcubW9kZSA/PyBcInZpZXdcIjtcclxuICAgIHJldHVybiB7IHRhYmxlQ29uZmlnLCB0YWJsZUNvbmZpZ3MsIGZvcm1Db25maWcsIGJ1dHRvbnMgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRIZXJvVmFsdWUoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZGV0YWlsczogYW55KSB7XHJcblxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuXHJcbiAgICBpZiAoKGRldGFpbHNDb25maWcuZm9ybUNvbmZpZy5tb2RlID09IFwiY3JlYXRlXCIgICkgJiYgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQgJiYgZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuICAgICAgZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF0gPSBkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIChkZXRhaWxzQ29uZmlnLmNvbmZpZy5tb2RlICE9IFwiY3JlYXRlXCIgJiYgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpIHtcclxuICAgIC8vICAgZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUgPSBkZXRhaWxzW2RldGFpbHNDb25maWcuaGVyb0ZpZWxkXTtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuICB9XHJcblxyXG4gIHN0YXRpYyBoYW5kbGVGb3JtTW9kZShkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnLCkge1xyXG4gICAgbGV0IGRldGFpbHM7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG4gICAgbGV0IGxvYWRCeUFjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwiY3JlYXRlXCIpIHtcclxuXHJcbiAgICAgIGRldGFpbHMgPSBDb3JlLmdlbmVyYXRlT2JqZWN0KGZvcm1Db25maWcuZmllbGRzKTtcclxuXHJcbiAgICAgIC8vIHRoaXMuc2V0SGVyb1ZhbHVlKGRldGFpbHNDb25maWcsIGRldGFpbHMpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCByZXNwID0gdGhpcy5sb2FkRGV0YWlsc0RhdGEoZGV0YWlsc0NvbmZpZywgZm9ybUNvbmZpZyk7XHJcbiAgICAgIGRldGFpbHMgPSByZXNwLmRldGFpbHM7XHJcblxyXG4gICAgICBhY3Rpb24gPSByZXNwLmFjdGlvbjtcclxuICAgICAgbG9hZEJ5QWN0aW9uID0gcmVzcC5sb2FkQnlBY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgZGV0YWlscywgbG9hZEJ5QWN0aW9uLCBhY3Rpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGxvYWREZXRhaWxzRGF0YShkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcblxyXG4gICAgbGV0IGRldGFpbHM7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG4gICAgbGV0IGxvYWRCeUFjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiTG9hZGluZyBEZXRhaWxzIERhdGFcIiApXHJcbiAgICBjb25zb2xlLmxvZyhkZXRhaWxzQ29uZmlnKVxyXG4gICAgY29uc29sZS5sb2coZm9ybUNvbmZpZylcclxuXHJcblxyXG5cclxuICAgIC8vQ2hvb3NlIHNvdXJjZVxyXG4gICAgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlJvdykge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzIERhdGEgUm93IGNvbmZpZ1wiKVxyXG4gICAgICBkZXRhaWxzID0gZGV0YWlsc0NvbmZpZy5kZXRhaWxzO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoZGV0YWlsc0NvbmZpZy5kZXRhaWxzU291cmNlID09IERldGFpbHNTb3VyY2UuVXJsKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRGV0YWlscyBEYXRhIFVybCBjb25maWdcIilcclxuICAgICAgYWN0aW9uID0gdGhpcy5sb2FkRGV0YWlsc0Zyb21VcmwoZGV0YWlsc0NvbmZpZywgZm9ybUNvbmZpZyk7XHJcbiAgICAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzIERhdGEgRWxzZVwiKVxyXG4gICAgICBpZiAoZGV0YWlsc0NvbmZpZy5kZXRhaWxzICYmICFkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiAhZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSBkZXRhaWxzXCIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpO1xyXG4gICAgICAgIGRldGFpbHMgPSBkZXRhaWxzQ29uZmlnLmRldGFpbHM7XHJcblxyXG4gICAgICB9IGVsc2UgaWYgKGZvcm1Db25maWcubG9hZEFjdGlvbikge1xyXG5cclxuICAgICAgICBhY3Rpb24gPSB0aGlzLmxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnLCBmb3JtQ29uZmlnKTtcclxuICAgICAgICBsb2FkQnlBY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImF1dG8gZGF0YSBzb3VyY2UgZmFpbGVkIHRvIHBpY2ssIHRyeWluZyBzb3VyY2UgY29uZmlnXCIpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICByZXR1cm4geyBkZXRhaWxzLCBsb2FkQnlBY3Rpb24sIGFjdGlvbiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgbG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGZvcm1Db25maWc6IEZvcm1Db25maWcpIHtcclxuICAgIGxldCBhY3Rpb247XHJcblxyXG4gICAgaWYgKGZvcm1Db25maWcubG9hZEFjdGlvbikge1xyXG5cclxuICAgICAgaWYgKGRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuZGV0YWlscykge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIHVybCArIElEIEZpZWxkIFwiICsgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpO1xyXG4gICAgICAgIGFjdGlvbiA9IHsgdXJsOiBgJHtmb3JtQ29uZmlnLmxvYWRBY3Rpb24udXJsfS8ke2RldGFpbHNDb25maWcuZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF19YCB9O1xyXG5cclxuICAgICAgfSBlbHNlIGlmIChkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIHVybCArIFNvbGlkIElEXCIpO1xyXG4gICAgICAgIGFjdGlvbiA9IHsgdXJsOiBgJHtmb3JtQ29uZmlnLmxvYWRBY3Rpb24udXJsfS8ke2RldGFpbHNDb25maWcuaGVyb1ZhbHVlfWAgfTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInVybCBzb3VyY2UgZmFpbGVkIDogc2V0dXAgaGVybyBmaWVsZCBvciBoZXJvIHZhbHVlXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTm8gbG9hZCBhY3Rpb24gc2V0XCIpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcmV0dXJuIGFjdGlvbjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRGaWxlRmllbGQoZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG4gICAgcmV0dXJuIGZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4LnR5cGUgPT09ICdmaWxlJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHNldHVwQnV0dG9ucyhmb3JtQ29uZmlnOiBGb3JtQ29uZmlnLCBidXR0b25zOiBhbnkpIHtcclxuICAgIGxldCBleHRyYUJ1dHRvbnMsIGNyZWF0ZUJ1dHRvbiwgZWRpdEJ1dHRvbiwgZGVsZXRlQnV0dG9uO1xyXG5cclxuICAgIGlmIChidXR0b25zKSB7XHJcbiAgICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgIT09IFwiY3JlYXRlXCIpIHtcclxuICAgICAgICBleHRyYUJ1dHRvbnMgPSBidXR0b25zLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gXCJjcmVhdGVcIiAmJiB4Lm5hbWUgIT09IFwiZWRpdFwiICYmIHgubmFtZSAhPT0gXCJkZWxldGVcIiAmJiB4Lm5hbWUgIT09IFwidmlld1wiICYmIHguaW5EaWFsb2cpO1xyXG4gICAgICB9XHJcbiAgICAgIGNyZWF0ZUJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJjcmVhdGVcIik7XHJcbiAgICAgIGVkaXRCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiZWRpdFwiKTtcclxuICAgICAgZGVsZXRlQnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImRlbGV0ZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IGV4dHJhQnV0dG9ucywgY3JlYXRlQnV0dG9uLCBlZGl0QnV0dG9uLCBkZWxldGVCdXR0b24gfTtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -50,25 +50,11 @@ export class FormComponent {
|
|
|
50
50
|
if (this.config?.button?.action && this.fileField) {
|
|
51
51
|
this.config.button.action.isFormData = true;
|
|
52
52
|
}
|
|
53
|
-
// this.fileViewField = this.fields.find(x => x.type == 'file-view')
|
|
54
|
-
// if (this.fileViewField && !this.fileViewField.hidden && this.config.mode != "create"){
|
|
55
|
-
// this.loadFiles();
|
|
56
|
-
// }
|
|
57
|
-
// this.getVisibleFields();
|
|
58
53
|
this.childFields = this.fields.filter(x => x.masterField);
|
|
59
54
|
this.childFields.forEach(child => {
|
|
60
55
|
let master = this.fields.find(x => x.name == child.masterField);
|
|
61
56
|
this.updateChildOptions(master);
|
|
62
57
|
});
|
|
63
|
-
// //set value for child
|
|
64
|
-
// this.fields.filter(x => x.childField).forEach(master => {
|
|
65
|
-
// // console.log(master)
|
|
66
|
-
// // console.log(this.data)
|
|
67
|
-
// //get child
|
|
68
|
-
// let child = this.fields.find(x => x.name == master.childField)
|
|
69
|
-
// this.data[child.name] = master.options.find(x => x[master.optionValue] == this.data[master.optionValue])[master.childValueField]
|
|
70
|
-
// console.log(this.data)
|
|
71
|
-
// });
|
|
72
58
|
}
|
|
73
59
|
ngOnChanges() {
|
|
74
60
|
console.log("changed");
|
|
@@ -77,24 +63,7 @@ export class FormComponent {
|
|
|
77
63
|
// console.log("Form After View init")
|
|
78
64
|
}
|
|
79
65
|
getVisibleFields() {
|
|
80
|
-
|
|
81
|
-
// && ( x.hiddenCondition && !x.hiddenCondition(this.data) )
|
|
82
|
-
);
|
|
83
|
-
return visibleFields;
|
|
84
|
-
}
|
|
85
|
-
testVisible(f) {
|
|
86
|
-
if (f.hidden)
|
|
87
|
-
return false;
|
|
88
|
-
if (this.config.mode == 'create' && f.hideOnCreate) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
if (this.config.mode != 'create' && f.hideOnExists) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
if (f.hiddenCondition) {
|
|
95
|
-
return !f.hiddenCondition(this.data);
|
|
96
|
-
}
|
|
97
|
-
return true;
|
|
66
|
+
return this.fields?.filter(x => Core.testVisible(this.config, this.data, x));
|
|
98
67
|
}
|
|
99
68
|
testReadOnly(f) {
|
|
100
69
|
if (this.config.mode == 'create') {
|
|
@@ -149,7 +118,7 @@ export class FormComponent {
|
|
|
149
118
|
return;
|
|
150
119
|
}
|
|
151
120
|
//validation
|
|
152
|
-
let resp = Core.validateObject(this.
|
|
121
|
+
let resp = Core.validateObject(this.getVisibleFields(), this.data);
|
|
153
122
|
if (resp != '') {
|
|
154
123
|
this.messageService.toast(resp);
|
|
155
124
|
return;
|
|
@@ -223,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
223
192
|
}], inputChange: [{
|
|
224
193
|
type: Output
|
|
225
194
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFTN0MsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsY0FBOEIsRUFBVSxXQUEyQjtRQUFuRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFtSTlFLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFM0Isa0JBQWEsR0FBRyxRQUFRLENBQUM7UUFDekIsaUJBQVksR0FBYSxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBYSxLQUFLLENBQUM7UUFNcEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQTlJZ0QsQ0FBQztJQUU1RixRQUFRO1FBRU4sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUM7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUN6RCxPQUFPO1NBQ1I7UUFFRCxJ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bWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgRmllbGQsIEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IENvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RpbkNvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiRm9ybSBpbml0XCIpXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpXHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5maWVsZHMpe1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIENvbmZpZ3VyZSBGb3JtIEZpZWxkc1wiKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhdGEpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBDb25maWd1cmUgRm9ybSBEYXRhXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuY29uZmlnLmZpZWxkcztcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm11bHRpQ29sdW1uKXtcclxuICAgICAgdGhpcy5tdWx0aUNvbHVtbiA9IHRoaXMuY29uZmlnLm11bHRpQ29sdW1uXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5tdWx0aUNvbHVtbiA9IHRoaXMuZmllbGRzLmxlbmd0aCA+IDJcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmJ1dHRvbj8uZGlzcGxheSl7XHJcbiAgICAgIHRoaXMuYnV0dG9uRGlzcGxheSA9IHRoaXMuY29uZmlnLmJ1dHRvbi5kaXNwbGF5O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgudHlwZSA9PSAnZmlsZScpXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5idXR0b24/LmFjdGlvbiAmJiB0aGlzLmZpbGVGaWVsZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZy5idXR0b24uYWN0aW9uLmlzRm9ybURhdGEgPSB0cnVlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmZpbGVWaWV3RmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC50eXBlID09ICdmaWxlLXZpZXcnKVxyXG5cclxuICAgIC8vIGlmICh0aGlzLmZpbGVWaWV3RmllbGQgJiYgIXRoaXMuZmlsZVZpZXdGaWVsZC5oaWRkZW4gJiYgdGhpcy5jb25maWcubW9kZSAhPSBcImNyZWF0ZVwiKXtcclxuICAgIC8vICAgdGhpcy5sb2FkRmlsZXMoKTtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgLy8gdGhpcy5nZXRWaXNpYmxlRmllbGRzKCk7XHJcblxyXG4gICAgdGhpcy5jaGlsZEZpZWxkcyA9IHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgubWFzdGVyRmllbGQpXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmNoaWxkRmllbGRzLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICBsZXQgbWFzdGVyID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSBjaGlsZC5tYXN0ZXJGaWVsZClcclxuICAgICAgdGhpcy51cGRhdGVDaGlsZE9wdGlvbnMobWFzdGVyKTtcclxuXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy8gLy9zZXQgdmFsdWUgZm9yIGNoaWxkXHJcbiAgICAvLyB0aGlzLmZpZWxkcy5maWx0ZXIoeCA9PiB4LmNoaWxkRmllbGQpLmZvckVhY2gobWFzdGVyID0+IHtcclxuXHJcbiAgICAvLyAgIC8vIGNvbnNvbGUubG9nKG1hc3RlcilcclxuICAgIC8vICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhKVxyXG4gICAgLy8gICAvL2dldCBjaGlsZFxyXG4gICAgLy8gICBsZXQgY2hpbGQgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09IG1hc3Rlci5jaGlsZEZpZWxkKVxyXG4gICAgLy8gICB0aGlzLmRhdGFbY2hpbGQubmFtZV0gPSBtYXN0ZXIub3B0aW9ucy5maW5kKHggPT4geFttYXN0ZXIub3B0aW9uVmFsdWVdID09IHRoaXMuZGF0YVttYXN0ZXIub3B0aW9uVmFsdWVdKVttYXN0ZXIuY2hpbGRWYWx1ZUZpZWxkXVxyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlZFwiKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJGb3JtIEFmdGVyIFZpZXcgaW5pdFwiKVxyXG4gIH1cclxuXHJcbiAgZ2V0VmlzaWJsZUZpZWxkcygpe1xyXG4gICAgbGV0IHZpc2libGVGaWVsZHMgPSB0aGlzLmZpZWxkcz8uZmlsdGVyKHggPT4gdGhpcy50ZXN0VmlzaWJsZSh4KVxyXG4gICAgICAvLyAmJiAoIHguaGlkZGVuQ29uZGl0aW9uICYmICF4LmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEpIClcclxuICAgIClcclxuXHJcbiAgICByZXR1cm4gdmlzaWJsZUZpZWxkc1xyXG4gIH1cclxuXHJcbiAgdGVzdFZpc2libGUoZiA6IEZpZWxkKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScgJiYgZi5oaWRlT25DcmVhdGUpe1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5tb2RlICE9ICdjcmVhdGUnICYmIGYuaGlkZU9uRXhpc3RzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZi5oaWRkZW5Db25kaXRpb24pIHtcclxuICAgICAgcmV0dXJuICFmLmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgdGVzdFJlYWRPbmx5KGY6IEZpZWxkKTogYm9vbGVhbiB7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5tb2RlID09ICdjcmVhdGUnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZi5yZWFkb25seSkgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ3ZpZXcnKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAoZi5yZWFkb25seUNvbmRpdGlvbikge1xyXG4gICAgICByZXR1cm4gZi5yZWFkb25seUNvbmRpdGlvbih0aGlzLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBmaWxlTmFtZXNcclxuICBmaWxlRmllbGQ6IEZpZWxkO1xyXG4gIGZpbGVWaWV3RmllbGQ6IEZpZWxkO1xyXG4gIEBJbnB1dCgpIGZpbGVzOiBhbnlbXSA9IFtdO1xyXG4gIGZpZWxkczogRmllbGRbXTtcclxuICBidXR0b25EaXNwbGF5ID0gXCJTdWJtaXRcIjtcclxuICBpc1Byb2Nlc3NpbmcgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbXVsdGlDb2x1bW4gOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNoaWxkRmllbGRzIDogRmllbGRbXTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogRm9ybUNvbmZpZztcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBpbnB1dENoYW5nZWQoZmllbGQgOiBGaWVsZCwgdmFsdWUpe1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiSW5wdXQgQ2hhbmdlZFwiKVxyXG4gICAgLy8gY29uc29sZS5sb2coZmllbGQpXHJcblxyXG4gICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHsgZmllbGQ6IGZpZWxkLCB2YWx1ZTogdmFsdWV9KVxyXG5cclxuICAgIHRoaXMudXBkYXRlQ2hpbGRPcHRpb25zKGZpZWxkKVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5tb2RlID09ICdjcmVhdGUnICYmIGZpZWxkLmNoaWxkKXtcclxuXHJcbiAgICAgIGxldCBjaGlsZCA9IHRoaXMuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gZmllbGQuY2hpbGQuY2hpbGRGaWVsZClcclxuICAgICAgdGhpcy5kYXRhW2NoaWxkLm5hbWVdID0gZmllbGQub3B0aW9ucy5maW5kKHggPT4geFtmaWVsZC5vcHRpb25WYWx1ZV0gPT0gdmFsdWUpW2ZpZWxkLmNoaWxkLmNoaWxkVmFsdWVGaWVsZF1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5tb2RlID09ICdjcmVhdGUnICYmIGZpZWxkLmNoaWxkcmVuKXtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhKVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkNoaWxkcmVuIGZvdW5kXCIpXHJcblxyXG4gICAgICBmaWVsZC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkQ29uZmlnID0+IHtcclxuXHJcbiAgICAgICAgbGV0IGNoaWxkID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSBjaGlsZENvbmZpZy5jaGlsZEZpZWxkKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2hpbGQgZm91bmRcIilcclxuICAgICAgICBjb25zb2xlLmxvZyhjaGlsZClcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhW2NoaWxkLm5hbWVdID0gZmllbGQub3B0aW9ucy5maW5kKHggPT4geFtmaWVsZC5vcHRpb25WYWx1ZV0gPT0gdmFsdWUpW2NoaWxkQ29uZmlnLmNoaWxkVmFsdWVGaWVsZF1cclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhKVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGlsZE9wdGlvbnMobWFzdGVyRmllbGQ6IEZpZWxkKXtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGFbbWFzdGVyRmllbGQubmFtZV0pXHJcblxyXG4gICAgbGV0IGNoaWxkID0gdGhpcy5jaGlsZEZpZWxkcy5maW5kKHggPT4geC5tYXN0ZXJGaWVsZCA9PSBtYXN0ZXJGaWVsZC5uYW1lKVxyXG4gICAgaWYgKGNoaWxkICE9IG51bGwpIHtcclxuXHJcbiAgICAgIC8vY3VycmVudCBpcyBtYXN0ZXJcclxuXHJcbiAgICAgIC8vZmlsdGVyIGNoaWxkIG9wdGlvbnMgYmFzZWQgb24gbWFzdGVyIHZhbHVlXHJcbiAgICAgIGNoaWxkLm9wdGlvbnMgPSBjaGlsZC5tYXN0ZXJPcHRpb25zLmZpbHRlcih4ID0+IHhbbWFzdGVyRmllbGQub3B0aW9uVmFsdWVdID09IHRoaXMuZGF0YVttYXN0ZXJGaWVsZC5uYW1lXSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b25DbGlja2VkKCl7XHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coXCJCdXR0b24gQ2xpY2tlZFwiKVxyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEpXHJcblxyXG5cclxuXHJcbiAgICBsZXQgYnV0dG9uID0gdGhpcy5jb25maWcuYnV0dG9uO1xyXG5cclxuICAgIGlmICghYnV0dG9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL3ZhbGlkYXRpb25cclxuICAgIGxldCByZXNwID0gQ29yZS52YWxpZGF0ZU9iamVjdCh0aGlzLmZpZWxkcyx0aGlzLmRhdGEpO1xyXG4gICAgaWYgKHJlc3AgIT0gJycpe1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHJlc3ApXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA8IDEgJiYgdGhpcy5maWxlRmllbGQ/LnJlcXVpcmVkICYmIHRoaXMuY29uZmlnLm1vZGUgPT0nY3JlYXRlJykge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGF0dGFjaCBmaWxlKHMpXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChidXR0b24uY29uZmlybSl7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYCR7YnV0dG9uLmNvbmZpcm0ubWVzc2FnZX1gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0NhbGwoYnV0dG9uOiBCdXR0b24pe1xyXG5cclxuICAgIGlmICghYnV0dG9uLmFjdGlvbikgcmV0dXJuXHJcblxyXG4gICAgbGV0IGRhdGFPdXQ7XHJcblxyXG4gICAgaWYgKGJ1dHRvbi5hY3Rpb24uaXNGb3JtRGF0YSl7XHJcblxyXG4gICAgICBsZXQgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgdXBsb2FkRmlsZSR7aX1gLCB0aGlzLmZpbGVzW2ldLCB0aGlzLmZpbGVzW2ldLm5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJkYXRhXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpO1xyXG5cclxuXHJcbiAgICAgIGRhdGFPdXQgPSBmb3JtRGF0YVxyXG4gICAgfWVsc2V7XHJcblxyXG4gICAgICBkYXRhT3V0ID0gdGhpcy5kYXRhXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWVcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaShidXR0b24uYWN0aW9uLCBkYXRhT3V0KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2VcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcblxyXG4gICAgICAgIGlmIChidXR0b24uYWN0aW9uLnN1Y2Nlc3NNZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGJ1dHRvbi5hY3Rpb24uc3VjY2Vzc01lc3NhZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiU3VibWl0dGVkXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnJlc2V0KSB7XHJcbiAgICAgICAgICBDb3JlLnJlc2V0T2JqZWN0KHRoaXMuZmllbGRzLCB0aGlzLmRhdGEpXHJcbiAgICAgICAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NGb3JtKCl7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuIiwiXHJcbjxkaXYgW25nQ2xhc3NdPVwibXVsdGlDb2x1bW4gPyAndGluLWdyaWQnIDogJ3Rpbi1jb2wnXCI+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiZmllbGQuc3BhbiB8fCBmaWVsZC50eXBlID09J3NlY3Rpb24nIHx8IGZpZWxkLnR5cGUgPT0nZmlsZScgfHwgZmllbGQudHlwZSA9PSdmaWxlLXZpZXcnICA/ICdzcGFuLWNvbCcgOiAnJ1wiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBnZXRWaXNpYmxlRmllbGRzKClcIj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICA+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC50eXBlXCIgY2xhc3M9XCJoaWdobGlnaHRcIj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlY3Rpb24nXCIgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiBsYXJnZXI7XCI+e3tmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzfX08L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIG1iLTJcIiAqbmdJZj1cImNvbmZpZy5tb2RlICE9J3ZpZXcnXCI+XHJcbiAgICAgICAgICAgIDxzcGEtYXR0YWNoIG1lc3NhZ2U9XCJEcmFnIGFuZCBEcm9wIGZpbGVzIGhlcmVcIiBbKGZpbGVzKV09XCJmaWxlc1wiPjwvc3BhLWF0dGFjaD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZS12aWV3J1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgbWItMlwiICpuZ0lmPVwiY29uZmlnLm1vZGUgJiYgY29uZmlnLm1vZGUgIT0nY3JlYXRlJ1wiPlxyXG4gICAgICAgICAgICA8c3BhLXZpZXdlciBbZmlsZUFjdGlvbl09XCJjb25maWcuZmlsZUFjdGlvblwiIFtwYXRoXT1cImZpZWxkLnBhdGhcIiBbZm9sZGVyTmFtZV09XCJkYXRhW2ZpZWxkLmtleUZpbGVkTmFtZV1cIiA+PC9zcGEtdmlld2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICA8bGFiZWwgKm5nU3dpdGNoQ2FzZT1cIidibGFuaydcIj48L2xhYmVsPlxyXG5cclxuICAgICAgICA8c3BhLW51bWJlciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiPjwvc3BhLW51bWJlcj5cclxuXHJcbiAgICAgICAgPHNwYS1tb25leSAqbmdTd2l0Y2hDYXNlPVwiJ21vbmV5J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbbWluXT1cImZpZWxkLm1pblwiIFttYXhdPVwiZmllbGQubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCI+PC9zcGEtbW9uZXk+XHJcblxyXG4gICAgICAgIDxzcGEtY2hlY2sgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiA+PC9zcGEtY2hlY2s+XHJcblxyXG4gICAgICAgIDxzcGEtZGF0ZSAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFttaW5dPVwiZmllbGQ/Lm1pblwiIFttYXhdPVwiZmllbGQ/Lm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiPjwvc3BhLWRhdGU+XHJcblxyXG4gICAgICAgIDxzcGEtc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbbnVsbGFibGVdPVwiZmllbGQubnVsbGFibGVcIiBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCIgW21hc3Rlck9wdGlvbnNdPVwiZmllbGQubWFzdGVyT3B0aW9uc1wiIFtvcHRpb25EaXNwbGF5XT1cImZpZWxkLm9wdGlvbkRpc3BsYXkgPz8gJ25hbWUnXCIgW29wdGlvblZhbHVlXT1cImZpZWxkLm9wdGlvblZhbHVlID8/ICd2YWx1ZSdcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgW2RlZmF1bHRGaXJzdFZhbHVlXT1cImZpZWxkLmRlZmF1bHRGaXJzdFZhbHVlXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIj5cclxuICAgICAgICA8L3NwYS1zZWxlY3Q+XHJcblxyXG4gICAgICAgIDxzcGEtc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInbXVsdGktc2VsZWN0J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwiZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW211bHRpcGxlXT1cInRydWVcIiBbaGludF09XCJmaWVsZC5oaW50XCI+XHJcbiAgICAgICAgPC9zcGEtc2VsZWN0PlxyXG5cclxuICAgICAgICA8c3BhLXRleHQgKm5nU3dpdGNoRGVmYXVsdCBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgW3Jvd3NdPVwiZmllbGQucm93c1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwic3Bhbi1jb2wtY2VudGVyXCIgKm5nSWY9XCJjb25maWcuYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYnV0dG9uQ2xpY2tlZCgpXCIgIGNka0ZvY3VzSW5pdGlhbD57e2J1dHRvbkRpc3BsYXl9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFTN0MsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsY0FBOEIsRUFBVSxXQUEyQjtRQUFuRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUF1RjlFLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFM0Isa0JBQWEsR0FBRyxRQUFRLENBQUM7UUFDekIsaUJBQVksR0FBYSxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBYSxLQUFLLENBQUM7UUFNcEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWxHZ0QsQ0FBQztJQUU1RixRQUFRO1FBRU4sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUM7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUN6RCxPQUFPO1NBQ1I7UUFFRCxJ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YyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztJQU1YLENBQUM7OzBHQWpRVSxhQUFhOzhGQUFiLGFBQWEsc01DWDFCLHErSEF5REE7MkZEOUNhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsVUFBVTtrSUE2RlgsS0FBSztzQkFBYixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29uZmlnLCBGaWVsZCwgQnV0dG9uIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQ29yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJGb3JtIGluaXRcIilcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YSlcclxuXHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLmZpZWxkcyl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgQ29uZmlndXJlIEZvcm0gRmllbGRzXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIENvbmZpZ3VyZSBGb3JtIERhdGFcIilcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5jb25maWcuZmllbGRzO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcubXVsdGlDb2x1bW4pe1xyXG4gICAgICB0aGlzLm11bHRpQ29sdW1uID0gdGhpcy5jb25maWcubXVsdGlDb2x1bW5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm11bHRpQ29sdW1uID0gdGhpcy5maWVsZHMubGVuZ3RoID4gMlxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uYnV0dG9uPy5kaXNwbGF5KXtcclxuICAgICAgdGhpcy5idXR0b25EaXNwbGF5ID0gdGhpcy5jb25maWcuYnV0dG9uLmRpc3BsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlRmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC50eXBlID09ICdmaWxlJylcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmJ1dHRvbj8uYWN0aW9uICYmIHRoaXMuZmlsZUZpZWxkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnLmJ1dHRvbi5hY3Rpb24uaXNGb3JtRGF0YSA9IHRydWU7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hpbGRGaWVsZHMgPSB0aGlzLmZpZWxkcy5maWx0ZXIoeCA9PiB4Lm1hc3RlckZpZWxkKVxyXG5cclxuICAgIHRoaXMuY2hpbGRGaWVsZHMuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgIGxldCBtYXN0ZXIgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09IGNoaWxkLm1hc3RlckZpZWxkKVxyXG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkT3B0aW9ucyhtYXN0ZXIpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlZFwiKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJGb3JtIEFmdGVyIFZpZXcgaW5pdFwiKVxyXG4gIH1cclxuXHJcbiAgZ2V0VmlzaWJsZUZpZWxkcygpe1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGRzPy5maWx0ZXIoeCA9PiBDb3JlLnRlc3RWaXNpYmxlKHRoaXMuY29uZmlnLCB0aGlzLmRhdGEsIHgpKVxyXG4gIH1cclxuXHJcblxyXG5cclxuICB0ZXN0UmVhZE9ubHkoZjogRmllbGQpOiBib29sZWFuIHtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmLnJlYWRvbmx5KSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcubW9kZSA9PSAndmlldycpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChmLnJlYWRvbmx5Q29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiBmLnJlYWRvbmx5Q29uZGl0aW9uKHRoaXMuZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGZpbGVOYW1lc1xyXG4gIGZpbGVGaWVsZDogRmllbGQ7XHJcbiAgZmlsZVZpZXdGaWVsZDogRmllbGQ7XHJcbiAgQElucHV0KCkgZmlsZXM6IGFueVtdID0gW107XHJcbiAgZmllbGRzOiBGaWVsZFtdO1xyXG4gIGJ1dHRvbkRpc3BsYXkgPSBcIlN1Ym1pdFwiO1xyXG4gIGlzUHJvY2Vzc2luZyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtdWx0aUNvbHVtbiA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY2hpbGRGaWVsZHMgOiBGaWVsZFtdO1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgY29uZmlnOiBGb3JtQ29uZmlnO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGlucHV0Q2hhbmdlZChmaWVsZCA6IEZpZWxkLCB2YWx1ZSl7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJJbnB1dCBDaGFuZ2VkXCIpXHJcbiAgICAvLyBjb25zb2xlLmxvZyhmaWVsZClcclxuXHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZmllbGQsIHZhbHVlOiB2YWx1ZX0pXHJcblxyXG4gICAgdGhpcy51cGRhdGVDaGlsZE9wdGlvbnMoZmllbGQpXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScgJiYgZmllbGQuY2hpbGQpe1xyXG5cclxuICAgICAgbGV0IGNoaWxkID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSBmaWVsZC5jaGlsZC5jaGlsZEZpZWxkKVxyXG4gICAgICB0aGlzLmRhdGFbY2hpbGQubmFtZV0gPSBmaWVsZC5vcHRpb25zLmZpbmQoeCA9PiB4W2ZpZWxkLm9wdGlvblZhbHVlXSA9PSB2YWx1ZSlbZmllbGQuY2hpbGQuY2hpbGRWYWx1ZUZpZWxkXVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScgJiYgZmllbGQuY2hpbGRyZW4pe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hpbGRyZW4gZm91bmRcIilcclxuXHJcbiAgICAgIGZpZWxkLmNoaWxkcmVuLmZvckVhY2goY2hpbGRDb25maWcgPT4ge1xyXG5cclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09IGNoaWxkQ29uZmlnLmNoaWxkRmllbGQpXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDaGlsZCBmb3VuZFwiKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGNoaWxkKVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFbY2hpbGQubmFtZV0gPSBmaWVsZC5vcHRpb25zLmZpbmQoeCA9PiB4W2ZpZWxkLm9wdGlvblZhbHVlXSA9PSB2YWx1ZSlbY2hpbGRDb25maWcuY2hpbGRWYWx1ZUZpZWxkXVxyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpXHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoaWxkT3B0aW9ucyhtYXN0ZXJGaWVsZDogRmllbGQpe1xyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YVttYXN0ZXJGaWVsZC5uYW1lXSlcclxuXHJcbiAgICBsZXQgY2hpbGQgPSB0aGlzLmNoaWxkRmllbGRzLmZpbmQoeCA9PiB4Lm1hc3RlckZpZWxkID09IG1hc3RlckZpZWxkLm5hbWUpXHJcbiAgICBpZiAoY2hpbGQgIT0gbnVsbCkge1xyXG5cclxuICAgICAgLy9jdXJyZW50IGlzIG1hc3RlclxyXG5cclxuICAgICAgLy9maWx0ZXIgY2hpbGQgb3B0aW9ucyBiYXNlZCBvbiBtYXN0ZXIgdmFsdWVcclxuICAgICAgY2hpbGQub3B0aW9ucyA9IGNoaWxkLm1hc3Rlck9wdGlvbnMuZmlsdGVyKHggPT4geFttYXN0ZXJGaWVsZC5vcHRpb25WYWx1ZV0gPT0gdGhpcy5kYXRhW21hc3RlckZpZWxkLm5hbWVdKVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoKXtcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkJ1dHRvbiBDbGlja2VkXCIpXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZGF0YSlcclxuXHJcblxyXG5cclxuICAgIGxldCBidXR0b24gPSB0aGlzLmNvbmZpZy5idXR0b247XHJcblxyXG4gICAgaWYgKCFidXR0b24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vdmFsaWRhdGlvblxyXG4gICAgbGV0IHJlc3AgPSBDb3JlLnZhbGlkYXRlT2JqZWN0KHRoaXMuZ2V0VmlzaWJsZUZpZWxkcygpLHRoaXMuZGF0YSk7XHJcbiAgICBpZiAocmVzcCAhPSAnJyl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QocmVzcClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoIDwgMSAmJiB0aGlzLmZpbGVGaWVsZD8ucmVxdWlyZWQgJiYgdGhpcy5jb25maWcubW9kZSA9PSdjcmVhdGUnKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgYXR0YWNoIGZpbGUocylcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGJ1dHRvbi5jb25maXJtKXtcclxuXHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgJHtidXR0b24uY29uZmlybS5tZXNzYWdlfWApLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLnByb2Nlc3NDYWxsKGJ1dHRvbilcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnByb2Nlc3NDYWxsKGJ1dHRvbilcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBwcm9jZXNzQ2FsbChidXR0b246IEJ1dHRvbil7XHJcblxyXG4gICAgaWYgKCFidXR0b24uYWN0aW9uKSByZXR1cm5cclxuXHJcbiAgICBsZXQgZGF0YU91dDtcclxuXHJcbiAgICBpZiAoYnV0dG9uLmFjdGlvbi5pc0Zvcm1EYXRhKXtcclxuXHJcbiAgICAgIGxldCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGB1cGxvYWRGaWxlJHtpfWAsIHRoaXMuZmlsZXNbaV0sIHRoaXMuZmlsZXNbaV0ubmFtZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChcImRhdGFcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhKSk7XHJcblxyXG5cclxuICAgICAgZGF0YU91dCA9IGZvcm1EYXRhXHJcbiAgICB9ZWxzZXtcclxuXHJcbiAgICAgIGRhdGFPdXQgPSB0aGlzLmRhdGFcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZVxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKGJ1dHRvbi5hY3Rpb24sIGRhdGFPdXQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZVxyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuXHJcbiAgICAgICAgaWYgKGJ1dHRvbi5hY3Rpb24uc3VjY2Vzc01lc3NhZ2UpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYnV0dG9uLmFjdGlvbi5zdWNjZXNzTWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJTdWJtaXR0ZWRcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWcucmVzZXQpIHtcclxuICAgICAgICAgIENvcmUucmVzZXRPYmplY3QodGhpcy5maWVsZHMsIHRoaXMuZGF0YSlcclxuICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0Zvcm0oKXtcclxuXHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCJcclxuPGRpdiBbbmdDbGFzc109XCJtdWx0aUNvbHVtbiA/ICd0aW4tZ3JpZCcgOiAndGluLWNvbCdcIj5cclxuXHJcbiAgPGRpdiBbbmdDbGFzc109XCJmaWVsZC5zcGFuIHx8IGZpZWxkLnR5cGUgPT0nc2VjdGlvbicgfHwgZmllbGQudHlwZSA9PSdmaWxlJyB8fCBmaWVsZC50eXBlID09J2ZpbGUtdmlldycgID8gJ3NwYW4tY29sJyA6ICcnXCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGdldFZpc2libGVGaWVsZHMoKVwiPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgID5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpZWxkLnR5cGVcIiBjbGFzcz1cImhpZ2hsaWdodFwiPlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VjdGlvbidcIiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJmb250LXNpemU6IGxhcmdlcjtcIj57e2ZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHN9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmaWxlJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgbWItMlwiICpuZ0lmPVwiY29uZmlnLm1vZGUgIT0ndmlldydcIj5cclxuICAgICAgICAgICAgPHNwYS1hdHRhY2ggbWVzc2FnZT1cIkRyYWcgYW5kIERyb3AgZmlsZXMgaGVyZVwiIFsoZmlsZXMpXT1cImZpbGVzXCI+PC9zcGEtYXR0YWNoPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmaWxlLXZpZXcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBtYi0yXCIgKm5nSWY9XCJjb25maWcubW9kZSAmJiBjb25maWcubW9kZSAhPSdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgIDxzcGEtdmlld2VyIFtmaWxlQWN0aW9uXT1cImNvbmZpZy5maWxlQWN0aW9uXCIgW3BhdGhdPVwiZmllbGQucGF0aFwiIFtmb2xkZXJOYW1lXT1cImRhdGFbZmllbGQua2V5RmlsZWROYW1lXVwiID48L3NwYS12aWV3ZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDxsYWJlbCAqbmdTd2l0Y2hDYXNlPVwiJ2JsYW5rJ1wiPjwvbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGEtbnVtYmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbbWluXT1cImZpZWxkLm1pblwiIFttYXhdPVwiZmllbGQubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCI+PC9zcGEtbnVtYmVyPlxyXG5cclxuICAgICAgICA8c3BhLW1vbmV5ICpuZ1N3aXRjaENhc2U9XCInbW9uZXknXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFttaW5dPVwiZmllbGQubWluXCIgW21heF09XCJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIj48L3NwYS1tb25leT5cclxuXHJcbiAgICAgICAgPHNwYS1jaGVjayAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiID48L3NwYS1jaGVjaz5cclxuXHJcbiAgICAgICAgPHNwYS1kYXRlICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW21pbl09XCJmaWVsZD8ubWluXCIgW21heF09XCJmaWVsZD8ubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCI+PC9zcGEtZGF0ZT5cclxuXHJcbiAgICAgICAgPHNwYS1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFtudWxsYWJsZV09XCJmaWVsZC5udWxsYWJsZVwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbbWFzdGVyT3B0aW9uc109XCJmaWVsZC5tYXN0ZXJPcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwiZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiBbZGVmYXVsdEZpcnN0VmFsdWVdPVwiZmllbGQuZGVmYXVsdEZpcnN0VmFsdWVcIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiPlxyXG4gICAgICAgIDwvc3BhLXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYS1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS1zZWxlY3QnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uRGlzcGxheV09XCJmaWVsZC5vcHRpb25EaXNwbGF5ID8/ICduYW1lJ1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIj5cclxuICAgICAgICA8L3NwYS1zZWxlY3Q+XHJcblxyXG4gICAgICAgIDxzcGEtdGV4dCAqbmdTd2l0Y2hEZWZhdWx0IFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCIgW29wdGlvblZhbHVlXT1cImZpZWxkLm9wdGlvblZhbHVlID8/ICd2YWx1ZSdcIiBbcm93c109XCJmaWVsZC5yb3dzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbbWluXT1cImZpZWxkLm1pblwiIFttYXhdPVwiZmllbGQubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCI+PC9zcGEtdGV4dD5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzcGFuLWNvbC1jZW50ZXJcIiAqbmdJZj1cImNvbmZpZy5idXR0b25cIj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIChjbGljayk9XCJidXR0b25DbGlja2VkKClcIiAgY2RrRm9jdXNJbml0aWFsPnt7YnV0dG9uRGlzcGxheX19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
|