tango-app-ui-analyse-trax 3.3.1-alpha.82 → 3.3.1-alpha.83
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/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +2 -2
- package/esm2022/lib/components/create-task/create-task.data.mjs +2 -2
- package/esm2022/lib/components/task-configure/task-configure.component.mjs +3 -3
- package/fesm2022/tango-app-ui-analyse-trax.mjs +4 -4
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1800,7 +1800,7 @@ export class ChecklistConfigureComponent {
|
|
|
1800
1800
|
}
|
|
1801
1801
|
updateRepeatDay() {
|
|
1802
1802
|
let value = this.configData.checkListDetails.scheduleRepeatedDay;
|
|
1803
|
-
this.configData.checkListDetails.scheduleRepeatedDay = value == "00" || value == '' ? '01' : value;
|
|
1803
|
+
this.configData.checkListDetails.scheduleRepeatedDay = value == "00" || value == '0' || value == '' ? '01' : value;
|
|
1804
1804
|
}
|
|
1805
1805
|
updateMonthValue() {
|
|
1806
1806
|
let dateValue = '';
|
|
@@ -1985,4 +1985,4 @@ function getWeekNumber(date) {
|
|
|
1985
1985
|
let findIndex = days.findIndex((item) => item == date.format('YYYY-MM-DD'));
|
|
1986
1986
|
return (findIndex + 1);
|
|
1987
1987
|
}
|
|
1988
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0FBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQU9oQyxNQUFNLE9BQU8sMkJBQTJCO0lBNEVqQjtJQUEyQztJQUFnQztJQUFzQjtJQUF3QjtJQUErQjtJQUEyQjtJQUE4QjtJQTNFbk4sU0FBUyxDQUFjO0lBQ3RCLFVBQVUsQ0FBYztJQUM1QyxLQUFLLEdB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QyxHQUFHLENBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBRSxDQUFDO0tBQ25DO0lBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUMvRSxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRXpCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYXhTdG9yZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1N1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yy5qcyc7XHJcbmRheWpzLmV4dGVuZCggdXRjICk7XHJcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QtY29uZmlndXJlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NoZWNrbGlzdC1jb25maWd1cmUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdmaWxlMScpIGZpbGVJbnB1dDEhOiBFbGVtZW50UmVmO1xyXG4gIGRheWpzOmFueSA9IGRheWpzO1xyXG4gIHNlbGVjdGVkRGF0ZXM6YW55O1xyXG4gIG1pbkRhdGU6YW55O1xyXG4gIHR5cGU6IHN0cmluZyA9ICdjdXN0b20nO1xyXG4gIG9iajogYW55O1xyXG4gIGNvbmZpZ0RhdGE6IGFueTtcclxuICB0YWJsZURhdGE6IGFueSA9IFtdO1xyXG4gIHRhYmxlTG9hZGluZzogYW55ID0gZmFsc2U7XHJcbiAgdGFibGVEaXNwbGF5ZWRDb2x1bW5zOiBhbnkgPSBbXCJuYW1lXCIsIFwicm9sZVwiLCBcImVtYWlsXCJdXHJcbiAgcGFnZVZhbHVlOiBhbnkgPSBbXTtcclxuICBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc1RvdGFsOiBhbnkgPSAwO1xyXG4gIHNpemU6IGFueSA9IDU7XHJcbiAgb2Zmc2V0dmFsdWU6IG51bWJlciA9IDA7XHJcbiAgcGFnZURpc3BsYXk6IGFueSA9IFtdO1xyXG4gIG5leHRidG46IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGJhY2tidG46IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGN1cnJlbnRWYWx1ZTogYW55ID0gMTtcclxuICB0YWJsZUZpbHRlcjogYW55ID0gJyc7XHJcbiAgcGFnZVN0YXJ0OiBhbnkgPSAwO1xyXG4gIHBhZ2VFbmQ6IGFueSA9IDA7XHJcbiAgcmVjb3Jkc0NvdW50OiBhbnk7XHJcbiAgcGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LDIwXTtcclxuICB1c2VyRGF0YTogYW55ID0gW107XHJcbiAgZXhjZWxVc2VyRGF0YTogYW55ID0gW107XHJcbiAgc2hvd0ltYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICBtb250aERheTogYW55O1xyXG4gIHNob3c6IG51bWJlciA9IDA7XHJcbiAgcG9wVXBUaXRsZTogYW55O1xyXG4gIHNob3dJbnRybzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VhcmNoVXNlcjogYW55O1xyXG4gIGFkZFVzZXJGb3JtOiBib29sZWFuO1xyXG4gIHNvcFN0b3JlczogYW55ID0gW107XHJcbiAgc2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3Jtc2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydFRpbWU6IGFueTtcclxuICBlbmRUaW1lOiBhbnk7XHJcbiAgY2hlY2tsaXN0SWQ6IGFueTtcclxuICByZXVwbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbFVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZW1vdmVVc2VyczphbnkgPSBbXTtcclxuICBzZWxlY3RlZERheXM6IGFueVtdID0gW107XHJcbiAgc2hvd1JhbmdlVmFsdWU6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1Ym1pdHRlZERhdGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIG1vbnRoRGF0ZTpzdHJpbmc9Jyc7XHJcbiAgc3BlY2lmaWM6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGU6IGFueTtcclxuICBzZWN0aW9uczogYW55ID0gW107XHJcbiAgTW9udGh3ZWVrTnVtYmVyOiBzdHJpbmc7XHJcbiAgcG9wdXBDb3VudDogbnVtYmVyID0gMDtcclxuICB2YWxpZFRpbWU6Ym9vbGVhbiA9IHRydWU7XHJcbiAgZGlzYWJsZWRRdWVzdGlvbjpib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd2NvbmZpZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd2FkdmFuY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHJlcGVhdFR5cGU6c3RyaW5nPScnO1xyXG4gIHNob3dEcm9wRG93bjpib29sZWFuPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IGFueT0gW107XHJcbiAgZGF0ZXM6IG51bWJlcltdID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMzEgfSwgKF8sIGkpID0+IGkgKyAxKTsgLy8gQXJyYXkgZnJvbSAxIHRvIDMxXHJcbiAgc2VsZWN0ZWREYXRlTGlzdDphbnkgPSBbXTtcclxuICBzZWxlY3RlZFN0YXJ0RGF0ZTphbnk7XHJcbiAgbWluU3RhcnREYXRlOmFueTtcclxuICBzZWxlY3RlZEVuZERhdGU6YW55O1xyXG4gIG1pbkVuZERhdGU6YW55O1xyXG4gIGNsaWVudElkOmFueTtcclxuICBhbGVydFVzZXJzOmFueT1bXTtcclxuICB6b25lTGlzdDphbnkgPSBbXTtcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIGFwcHJvdmU6Ym9vbGVhbiA9IHRydWU7XHJcbiAgcmVtYWluZGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlZFB1Ymxpc2g6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICB0aW1lTG9vcDphbnlbXSA9IFsxXVxyXG4gIG1pbnV0ZXM6IG51bWJlcltdID0gWzMwLDQ1LDYwLDc1LDkwXTtcclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBjaGFuZ2VkZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZTogUm91dGVyLHByaXZhdGUgZGlhbG9nOk5nYk1vZGFsLHByaXZhdGUgU29wU2VydmljZTpUcmF4U2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5yb3V0ZXIucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbXMudHlwZSA9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIGNoZWNrTGlzdElkOiBwYXJhbXMuY2hlY2tMaXN0SWQsXHJcbiAgICAgICAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHlwZSA9ICdjdXN0b20nXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVkUXVlc3Rpb24gPSBwYXJhbXMuZGlzYWJsZWRRdWVzdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgdHlwZTogcGFyYW1zLnR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgICB0aGlzLkdldENvbmZpZygpO1xyXG4gICAgICB0aGlzLmdldENsaWVudFVzZXIoKTtcclxuICAgICAgdGhpcy5nZXRab25lTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgR2V0Q29uZmlnKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubW9udGhEYXRlID0gJyc7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gJyc7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Y29uZmlnKHRoaXMub2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1vdmVkVXNlcnMgfHwgW107XHJcbiAgICAgICAgICAvLyB0aGlzLmFwcHJvdmUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3Zlcj8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZW1haW5kZXIgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyPy5sZW5ndGggPyB0cnVlOiBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGltZUxvb3AgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyPy5sZW5ndGggPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoIH0sIChfLCBpKSA9PiBpKSA6IFswXTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgICAgICAgICAgaWYoZGF0ZS5kaWZmKHRoaXMuZGF5anMudXRjKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUpLCdtaW51dGVzJykgPCA1KSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0YXJ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFB1Ymxpc2ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoZGF0ZS5kaWZmKHRoaXMuZGF5anMudXRjKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUpLCdtaW51dGVzJykgPj0gNSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHN0YXJ0SW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LDEwMDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMucmVtb3ZlVXNlcnMgPSByZXMuZGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucmVtb3ZlZFVzZXJzIHx8IFtdO1xyXG4gICAgICAgICAgLy8gdGhpcy56b25lcyA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uZGV0ZWN0aW9uQXJlYSB8fCBbXTtcclxuICAgICAgICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zZWN0aW9ucztcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVdlZWtEYXlzIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy5lbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSA/IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSwgICdoOm1tIEEnKS5mb3JtYXQoJ0hIOm1tJykgOiAnMjI6MDAnO1xyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUgPyB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSwgJ2g6bW0gQScpLmZvcm1hdCgnSEg6bW0nKSA6ICcxMDowMCc7XHJcbiAgICAgICAgICB0aGlzLnJlcGVhdFR5cGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ2RhaWx5JyA/ICdEYXknIDogWyd3ZWVrbHknLCd3ZWVrZGF5J10uaW5jbHVkZXModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlKSA/ICdXZWVrJyA6ICdNb250aCc7XHJcbiAgICAgICAgICBpZighdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBcIjEwOjAwIFBNXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBcIjEwOjAwIEFNXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvLmxlbmd0aCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVtYWlsTGlzdCA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvO1xyXG4gICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTsgXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgICAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgICAgICAgICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdtb250aGx5Jykge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrLnNwbGl0KCcgJyk/Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5tb250aERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoRGF5ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoJyAnKVsxXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ3NwZWNpZmljJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zcGVjaWZpY0RhdGUgfHwgW107XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ3JhbmdlJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zcGVjaWZpYyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDMpIHtcclxuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lcnJvcjQwMyddKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFjY29yZGlhbihpbmRleDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5zaG93ID09IGluZGV4KSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IC0xO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93ID0gaW5kZXg7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBjb25maWdhY2NvcmRpYW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3djb25maWcgPSAhdGhpcy5zaG93Y29uZmlnO1xyXG4gIH1cclxuICBhZHZhbmNlYWNjb3JkaWFuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93YWR2YW5jZSA9ICF0aGlzLnNob3dhZHZhbmNlO1xyXG4gIH1cclxuICBDaGVja2xpc3QoKSB7XHJcbiAgICAvLyB0aGlzLm1vYmlsZXVzYWdlZGV0ZWN0aW9uID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMuc3RvcmVvcGVuYW5kY2xvc2VkZXRlY3Rpb24gPSBmYWxzZTtcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7ICAvLyAgICAgICAgIGsgPSBldmVudC5rZXlDb2RlOyAgKEJvdGggY2FuIGJlIHVzZWQpXHJcbiAgICByZXR1cm4gKGsgPT0gOCB8fCBrID09IDMyIHx8IChrID49IDQ4ICYmIGsgPD0gNTcpKTtcclxuXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUxpbWl0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPCAxNSkge1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5lcnJvcm1zZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LnVzYWdlRXhjZWVkcyA9ICcnO1xyXG4gICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5lcnJvcm1zZyA9IGZhbHNlO1xyXG5cclxuICB9XHJcblxyXG4gIG9uRmlsZVVwbG9hZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnJldXBsb2FkID0gZmFsc2U7XHJcbiAgICB0aGlzLnVzZXJEYXRhID0gdGhpcy5leGNlbFVzZXJEYXRhID0gW107XHJcbiAgICBsZXQgZGF0YTogYW55O1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPihldmVudC50YXJnZXQpO1xyXG4gICAgbGV0IGlzRXhjZWxGaWxlID0gISF0YXJnZXQuZmlsZXNbMF0ubmFtZS5tYXRjaCgvKC54bHN8Lnhsc3gpLyk7XHJcbiAgICBsZXQgZXJyb3I6YW55ID0gW107XHJcblxyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgICAgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cyk7XHJcblxyXG4gICAgICAgIGlmKCFkYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgVXBsb2FkIGEgVmFsaWQgZmlsZS4nKVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBkYXRhID0gZGF0YS5maWx0ZXIoKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKChpdGVtPy5zdG9yZU5hbWUgJiYgaXRlbT8uc3RvcmVOYW1lLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy5zdG9yZU5hbWUudHJpbSgpICE9IG51bGwpIHx8IChpdGVtPy51c2VyTmFtZSAmJiBpdGVtPy51c2VyTmFtZS50cmltKCkgIT0gJycgJiYgaXRlbT8udXNlck5hbWUudHJpbSgpICE9IG51bGwpIHx8IChpdGVtPy51c2VyRW1haWwgJiYgaXRlbT8udXNlckVtYWlsLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy51c2VyRW1haWwudHJpbSgpICE9IG51bGwpKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudD8udXNlckVtYWlsKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudXNlckVtYWlsID0gZWxlbWVudD8udXNlckVtYWlsLnJlcGxhY2UoL1xccy9nLCcnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgoZWxlbWVudC5zdG9yZU5hbWUgJiYgZWxlbWVudC5zdG9yZU5hbWUudHJpbSgpID09ICcnKSB8fCBlbGVtZW50LnN0b3JlTmFtZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGluZGV4KTtcclxuICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBTdG9yZSBOYW1lIC0gQSR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChlbGVtZW50LnVzZXJFbWFpbCAmJiBlbGVtZW50LnVzZXJFbWFpbC50cmltKCkgPT0gJycpIHx8IGVsZW1lbnQudXNlckVtYWlsID09IG51bGwpIHtcclxuICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCB1c2VyRW1haWwgLSBCJHtpbmRleCsyfWApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGVsZW1lbnQudXNlck5hbWUgJiYgZWxlbWVudC51c2VyTmFtZS50cmltKCkgPT0gJycpIHx8IGVsZW1lbnQudXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFVzZXIgTmFtZSAtIEMke2luZGV4KzJ9YClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWwgJiYgIWVsZW1lbnQudXNlckVtYWlsLm1hdGNoKC9eW2EtekEtWjAtOS5fLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Miw2fSQvKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4KzJ9YClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBjaGVja1VzZXJJbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsID09IGVsZW1lbnQudXNlckVtYWlsKTtcclxuICAgICAgICAgIGlmIChjaGVja1VzZXJJbmRleCAhPSAtMSAmJiAodGhpcy51c2VyRGF0YVtjaGVja1VzZXJJbmRleF0/LnVzZXJOYW1lICE9IG51bGwgJiYgZWxlbWVudD8udXNlck5hbWUgIT0gbnVsbCAmJiB0aGlzLnVzZXJEYXRhW2NoZWNrVXNlckluZGV4XT8udXNlck5hbWU/LnRyaW0oKS5sZW5ndGggJiYgZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKS5sZW5ndGggJiYgdGhpcy51c2VyRGF0YVtjaGVja1VzZXJJbmRleF0/LnVzZXJOYW1lPy50cmltKCkudG9Mb3dlckNhc2UoKSAhPSBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYFNhbWUgRW1haWwgd2l0aCBEaWZmZXJlbnQgdXNlcnMgLSBCJHtpbmRleCsyfSxCJHtjaGVja1VzZXJJbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQ/LnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICBjaXR5OiBlbGVtZW50Py5jaXR5XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coc3RvcmVOb3RFeGlzdHMpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHVzZXJOb3RFeGlzdHMpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnJvci5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogIGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgICAgICB0aXRsZTogYEludmFsaWQgZGV0YWlscyFgLFxyXG4gICAgICAgICAgICBjb250ZW50OiBgUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgc3RvcmUgaW5mb3JtYXRpb24uYCxcclxuICAgICAgICAgICAgYnV0dG9udHlwZTogJ2Vycm9yJyxcclxuICAgICAgICAgICAgZXJyb3I6ZXJyb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZihyZXMgIT0gJ3JldXBsb2FkJykge1xyXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMucmV1cGxvYWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgIGxldCBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzInKTtcclxuICAgICAgICAgICAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIC8vIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvci5qb2luKCcgJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbGlkYXRlVXNlckRldGFpbHMoZmFsc2UpO1xyXG4gICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBVcGxvYWQgYSBFeGNlbCBmaWxlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVVzZXJEZXRhaWxzKGRlbD86YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgYXNzaWduZWRVc2VyczogdGhpcy51c2VyRGF0YSxcclxuICAgICAgdXBsb2FkVXNlcjogdHJ1ZSxcclxuICAgICAgdHlwZTogdGhpcy5vYmo/LnR5cGUgJiYgWydtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModGhpcy5vYmoudHlwZSkgPyB0aGlzLm9iai50eXBlIDogJycsXHJcbiAgICAgIC4uLihkZWwpID8ge2RlbGV0ZTpmYWxzZX0gOiB7fSxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdmFsaWRhdGU6Qm9vbGVhbiA9IHRydWU7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXM/LmRhdGE/LkV4aXN0c0VtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChyZXM/LmRhdGE/LkV4aXN0c0VtYWlsLmpvaW4oJywgJykgKyAnICcgKyByZXM/LmRhdGE/Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlcz8uZGF0YT8uaWQpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uZG9tYWluLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBsZXQgZW1haWwgPSByZXM/LmRhdGE/LmRvbWFpbi5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLmVtYWlsKVxyXG4gICAgICAgICAgICAvLyArJyAnKyc8YSBocmVmPVwicHJvZmlsZS9kb21haW5zXCI+QWRkIGRvbWFpbjwvYT4nXHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlbWFpbC5qb2luKCcsICcpICsgJyAnICsgJ0RvbWFpbiBpcyBub3QgRXhpc3RzLicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCAmJiByZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgbGV0IHN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGluYWN0aXZlU3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBzdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnJztcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09ICdzdG9yZSBpcyBpbmFjdGl2ZSdcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBsb2NhdGlvbiA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSAhPSAnJyAmJiBpdGVtLm1lc3NhZ2UgIT0gJ3N0b3JlIGlzIGluYWN0aXZlJztcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBzdG9yZSA9IFsuLi5uZXcgU2V0KHN0b3JlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gWy4uLiBuZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOmFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgbG9jYXRpb24gPSBbLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgaWYgKHN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBOZXcgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGl0bGUgPSBgTmV3IFN0b3JlIGFuZCBJbmFjdGl2ZSBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgYSBuZXcgc3RvcmUuIEFkZCBuZXcgc3RvcmVzIGluIHRoZSBTdG9yZSBNYW5hZ2VtZW50IHVuZGVyIE1hbmFnZSBtZW51LmAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgc3VidGl0bGU6IHN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24uam9pbigpLFxyXG4gICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZXM6aW5hY3RpdmVTdG9yZS5qb2luKClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWAsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgSW5hY3RpdmUgc3RvcmVzIGZvdW5kIGluIHRoZSAuY3N2LiBQbGVhc2UgYWN0aXZhdGUgb3Igc2tpcCB0aGVtIHRvIHByb2NlZWQgdG8gYXNzaWduLmAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWN0aXZlc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgIGxldCBzdG9yZV9pZDogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB1c2VyRGF0YUNvcHkuZmluZCgoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZGV0YWlscy5jaXR5ID09IHVuZGVmaW5lZCB8fCBkZXRhaWxzLmNpdHkgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCk7XHJcbiAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdjb25maXJtU3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09ICdhY3RpdmVTdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ3NraXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcmVfaWQ6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLnVzZXJEYXRhLmZpbmQoKHN0b3JlOiBhbnkpID0+IGl0ZW0gPT0gc3RvcmUuc3RvcmVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGBDaXR5IGlzIHJlcXVpcmVkIG9uIHRoaXMgc3RvcmVzICR7c3RvcmVfaWQuam9pbigpfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkgJiYgIWluYWN0aXZlU3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHMnKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGV0YWlscyA9IHRoaXMudXNlckRhdGEubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsKTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXIgPSBbLi4ucmVzLmRhdGEudXNlcl07XHJcbiAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLnVzZXIgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgdXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS51c2VyLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEudXNlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnSW52aXRlJyxcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IHJlcy5kYXRhLnVzZXJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/Lm1lc3NhZ2UgPT0gJ2NvbmZpcm0nIHx8IHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD8udXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIudXNlckVtYWlsID09IGl0ZW0udXNlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLmludml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGl0ZW0gb2YgcmVzLmRhdGEudXNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0/Lm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGAke2l0ZW0udXNlckVtYWlsfSAtICR7aXRlbS5tZXNzYWdlfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGBQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlsc2ApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGggfHwgcmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGxldCBzdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbjogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBpbmFjdGl2ZVN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW1gLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0ludml0ZScsXHJcbiAgICAgICAgICAgICAgICB1c2VyOiByZXMuZGF0YS51c2VyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gJyc7XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnc3RvcmUgaXMgaW5hY3RpdmUnXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIGxvY2F0aW9uID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgIT0gJyc7XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHN0b3JlID0gWy4uLm5ldyBTZXQoc3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IFsuLi4gbmV3IFNldChpbmFjdGl2ZVN0b3JlLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24gPSBbLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBpZiAoc3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBgTmV3IFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgICBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZSA9IGBOZXcgU3RvcmUgYW5kIEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBhIG5ldyBzdG9yZS4gQWRkIG5ldyBzdG9yZXMgaW4gdGhlIFN0b3JlIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuYCxcclxuICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FkZHN0b3JlJyxcclxuICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IHN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbi5qb2luKCksXHJcbiAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmVzOmluYWN0aXZlU3RvcmUuam9pbigpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogYEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgLFxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBgSW5hY3RpdmUgc3RvcmVzIGZvdW5kIGluIHRoZSAuY3N2LiBQbGVhc2UgYWN0aXZhdGUgb3Igc2tpcCB0aGVtIHRvIHByb2NlZWQgdG8gYXNzaWduLmAsXHJcbiAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdBY3RpdmVzdG9yZScsXHJcbiAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBpbmFjdGl2ZVN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB1c2VyRGF0YUNvcHkuZmluZCgoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3RvcmVfaWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZV9pZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwb3B1cGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnY29uZmlybVN0b3JlJykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kYClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSAnYWN0aXZlU3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlc2ApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Py5tZXNzYWdlID09ICdjb25maXJtJyB8fCByZXN1bHQgPT0gJ3NraXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGV0YWlscyA9IHJlcy5kYXRhLnVzZXIubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsKVxyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXJEZXRhaWxzLmluY2x1ZGVzKGl0ZW0udXNlckVtYWlsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9yZV9pZDogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB1c2VyRGF0YUNvcHkuZmluZCgoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlscy5jaXR5ID09IHVuZGVmaW5lZCB8fCBkZXRhaWxzLmNpdHkgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8uc3RvcmU/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSAmJiAhaW5hY3RpdmVTdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8udXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIudXNlckVtYWlsID09IGl0ZW0udXNlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLmludml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGl0ZW0gb2YgcmVzLmRhdGEudXNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0/Lm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGAke2l0ZW0udXNlckVtYWlsfSAtICR7aXRlbS5tZXNzYWdlfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSwoZXJyb3IpID0+IHtcclxuICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFVzZXIoZGVsPzphbnkpIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgYXNzaWduZWRVc2VyczogdGhpcy51c2VyRGF0YSxcclxuICAgICAgdXBsb2FkVXNlcjogdHJ1ZSxcclxuICAgICAgYWRkVXNlcjogdHJ1ZSxcclxuICAgICAgdHlwZTogdGhpcy5vYmo/LnR5cGUgJiYgWydtb2JpbGV1c2FnZWRldGVjdGlvbicsICdzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHRoaXMub2JqLnR5cGUpID8gdGhpcy5vYmoudHlwZSA6ICcnLFxyXG4gICAgICAuLi4oZGVsKSA/IHtkZWxldGU6ZmFsc2V9IDoge30sXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS52YWxpZGF0ZVVzZXIoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW107XHJcbiAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1c2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBsaW1pdDogdGhpcy5zaXplLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlscyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnVzZXJzO1xyXG4gICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ID0gdGhpcy50YWJsZURhdGEubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOmFueSkgPT57XHJcbiAgICAgICAgICBpZihpdGVtLmNoZWNrRmxhZyAmJiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSAmJiAhdGhpcy5yZW1vdmVVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGl0ZW0uaWQpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKSB7XHJcbiAgICAgICAgICAgIGNvdW50ICs9MTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKCFpdGVtLmNoZWNrRmxhZyAmJiAhdGhpcy5yZW1vdmVVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIGlmIChjb3VudCA9PSB0aGlzLnJlY29yZHNDb3VudCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgbGltaXQ6IDEwMDAwLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBzZWFyY2g6IHRoaXMudGFibGVGaWx0ZXIsXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlscyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGxldCBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICBzdG9yZU5hbWU6ICcnLFxyXG4gICAgICAgICAgdXNlckVtYWlsOiAnJyxcclxuICAgICAgICAgIHVzZXJOYW1lOiAnJyxcclxuICAgICAgICAgIHVzZXJQaG9uZTogJycsXHJcbiAgICAgICAgICBjaXR5OicnXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHJlcy5kYXRhLnVzZXJzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgdXNlclBob25lOiBpdGVtLnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgY2l0eTppdGVtLmNpdHlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLlNvcFNlcnZpY2UuZXhwb3J0QXNFeGNlbEZpbGUoZXhjZWxEYXRhLCAnQ2hlY2tMaXN0X3VzZXJMaXN0XycpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBldmVudDtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGxpbWl0OiB0aGlzLnNpemUsXHJcbiAgICAgIG9mZnNldDogZXZlbnQgLSAxLFxyXG4gICAgICBzZWFyY2g6IHRoaXMudGFibGVGaWx0ZXIsXHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VXNlckRldGFpbHMocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKHJlcyA9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlRmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPSByZXMuZGF0YS51c2VycztcclxuICAgICAgICBsZXQgY291bnQ9MDtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLmNoZWNrRmxhZyAmJiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSAmJiAhdGhpcy5yZW1vdmVVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGl0ZW0uaWQpXHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgY291bnQgKz0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5yZWNvcmRzQ291bnQgPSB0aGlzLnRhYmxlRGF0YS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXTtcclxuICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb3VudCA9PSB0aGlzLnJlY29yZHNDb3VudCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaXplID0gZXZlbnQ7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBsaW1pdDogdGhpcy5zaXplLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlscyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnVzZXJzO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hlY2tGbGFnICYmICF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpICYmICF0aGlzLnJlbW92ZVVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnB1c2goaXRlbS5pZClcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ID0gdGhpcy50YWJsZURhdGEubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaFRhYmxlRGF0YSgpIHtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIGxpbWl0OiB0aGlzLnNpemUsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlRmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VXNlckRldGFpbHMocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnVzZXJzO1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnQgPSB0aGlzLnRhYmxlRGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgbGV0IGNvdW50ID0gMCA7XHJcbiAgICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF1cclxuICAgICAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXVxyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaCgoaXRlbTphbnkpID0+e1xyXG4gICAgICAgICAgICBpZihpdGVtLmNoZWNrRmxhZyAmJiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSAmJiAhdGhpcy5yZW1vdmVVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnB1c2goaXRlbS5pZCk7XHJcbiAgXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKSB7XHJcbiAgICAgICAgICAgICAgY291bnQgKz0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYgKGNvdW50ID09IHRoaXMucmVjb3Jkc0NvdW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdXBkYXRlRmxhZyhldmVudDogYW55LCBpbmRleDogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuICAgICAgICBcclxuICAgIGVsZW1lbnQuY2hlY2tGbGFnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWRcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiBpdGVtID09IGVsZW1lbnQuaWQpO1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChlbGVtZW50LmlkKVxyXG4gICAgfVxyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnB1c2goZWxlbWVudC5pZCk7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVEYXRhW2luZGV4XS5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5sZW5ndGggIT0gdGhpcy5yZWNvcmRzVG90YWwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGNoZWNrQWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrRmxhZyA9IHRydWVcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uaWQpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICBpZighdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChpdGVtLmlkKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVXNlcnMucHVzaChpdGVtLmlkKVxyXG4gICAgICAgIGxldCBpbmRleCA9ICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmZpbmRJbmRleCgoaWQ6YW55KSA9PiBpZCA9PSBpdGVtLmlkKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnNwbGljZShpbmRleCwxKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIGRhdGVSYW5nZVN0YXJ0KGV2ZW50IDphbnkpIHtcclxuICAvLyAgIHRoaXMucmFuZ2VTdGFydCA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgLy8gICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gIC8vIH1cclxuICBkYXRlU3BlY2lmaWMoZXZlbnQ6YW55KSB7XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ3JhbmdlJyAmJiBldmVudD8uc2VsZWN0ZWRMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IGV2ZW50LnNlbGVjdGVkTGlzdDtcclxuICAgIH1cclxuICB9XHJcbiAgZGF0ZVJhbmdlU3RhcnQoZXZlbnQgOmFueSkge1xyXG4gICAgaWYoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnb25ldGltZScpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgICB9XHJcbiAgICB9ICAgXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdvbmV0aW1lJylcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGU7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG4gICAgfSBcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgfVxyXG4gIFxyXG4gIGRhdGVSYW5nZUVuZChldmVudDphbnkpIHtcclxuICAgIGlmKGV2ZW50ICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgICAgLy8gdGhpcy5yZWZyZXNoUGlja2VyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyBkYXRlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgLy8gICB0aGlzLmRhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0KTtcclxuICAvLyAgIHRoaXMubW9udGhEYXRlID0gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMSA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3N0JyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDIgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICduZCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAzID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAncmQnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAndGgnO1xyXG4gIC8vICAgdGhpcy5tb250aERheSA9IHRoaXMuZGF0ZS5mb3JtYXQoJ2RkZGQnKTtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAvLyAgIGxldCB3ZWVrTnVtYmVyID0gZ2V0V2Vla051bWJlcih0aGlzLmRhdGUpO1xyXG4gIC8vICAgdGhpcy5Nb250aHdlZWtOdW1iZXIgPSB3ZWVrTnVtYmVyID09IDEgPyB3ZWVrTnVtYmVyICsgJ3N0JyA6IHdlZWtOdW1iZXIgPT0gMiA/IHdlZWtOdW1iZXIgKyAnbmQnIDogd2Vla051bWJlciA9PSAzID8gd2Vla051bWJlciArICdyZCcgOiB3ZWVrTnVtYmVyICsgJ3RoJztcclxuICAvLyAgIHRoaXMuc2V0TW9udGhEYXRlKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwKTtcclxuICAvLyB9XHJcbiAgLy8gc2V0RGF5KGRheTogYW55KSB7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gZGF5O1xyXG4gIC8vIH1cclxuICBzZXREYXkoZGF5OnN0cmluZyl7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERheXMuaW5jbHVkZXMoZGF5KSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IHRoaXMuc2VsZWN0ZWREYXlzLmZpbHRlcihzZWxlY3RlZERheSA9PiBzZWxlY3RlZERheSAhPT0gZGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnB1c2goZGF5KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gc2V0TW9udGhEYXRlKGRhdGE6IGFueSkge1xyXG4gIC8vICAgaWYgKGRhdGEgPT0gJ2RhdGUnKSB7XHJcbiAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBbdGhpcy5tb250aERhdGVdO1xyXG4gIC8vICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFt0aGlzLm1vbnRoRGF0ZV07IFxyXG4gIC8vICAgfVxyXG4gIC8vICAgZWxzZSB7XHJcbiAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBbdGhpcy5tb250aERheV07XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW3RoaXMubW9udGhEYXldOyBcclxuICAvLyAgICAgbGV0IHdlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKHRoaXMuZGF0ZSk7XHJcbiAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB3ZWVrTnVtYmVyID09IDEgPyB3ZWVrTnVtYmVyICsgJ3N0JyA6IHdlZWtOdW1iZXIgPT0gMiA/IHdlZWtOdW1iZXIgKyAnbmQnIDogd2Vla051bWJlciA9PSAzID8gd2Vla051bWJlciArICdyZCcgOiB3ZWVrTnVtYmVyICsgJ3RoJztcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID0gZGF0YTtcclxuXHJcbiAgLy8gfVxyXG4gIC8vIHNldERhdGUoZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gZXZlbnQuc3RhcnQ7XHJcbiAgLy8gfVxyXG4gIHB1Ymxpc2goKSB7XHJcbiAgICBpZihbJ3dlZWtseScsJ3dlZWtkYXknXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSkgJiYgdGhpcy5zZWxlY3RlZERheXMubGVuZ3RoID09IDApe1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBzZWxlY3QgYXRsZWFzdCAxIGRheSB0byBwcm9jZWVkJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnZhbGlkVGltZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0nJzsgXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMubW9udGhEYXRlICsnICcrdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgIGlmKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIHNlbGVjdCBhdGxlYXN0IDEgZGF0ZSB0byBwcm9jZWVkJyk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdDtcclxuICAgIH1cclxuICAgIGxldCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHB1Ymxpc2ggJHt0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3Q/YCxcclxuICAgICAgY29udGVudDogYFB1Ymxpc2hpbmcgd2lsbCBtYWtlIHRoaXMgY2hlY2tsaXN0IGxpdmUsIGFuZCBjaGFuZ2VzIHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkuYCxcclxuICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgICAvLyBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZGV0ZWN0aW9uQXJlYSA9IHRoaXMuem9uZXM7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAodGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jbG9zZVRpbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5wdWJsaXNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuc3VibWl0VHlwZSA9ICdwdWJsaXNoJztcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVdlZWtEYXlzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwZGF0ZUNvbmZpZ3VyZSA9IHRoaXMuZGlzYWJsZWRRdWVzdGlvbiA/ICB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbmZpZ0RhdGEpO1xyXG4gICAgICAgIFxyXG5cclxuICAgICAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoYCR7dGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0TmFtZX0gY2hlY2tsaXN0IHB1Ymxpc2hlZC5gKTtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL21hbmFnZS90cmF4L2NoZWNrbGlzdCddKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBBc3NpZ24gYSBVc2VyIScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBBc3NpZ24gYSBVc2VyIScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnc29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBzZWxlY3RzdG9yZShlbGVtZW50OiBhbnkpIHtcclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheFN0b3JlQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG5cclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gZWxlbWVudDtcclxuXHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gIC8vICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAvLyAgICAgaWYgKGRhdGEgJiYgZGF0YS5tc2cgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgaWYgKGRhdGEuc3RvcmVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgbGV0IHNvcCA9IGRhdGEuc3RvcmVzO1xyXG4gIC8vICAgICAgICAgbGV0IGlkID0gZWxlbWVudC5pZDtcclxuICAvLyAgICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5hc3NpZ25Tb3BTdG9yZShzb3AsIGlkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgICAvLyAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICAvLyAgICAgZWxlbWVudC5zb3Bfc3RvcmVzID0gZGF0YS5zdG9yZXM7XHJcbiAgLy8gICAgICAgICAvLyAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAgIC8vIH0sIChlcnJvcjogYW55KSA9PiB7XHJcblxyXG4gIC8vICAgICAgICAgLy8gfSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIG5ld3N0b3JlKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvbWFuYWdlL3N0b3Jlc1wiXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RpZDogSlNPTi5zdHJpbmdpZnkodGhpcy5vYmopIH0gfSk7XHJcbiAgfVxyXG4gIGludml0ZXVzZXIoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9jb250cm9sLXBhbmVsL2Fzc2lnbi1yb2xlXCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdGlkOiBKU09OLnN0cmluZ2lmeSh0aGlzLm9iaikgfSB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF5JyA/IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJykgOiAnJztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSBldmVudC50YXJnZXQudmFsdWUgPCA5ICA/ICcwJytldmVudC50YXJnZXQudmFsdWUgOiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGV2ZW50OmFueSkgeyAgICBcclxuICAgIGlmKCFpc05hTihldmVudC50YXJnZXQudmFsdWUpKSB7XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZVswXSA9PSAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+IDEpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZVswXSA+IDMgJiYgZXZlbnQudGFyZ2V0LnZhbHVlWzFdID49IDApIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IGV2ZW50LnRhcmdldC52YWx1ZVswXTtcclxuICAgICAgfVxyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWVbMF0gPCAxKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzYXZlZHJhZnQoKSB7XHJcbiAgICBpZighdGhpcy52YWxpZFRpbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0nJzsgXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMubW9udGhEYXRlICsnICcrdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgIGlmKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRUeXBlID09ICdyYW5nZScpIHtcclxuICAgIC8vICAgbGV0IHN0YXJ0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUuc3BsaXQoJyAnKTtcclxuICAgIC8vICAgbGV0IGVuZCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZS5zcGxpdCgnICcpO1xyXG4gICAgLy8gICBzdGFydERhdGVXaXRoVGltZSA9IHN0YXJ0Lmxlbmd0aCA+IDIgPyBzdGFydFsxXSArICcgJyArIHN0YXJ0WzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWU7XHJcbiAgICAvLyAgIGVuZERhdGVXaXRoVGltZSA9IGVuZC5sZW5ndGggPiAyID8gZW5kWzFdICsgJyAnICsgZW5kWzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5yYW5nZVN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKSArICcgJyArIHN0YXJ0RGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmRheWpzKHRoaXMucmFuZ2VFbmQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgJyAnICsgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgICBcclxuICAgIC8vICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID4gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBzdGFydERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdFbmQgdGltZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCB0aW1lJyk7XHJcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICBcclxuICAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuc3VibWl0VHlwZSA9ICdzYXZlJztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnB1Ymxpc2ggPSBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkVXNlcnMgPSB0aGlzLnJlbW92ZVVzZXJzO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVXZWVrRGF5cyA9IHRoaXMuc2VsZWN0ZWREYXlzO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgdGl0bGU6IGBVbnNhdmVkIGNoYW5nZXNgLFxyXG4gICAgICBjb250ZW50OiBgRG8geW91IHdhbnQgdG8gc2F2ZSBhcyBkcmFmdD9gLFxyXG4gICAgICBidXR0b250eXBlOiAnZHJhZnQnXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jbG9zZVRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSB0aGlzLnNvcFN0b3JlcztcclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICAgIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdEcmFmdCBoYXMgYmVlbiBzYXZlZCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvY2hlY2tsaXN0J10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICB0aXRsZTogYFJldXBsb2FkIENTVmAsXHJcbiAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVwbGFjZSBleGlzdGluZyBkYXRhIGJ5IHVwbG9hZGluZyBuZXcgZmlsZT8gWW91ciBleGlzdGluZyBkYXRhIHdpbGwgZ2V0IHJlcGxhY2VkIHdpdGggdGhlIG5ldyBvbmUuYCxcclxuICAgICAgYnV0dG9udHlwZTogJ1JldXBsb2FkJ1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMucmV1cGxvYWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGxldCBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzInKTtcclxuICAgICAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuICAvLyBpbnZpdGVuZXd1c2VyKCkge1xyXG4gIC8vICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAvLyAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAvLyAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gIC8vICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgLy8gICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gIC8vICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW0uIDxicj5gLFxyXG4gIC8vICAgICBidXR0b250eXBlOiAnSW52aXRlJ1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAvLyAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG5cclxuICAvLyAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgLy8gICAgICAgLy8gICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgIC8vICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgIC8vICAgICAgIHRvYXN0OiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGljb25IdG1sOiAnPGltZyAgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL0ljb25zL2NoZWNrbGlzdC11bnB1Ymxpc2hlZC1pY29uLnN2Z1wiPicsXHJcbiAgLy8gICAgICAgLy8gICAgICAgLy8gdGl0bGVUZXh0OiBgRW1haWwgc2VudCBzdWNjZXNmdWxseWAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8aDQ+Q1NWIGhhcyBiZWVuIFJldXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LjwvaDQ+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+YCxcclxuICAvLyAgICAgICAvLyAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lcjogNjAwMCxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lclByb2dyZXNzQmFyOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIFN3YWwuc3RvcFRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIFN3YWwucmVzdW1lVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpLnZhbCgnJylcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgLy8gICAgIH0pXHJcblxyXG4gIC8vICAgICAgIC8vICAgICAvLyB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL3NvcC9DaGVja2xpc3RzJ10pO1xyXG5cclxuICAvLyAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAvLyB9KVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG5cclxuICAvLyB9XHJcbiAgLy8gQWRkc3RvcmUoKSB7XHJcbiAgLy8gICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gIC8vICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gIC8vICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgLy8gICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAvLyAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgLy8gICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbS4gPGJyPmAsXHJcbiAgLy8gICAgIHN1YnRpdGxlOiAnTEtTVDAwOSwgU1QzMDQ1JyxcclxuICAvLyAgICAgYnV0dG9udHlwZTogJ0FkZHN0b3JlJ1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAvLyAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG5cclxuICAvLyAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgLy8gICAgICAgLy8gICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgIC8vICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgIC8vICAgICAgIHRvYXN0OiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGljb25IdG1sOiAnPGltZyAgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL0ljb25zL2NoZWNrbGlzdC11bnB1Ymxpc2hlZC1pY29uLnN2Z1wiPicsXHJcbiAgLy8gICAgICAgLy8gICAgICAgLy8gdGl0bGVUZXh0OiBgRW1haWwgc2VudCBzdWNjZXNmdWxseWAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8aDQ+Q1NWIGhhcyBiZWVuIFJldXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LjwvaDQ+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+YCxcclxuICAvLyAgICAgICAvLyAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lcjogNjAwMCxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lclByb2dyZXNzQmFyOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIFN3YWwuc3RvcFRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIFN3YWwucmVzdW1lVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpLnZhbCgnJylcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgLy8gICAgIH0pXHJcblxyXG4gIC8vICAgICAgIC8vICAgICAvLyB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL3NvcC9DaGVja2xpc3RzJ10pO1xyXG5cclxuICAvLyAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAvLyB9KVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG5cclxuICAvLyB9XHJcbiAgLy8gYWRkVXNlcigpIHtcclxuICAvLyAgIHRoaXMuYWRkVXNlckZvcm0gPSAhdGhpcy5hZGRVc2VyRm9ybTtcclxuICAvLyB9XHJcblxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAodHlwZTogc3RyaW5nLCByZWNvcmQ6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAvLyAgICAgaWYgKHR5cGUgPT0gJ3ZpZXcnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJWaWV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFZGl0IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICAgIC8vIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGxldCBkYXRhID0ge1xyXG4gIC8vICAgICAgIHJlY29yZDogcmVjb3JkLFxyXG4gIC8vICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgLy8gICAgICAgdGl0bGU6IHRoaXMucG9wVXBUaXRsZVxyXG4gIC8vICAgICB9XHJcblxyXG4gIC8vICAgICBjb25zdCBkaWFsb2dSZWZfY3JlYXRlVXNlciA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnLFxyXG4gIC8vICAgICAgIGRhdGE6IGRhdGFcclxuICAvLyAgICAgfSk7XHJcblxyXG4gIC8vICAgICBkaWFsb2dSZWZfY3JlYXRlVXNlci5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICB0aGlzLnNob3dJbnRybyA9IGZhbHNlO1xyXG4gIC8vICAgICAgIGlmICghcmVjb3JkICYmIHJlcyAmJiByZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICAgICAgICB0ZXh0OiAnVGhlIHVzZXIgaW52aXRlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5IHRvIHRoZSB1c2VyIGFuZCBhZGRlZCB0byB0aGUgcGxhdGZvcm0hJyxcclxuICAvLyAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdPSycsXHJcbiAgLy8gICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiBmYWxzZSxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gIC8vICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gIC8vICAgICAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KVxyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAocmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdVc2VyIFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5IScsXHJcbiAgLy8gICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIHRoaXMuc2VhcmNoVXNlciA9ICcnXHJcbiAgLy8gICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLmxvYWRSZWNvcmRzKDAsIHRoaXMuc2l6ZSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9IFxyXG5cclxuXHJcbiAgLy8gY3JlYXRldXNlclBvcHVwKCkge1xyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVcGxvYWRTaW5nbGVVc2VyQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnXHJcblxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxyXG4gIC8vICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAvLyAgICAgfSlcclxuICAvLyB9XHJcblxyXG4gIC8vIHRyYW5zZmVyRm9ybURhdGEoKSB7XHJcbiAgLy8gICB0aGlzLlNvcFNlcnZpY2Uuc29wRGF0YS5hc09ic2VydmFibGUoKVxyXG4gIC8vIH1cclxuICBzYXZlYW5kcmVkaXJlY3QoaWQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gdGhpcy5jb25maWdEYXRhLm9wZW5UaW1lO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jbG9zZVRpbWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICBcclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0nJzsgXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPScnOyBcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5tb250aERhdGUgKycgJysgdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgIGlmKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcblxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdFwiXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RJZDogaWQgfSB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgdmFsaWRhdGVUaW1lKCkge1xyXG4gICAgbGV0IHN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsICdISDptbScpXHJcbiAgICBsZXQgZW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCAnSEg6bW0nKVxyXG4gICAgaWYgKCB0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBudWxsICYmICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgPT0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpIHtcclxuICAgICAgICAgIGlmIChzdGFydFRpbWUgPiBlbmRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBEYXRlJyk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVUaW1lKGRhdGE6IGFueSkge1xyXG4gICAgaWYodGhpcy52YWxpZGF0ZVRpbWUoKSkge1xyXG4gICAgICBpZiAoZGF0YSA9PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmRheWpzKHRoaXMuc3RhcnRUaW1lLCAnSEg6bW0nKS5mb3JtYXQoJ2hoOm1tIEEnKVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCAnSEg6bW0nKS5mb3JtYXQoJ2hoOm1tIEEnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBcclxuICB9XHJcbiAgdXBkYXRlU2NoZWR1bGUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9ICcnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9ICcwMSc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFtdO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zcGVjaWZpYyA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSAnJztcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJztcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlID09ICdyYW5nZScgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3JhbmdlJykge1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zcGVjaWZpYyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gW107XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfHwgdGhpcy5kYXlqcygpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfHwgdGhpcy5kYXlqcygpLmFkZCgxLCdkYXknKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pblN0YXJ0RGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCk7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMubWluRW5kRGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcygpLmFkZCgxLCdkYXknKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgLy8gdGhpcy5yZWZyZXNoUGlja2VyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3dlZWtkYXknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gWydNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5J107XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3dlZWtseScpIHtcclxuICAgICAgbGV0IHRvZGF5RGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ2RkZGQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdG9kYXlEYXRlXTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbW9udGhseScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSAnZGF5JztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJyk7XHJcbiAgICB9XHJcbiAgICBpZihbJ2RhaWx5Jywnb25ldGltZSddLmluY2x1ZGVzKGV2ZW50LnRhcmdldC52YWx1ZSkgfHwgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbW9udGhseScgJiYgWydkYXknLCdkYXRlJ10uaW5jbHVkZXModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXApKSApIHtcclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdvbmV0aW1lJykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2UgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMucmVwZWF0VHlwZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnZGFpbHknID8gJ0RheScgOiBbJ3dlZWtseScsJ3dlZWtkYXknXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpID8gJ1dlZWsnIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdtb250aGx5JyA/ICdNb250aCcgOiAnJztcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcbiAgXHJcbiAgbmF2aWdhdGVUb0NvbnRyb2xDZW50ZXIoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2NvbnRyb2xjZW50ZXIvdGVtcGxhdGV2aWV3J10seyBxdWVyeVBhcmFtczogeyBzb3VyY2U6ICdjYycgfSB9KTtcclxuICB9XHJcblxyXG4gIGFkZFN0b3JlQ29tcG9uZW50KCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcgXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgb2JqOnRoaXMub2JqXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgdGhpcy51c2VyRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLnZhbGlkYXRlVXNlckRldGFpbHModHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSAhdGhpcy5zaG93RHJvcERvd247XHJcbiAgfVxyXG4gIHNlbGVjdERhdGUoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGRheTphbnkpID0+IGRheSAhPT0gZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZighdGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5wdXNoKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1Ym1pdERhdGUoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gWy4uLnRoaXMuc2VsZWN0ZWREYXRlXTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJhZGdlKGRhdGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IHRoaXMuc3VibWl0dGVkRGF0ZXMuZmlsdGVyKGQgPT4gZCAhPT0gZGF0ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlLmZpbHRlcigoZDphbnkpID0+IGQgIT09IGRhdGUpO1xyXG4gIH1cclxuICBnZXREYXRlV2l0aFN1ZmZpeChkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGRhdGUgPT0gMSB8fCBkYXRlID09IDMxIHx8IGRhdGUgPT0gMjEpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyAnc3QnO1xyXG4gICAgfSBlbHNlIGlmIChkYXRlID09IDIgfHwgZGF0ZSA9PSAyMikge1xyXG4gICAgICByZXR1cm4gZGF0ZSArICduZCc7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUgPT0gMyB8fCBkYXRlID09IDIzKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ3JkJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ3RoJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTW9udGgodHlwZTphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAnJztcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID0gdHlwZTtcclxuICAgIHRoaXMubW9udGhEYXRlID0gJydcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJ1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2UgPSBmYWxzZTtcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICBsZXQgZGF0ZVdlZWsgPSBnZXRXZWVrTnVtYmVyKHRoaXMuZGF5anMoKSk7XHJcbiAgICAgIHRoaXMubW9udGhEYXRlID0gZGF0ZVdlZWsudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5tb250aERheSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ2RkZGQnKTsgICAgICBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXknKSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlcGVhdERheSgpIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gdmFsdWUgPT0gXCIwMFwiIHx8IHZhbHVlID09ICcnID8gJzAxJyA6IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTW9udGhWYWx1ZSgpIHtcclxuICAgIGxldCBkYXRlVmFsdWUgPSAnJ1xyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzEnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdGaXJzdCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICcyJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnU2Vjb25kJ1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzMnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdUaGlyZCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICc0Jykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnRm91cnRoJ1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzUnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdMYXN0J1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICgnb24gdGhlICcgKyBkYXRlVmFsdWUgKycgJyt0aGlzLm1vbnRoRGF5KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpIHtcclxuICAgIGxldCB2YWx1ZTphbnkgPSBbXTtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgaXRlbSA9IChpdGVtID09IDEgfHwgaXRlbSA9PSAzMSB8fCBpdGVtID09IDIxKSA/IGl0ZW0gKycgc3QnIDogKGl0ZW0gPT0gMiB8fCBpdGVtID09IDIyKSA/IGl0ZW0gKycgbmQnIDogKGl0ZW0gPT0gMyB8fCBpdGVtID09IDIzICk/IGl0ZW0gKyAncmQnIDogaXRlbSArJyB0aCc7XHJcbiAgICAgIHZhbHVlLnB1c2goaXRlbSApXHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0ZShkYXRlOmFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0LmZpbHRlcigoZWxlOmFueSkgPT4gZWxlICE9IGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2NlZHVsZURhdGUoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlJyx0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpXHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXRlVmFsdWUoZXZlbnQ6YW55KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHx8IHRoaXMuZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5taW5EYXRlPScnO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3BlY2lmaWMoZXZlbnQ6YW55KSB7XHJcbiAgICBpZighZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRhdGVwaWNrZXJSZWZyZXNoKCl7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5taW5FbmREYXRlID0gJyc7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTcGVjaWZpY0RhdGUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBjbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KFwiLmRyb3Bkb3duLWNsb3NlXCIpO1xyXG4gICAgY29uc29sZS5sb2coY2xpY2tlZEluc2lkZSk7XHJcbiAgICBcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENsaWVudFVzZXIoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Q2xpZW50VXNlcih0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0VXNlcnMgPSByZXMuZGF0YS5tYXAoKGl0ZW06YW55KSA9PiB7cmV0dXJuIHtuYW1lOml0ZW0udXNlck5hbWUsdmFsdWU6aXRlbS5lbWFpbCxyb2xlOml0ZW0ucm9sZX19KTtcclxuICAgICAgICBpZighdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hcHByb3Zlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmUgPSB0cnVlO1xyXG4gICAgICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgICAgICAgIGlmKHVzZXJJbmZvPy51c2VyVHlwZSA9PSAndGFuZ28nIHx8ICh1c2VySW5mbz8udXNlclR5cGUgPT0gJ2NsaWVudCcgJiYgdXNlckluZm8/LnJvbGUgPT0gJ3VzZXInKSkge1xyXG4gICAgICAgICAgICBsZXQgdXNlckxpc3QgPSB0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnJvbGUgPT0gJ3N1cGVyYWRtaW4nKTtcclxuICAgICAgICAgICAgaWYodXNlckxpc3QpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFt7bmFtZTp1c2VyTGlzdC5uYW1lLHZhbHVlOnVzZXJMaXN0LnZhbHVlfV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW3RoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6YW55KSA9PiBlbGUudmFsdWUgPT0gdXNlckluZm8uZW1haWwpXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFVzZXJzID0gW107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZUxpc3QoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Wm9uZUxpc3QodGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLnpvbmVMaXN0ID0gcmVzLmRhdGEubWFwKChpdGVtOmFueSkgPT4ge3JldHVybiB7bmFtZTppdGVtLnpvbmUsdmFsdWU6aXRlbS56b25lfX0gKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnpvbmVMaXN0ID0gW107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQWxlcnQoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxvb3AoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMubWludXRlcy5maWx0ZXIoaXRlbSA9PiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmluY2x1ZGVzKGl0ZW0pKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5wdXNoKGRhdGFbMF0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVtYWluZGVyKGV2ZW50OmFueSxpbmRleDphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcltpbmRleF0gPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXBwcm92ZXIoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3duZXIoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5vd25lciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnUmVtYWluZGVyKGV2ZW50OmFueSkge1xyXG4gICAgaWYoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFtdO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFt0aGlzLm1pbnV0ZXNbMF1dO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDb25maWdBcHByb3ZlcihldmVudDphbnkpIHtcclxuICAgIGlmKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtdO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgICAgaWYodXNlckluZm8/LnVzZXJUeXBlID09ICd0YW5nbycgfHwgKHVzZXJJbmZvPy51c2VyVHlwZSA9PSAnY2xpZW50JyAmJiB1c2VySW5mbz8ucm9sZSA9PSAndXNlcicpKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS5yb2xlID09ICdzdXBlcmFkbWluJyldO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW3RoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6YW55KSA9PiBlbGUudmFsdWUgPT0gdXNlckluZm8uZW1haWwpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZUxvb3AoaW5kZXg6YW55KSB7XHJcbiAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyKSk7XHJcbiAgICBpZihkYXRhLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnNwbGljZShpbmRleCwxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWludXRlcy5maWx0ZXIoKGl0ZW06YW55KSA9PiBkYXRhLmxlbmd0aCA/ICFkYXRhPy5pbmNsdWRlcyhpdGVtKSA6IGl0ZW0pO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFdlZWtOdW1iZXIoZGF0ZTogYW55KSB7XHJcbiAgbGV0IGRheXMgPSBbXTtcclxuICBsZXQgZGF0ZURhdCA9IGRheWpzKCBkYXRlICkuc3RhcnRPZiggJ21vbnRoJyApO1xyXG5cclxuICB3aGlsZSAoIGRhdGVEYXQubW9udGgoKSA9PT0gZGF0ZS5tb250aCgpICkge1xyXG4gICAgaWYgKCBkYXRlRGF0LmZvcm1hdCggJ2RkZGQnICkgPT09ICBkYXRlLmZvcm1hdCggJ2RkZGQnICkpIHtcclxuICAgICAgZGF5cy5wdXNoKCBkYXRlRGF0LmZvcm1hdCggJ1lZWVktTU0tREQnICkgKTtcclxuICAgIH1cclxuICAgIGRhdGVEYXQgPSBkYXRlRGF0LmFkZCggMSwgJ2RheScgKTtcclxuICB9XHJcblxyXG4gIGxldCBmaW5kSW5kZXggPSBkYXlzLmZpbmRJbmRleCgoaXRlbTphbnkpID0+IGl0ZW0gPT0gZGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKSlcclxuICByZXR1cm4gKGZpbmRJbmRleCArIDEpO1xyXG5cclxufSIsIjxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJjYXJkIHJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3REZXNjcmlwdGlvblwiIHJlYWRvbmx5PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG15LTYganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHVibGlzaCgpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkUHVibGlzaFwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlB1Ymxpc2g8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlZHJhZnQoKVwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlNhdmUgYXMgRHJhZnQ8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGNoZWNrY29uZmlnY29udCBtdC0yXCIgKm5nSWY9XCJjb25maWdEYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0zIGxlZnRjYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTcgcHktN1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcxXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouY2hlY2tMaXN0SWRcIiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnM7IGxldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNCBmdy1ib2xkIHNlY3Rpb25cIj57e3NlY3Rpb24ubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIChjbGljayk9XCJhY2NvcmRpYW4oaSlcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93PT09aVwiIGNsYXNzPVwicXVlc3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cInNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIiBjbGFzcz1cIm15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucW5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC02XCI+U2NoZWR1bGU8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHR5cGUgPT09ICdzdG9yZW9wZW5hbmRjbG9zZSdcIiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgbXgtNFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiA2VjEyTDE2IDE0TTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yXCI+e3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWV9fSB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIzIDIzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCA0LjUyMzAzQzguNjk1MTggNC44MDM3MSA4LjY5NTE4IDUuMjU4OCA4LjQxNDQ4IDUuNTM5NDhMNS41Mzk0OCA4LjQxNDQ4QzUuMjU4OCA4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA0LjUyMzAzIDguNDE0NDhMMy4wODU1MyA2Ljk3Njk4QzIuODA0ODIgNi42OTYzIDIuODA0ODIgNi4yNDEyMSAzLjA4NTUzIDUuOTYwNTNDMy4zNjYyMSA1LjY3OTgyIDMuODIxMyA1LjY3OTgyIDQuMTAxOTggNS45NjA1M0w1LjAzMTI1IDYuODg5NzhMNy4zOTgwMyA0LjUyMzAzQzcuNjc4NzEgNC4yNDIzMiA4LjEzMzggNC4yNDIzMiA4LjQxNDQ4IDQuNTIzMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCAxMS43MTA1QzguNjk1MTggMTEuOTkxMiA4LjY5NTE4IDEyLjQ0NjMgOC40MTQ0OCAxMi43MjdMNS41Mzk0OCAxNS42MDJDNS4yNTg4IDE1Ljg4MjYgNC44MDM3MSAxNS44ODI2IDQuNTIzMDMgMTUuNjAyTDMuMDg1NTMgMTQuMTY0NUMyLjgwNDgyIDEzLjg4MzggMi44MDQ4MiAxMy40Mjg3IDMuMDg1NTMgMTMuMTQ3OUMzLjM2NjIxIDEyLjg2NzMgMy44MjEzIDEyLjg2NzMgNC4xMDE5OCAxMy4xNDc5TDUuMDMxMjUgMTQuMDc3M0w3LjM5ODAzIDExLjcxMDVDNy42Nzg3MSAxMS40Mjk5IDguMTMzOCAxMS40Mjk5IDguNDE0NDggMTEuNzEwNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wNjI1IDYuNDY4NzVDMTAuMDYyNSA2LjA3MTggMTAuMzg0NCA1Ljc1IDEwLjc4MTIgNS43NUgxNS4wOTM4QzE1LjQ5MDYgNS43NSAxNS44MTI1IDYuMDcxOCAxNS44MTI1IDYuNDY4NzVDMTUuODEyNSA2Ljg2NTcgMTUuNDkwNiA3LjE4NzUgMTUuMDkzOCA3LjE4NzVIMTAuNzgxMkMxMC4zODQ0IDcuMTg3NSAxMC4wNjI1IDYuODY1NyAxMC4wNjI1IDYuNDY4NzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy41OTM3NSAwQzEuNjA4OTggMCAwIDEuNjA4OTggMCAzLjU5Mzc1VjE2LjUzMTJDMCAxOC41MTYgMS42MDg5OCAyMC4xMjUgMy41OTM3NSAyMC4xMjVIOS40ODcwOEM5LjI1NDI5IDE5LjY2OTYgOS4wNjQzNiAxOS4xODg2IDguOTIyNjEgMTguNjg3NUgzLjU5Mzc1QzIuNDAyODggMTguNjg3NSAxLjQzNzUgMTcuNzIyMSAxLjQzNzUgMTYuNTMxMlYzLjU5Mzc1QzEuNDM3NSAyLjQwMjg4IDIuNDAyODggMS40Mzc1IDMuNTkzNzUgMS40Mzc1SDE2LjUzMTJDMTcuNzIyMSAxLjQzNzUgMTguNjg3NSAyLjQwMjg4IDE4LjY4NzUgMy41OTM3NVY4LjkyMjYxQzE5LjE4ODYgOS4wNjQzNiAxOS42Njk2IDkuMjU0MjkgMjAuMTI1IDkuNDg3MDhWMy41OTM3NUMyMC4xMjUgMS42MDg5OCAxOC41MTYgMCAxNi41MzEyIDBIMy41OTM3NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi41MzEzIDIzQzIwLjEwMzkgMjMgMjMgMjAuMTAzOSAyMyAxNi41MzEzQzIzIDEyLjk1ODYgMjAuMTAzOSAxMC4wNjI1IDE2LjUzMTMgMTAuMDYyNUMxMi45NTg2IDEwLjA2MjUgMTAuMDYyNSAxMi45NTg2IDEwLjA2MjUgMTYuNTMxM0MxMC4wNjI1IDIwLjEwMzkgMTIuOTU4NiAyMyAxNi41MzEzIDIzWk0xNi41MzEzIDEyLjkzNzVDMTYuOTI4MSAxMi45Mzc1IDE3LjI1IDEzLjI1OTQgMTcuMjUgMTMuNjU2M1YxNS44MTI1SDE5LjQwNjNDMTkuODAzMSAxNS44MTI1IDIwLjEyNSAxNi4xMzQ0IDIwLjEyNSAxNi41MzEzQzIwLjEyNSAxNi45MjgxIDE5LjgwMzEgMTcuMjUgMTkuNDA2MyAxNy4yNUgxNy4yNVYxOS40MDYzQzE3LjI1IDE5LjgwMzEgMTYuOTI4MSAyMC4xMjUgMTYuNTMxMyAyMC4xMjVDMTYuMTM0NCAyMC4xMjUgMTUuODEyNSAxOS44MDMxIDE1LjgxMjUgMTkuNDA2M1YxNy4yNUgxMy42NTYzQzEzLjI1OTQgMTcuMjUgMTIuOTM3NSAxNi45MjgxIDEyLjkzNzUgMTYuNTMxM0MxMi45Mzc1IDE2LjEzNDQgMTMuMjU5NCAxNS44MTI1IDEzLjY1NjMgMTUuODEyNUgxNS44MTI1VjEzLjY1NjNDMTUuODEyNSAxMy4yNTk0IDE2LjEzNDQgMTIuOTM3NSAxNi41MzEzIDEyLjkzNzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdvbmV0aW1lJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09uZS10aW1lJyA6IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSB8IHRpdGxlY2FzZSl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDZWMTJMMTYgMTRNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUuc3Vic3RyKC04KSA6IGNvbmZpZ0RhdGE/Lm9wZW5UaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLnN1YnN0cigtOCkgOiBjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE2IDJWNk04IDJWNk0zIDEwSDIxTTUgNEgxOUMyMC4xMDQ2IDQgMjEgNC44OTU0MyAyMSA2VjIwQzIxIDIxLjEwNDYgMjAuMTA0NiAyMiAxOSAyMkg1QzMuODk1NDMgMjIgMyAyMS4xMDQ2IDMgMjBWNkMzIDQuODk1NDMgMy44OTU0MyA0IDUgNFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMiBtcy0yXCI+PHNwYW4+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGV9fTwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgIT09ICcnICYmIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgIT09IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8ge3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgZWRpdHF1ZXNcIiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgIWRpc2FibGVkUXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzYXZlYW5kcmVkaXJlY3Qob2JqLmNoZWNrTGlzdElkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4tb3V0bGluZS1kYXNoZWQgYnRuIGJ0bi1saWdodCB1cGxvYWRcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIxIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjY2NiAyLjUwMDlDMTQuODg1NSAyLjI4MjAzIDE1LjE0NTMgMi4xMDg0MiAxNS40MzEzIDEuOTg5OTZDMTUuNzE3MyAxLjg3MTUxIDE2LjAyMzggMS44MTA1NSAxNi4zMzMzIDEuODEwNTVDMTYuNjQyOCAxLjgxMDU1IDE2Ljk0OTMgMS44NzE1MSAxNy4yMzUzIDEuOTg5OTZDMTcuNTIxMyAyLjEwODQyIDE3Ljc4MTEgMi4yODIwMyAxOCAyLjUwMDlDMTguMjE4OCAyLjcxOTc3IDE4LjM5MjQgMi45Nzk2MSAxOC41MTA5IDMuMjY1NThDMTguNjI5NCAzLjU1MTU0IDE4LjY5MDMgMy44NTgwNCAxOC42OTAzIDQuMTY3NTdDMTguNjkwMyA0LjQ3NzEgMTguNjI5NCA0Ljc4MzYgMTguNTEwOSA1LjA2OTU2QzE4LjM5MjQgNS4zNTU1MyAxOC4yMTg4IDUuNjE1MzcgMTggNS44MzQyNEw2Ljc0OTk2IDE3LjA4NDJMMi4xNjY2MyAxOC4zMzQyTDMuNDE2NjMgMTMuNzUwOUwxNC42NjY2IDIuNTAwOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cInVwbG9hZHRleHRcIj5FZGl0IFF1ZXN0aW9uczwvc3Bhbj48L2E+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMVwiPkFsZXJ0czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+RW1haWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cIm14LTQgbXQtNCBzdWJcIj5pZiB1c2FnZSBleGNlZWRzXHJcbiAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8udXNhZ2VFeGNlZWRzfX1cclxuICAgICAgICAgICAgICAgICAgICBldmVudHNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09ICdzdG9yZW9wZW5hbmRjbG9zZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMVwiPkFsZXJ0czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTQgc3ViXCI+U2VuZCBlbWFpbCBldmVyeWRheSB0bzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5EZXRlY3Rpb24gQXJlYXM8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW4gKm5nRm9yPVwibGV0IHpvbmUgb2YgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uZGV0ZWN0aW9uQXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG14LTIgbXQtNCBiYWRnZS1saWdodCBjaGVja2xpc3RsYWJlbCBmcy1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImtpLWR1b3RvbmUga2ktYXJyb3ctdXAgY2hlY2tsaXN0dGV4dFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7em9uZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCBoLXhsLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+U2NoZWR1bGU8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMiBteC00XCI+RnJvbTwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnc3RhcnQnKVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zIG14LTRcIj5Ubzwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnZW5kJylcIiBbKG5nTW9kZWwpXT1cImVuZFRpbWVcIiBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNiBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC02IHN1YlwiPkZvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVTY2hlZHVsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJvbmV0aW1lXCI+RG9lcyBOb3QgUmVwZWF0PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrZGF5XCI+IEV2ZXJ5IFdlZWtkYXkgKE1vbiAtIEZyaSk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRhaWx5XCI+RGFpbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIndlZWtseVwiPldlZWtseTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9udGhseVwiPk1vbnRobHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJhbmdlXCI+Q3VzdG9tIFJhbmdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zIG14LTJcIj5BdDwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnc3RhcnQnKVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTMgbXMtNVwiPkVuZHM8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkNoZWNrbGlzdCBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTNcIj5PbmNlIE9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBweC00IHBlLTNcIiBpZD1cImRhdGVjbGFzc1wiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyLW9wZW5zPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZXNcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZVN0YXJ0KCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmFuZ2VEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNob3dSYW5nZVZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURhdGVWYWx1ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJhbmdlRGF0ZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjaGVja2xpc3R0ZXh0IG1zLTJcIj5TZXQgZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlIHJhbmdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zXCI+U3RhcnRzIGZyb208L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ3BzLTEwJyA6ICdweC00IHBlLTMnXCIgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pblN0YXJ0RGF0ZVwiIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN0YXJ0RGF0ZVwiIFthdXRvQXBwbHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTggbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5SZXBlYXRzIGV2ZXJ5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweCBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiIG1pbj1cIjFcIiAoY2hhbmdlKT1cInVwZGF0ZVJlcGVhdERheSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweCBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcGVhdFR5cGVcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RheSdcIiAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdkYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uIERheTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTEwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXknID8gJ2Rpc2FibGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnZGF5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9XCIyXCIgKGlucHV0KT1cInZhbGlkYXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RhdGUnXCIgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnZGF0ZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T24gdGhlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vbnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPiBGaXJzdCA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+IFNlY29uZCA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+IFRoaXJkPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPiBGb3VydGg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+IExhc3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb250aERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU3VuZGF5XCI+IFN1bmRheSA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJNb25kYXlcIj4gTW9uZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlR1ZXNkYXlcIj4gVHVlc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIldlZG5lc2RheVwiPiBXZWRuZXNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUaHVyc2RheVwiPiBUaHVyc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkZyaWRheVwiPkZyaWRheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNhdHVyZGF5XCI+IFNhdHVyZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9udFNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdzcGVjaWZpYydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnc3BlY2lmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uIFNwZWNpZmljIERhdGVzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkcm9wZG93bi1pbnB1dCBwcy0xNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcERvd24oKVwiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ3NwZWNpZmljJ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dEcm9wRG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMiBtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1lLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBidG4gd2Vla3N0eWxlZGF0ZSBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC1waWxsIG1pbi13LTM1cHggcHktMiBweC0zIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkgPyAnYWN0aXZlIGJ0bi1hY3RpdmUtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGlsbHN0eWxlXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0RGF0ZSgpO3Nob3dEcm9wRG93bj0gZmFsc2U7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2sgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB5LTMgYmFkZ2Utc3BlY2lmaWNkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBzdWJtaXR0ZWREYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0dGV4dCBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREYXRlV2l0aFN1ZmZpeChkYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZUJhZGdlKGRhdGUpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgM0wzIDlNMyAzTDkgOVwiIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd3ZWVrZGF5Jywnd2Vla2x5J10uaW5jbHVkZXMoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IG5hdi1waWxscyBkLWZsZXggZmxleC1ub3dyYXAgbWItM1wiIHJvbGU9XCJ0YWJsaXN0XCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1lLTFcIiByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2x5JyB8fCAoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2RheScgJiYgIVsnU3VuZGF5JywnU2F0dXJkYXknXS5pbmNsdWRlcyhkYXkpKSkgPyBzZXREYXkoZGF5KSA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGJ0biB3ZWVrc3R5bGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy00NXB4IG1lLTIgcHktNCBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2RheScgJiYgWydTdW5kYXknLCdTYXR1cmRheSddLmluY2x1ZGVzKGRheSkpID8gJ2N1cnNvci1kZWZhdWx0JyA6IHNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXkpID8gJ3NlbGVjdERheScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJ0YWJcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIiB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwaWxsc3R5bGVcIj57eyBkYXlbMF0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNwZWNpZmljXCIgKGNoYW5nZSk9XCJ1cGRhdGVTcGVjaWZpYygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2tsaXN0dGV4dCBtcy0yXCI+T24gU3BlY2lmaWNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNCBwZS0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZURyb3BEb3duKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTMwMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCIgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3BlY2lmaWNcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCIgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1kYXRlLWRhdGVwaWNrZXIgKHNlbGVjdGVkRGF0ZXMpPVwic2VsZWN0U3BlY2lmaWNEYXRlKCRldmVudClcIiBbcHJlZGVmaW5lZERhdGVzXT1cInNlbGVjdGVkRGF0ZUxpc3RcIiBbc3RhcnREYXRlXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGVcIiBbZW5kRGF0ZV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZVwiPjwvbGliLW11bHRpLWRhdGUtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHktMyBiYWRnZS1zcGVjaWZpY2RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIG1zLTUgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBzZWxlY3RlZERhdGVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0dGV4dCBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVEYXRlKGRhdGUpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgM0wzIDlNMyAzTDkgOVwiIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dSYW5nZVZhbHVlIHx8IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ210LTQnIDogJ210LTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+RW5kcyBPbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiBpZD1cImRhdGVjbGFzc1wiIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJyA/ICdwcy05JyA6ICdweC00IHBlLTMnXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5FbmREYXRlXCIgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRFbmREYXRlXCIgW2F1dG9BcHBseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZUVuZCgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgcmVtb3ZlIGN1cnNvci1wb2ludGVyIG1zLTRcIiAoY2xpY2spPVwib25EYXRlcGlja2VyUmVmcmVzaCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9PSAnJyAmJiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSAhPT0gbnVsbCAmJiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09J3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdvbmV0aW1lJ1wiPk9jY3VycyBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZGF5IHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZURhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpXCI+T2NjdXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0nMDEnKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gd2VlazxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPiBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkRGF5cy50b1N0cmluZygpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGVcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnZGFpbHknXCI+T2NjdXJzIGV2ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gJzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgOiAnJ319IGRheTxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ21vbnRobHknXCI+T2NjdXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gJzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgOiAnJ319IG1vbnRoPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09IDAxXCI+cyA8L3NwYW4+e3soY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RheScpID8gKCdvbiBkYXkgJyArIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrKSA6IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXRlJyA/IHVwZGF0ZU1vbnRoVmFsdWUoKTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ3JhbmdlJ1wiPk9jY3VycyBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVXZWVrRGF5cz8udG9TdHJpbmcoKX19IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGVcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPlJlc3BvbnNlIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjb25maWdhY2NvcmRpYW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvd2NvbmZpZ31cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd2NvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydvbmV0aW1lJywnZGFpbHknXS5pbmNsdWRlcyhjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKSB8fCAoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknICYmICBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSdzcGVjaWZpYycpID8gJ2JnLWNvbG9yLWRpc2FibGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd09uY2UgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJvbmVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJbJ29uZXRpbWUnLCdkYWlseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpIHx8IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseScgJiYgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09J3NwZWNpZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiIGZvcj1cIm9uZVRpbWVcIj5Pbmx5IG9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIiBmb3I9XCJvbmVUaW1lXCI+QnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nIHRoaXMsIHRoZSByZXNwb25zZSBjYW4gYmUgY2FwdHVyZWQgb25seSBvbmNlIGZvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBjaGVja2xpc3QgPHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPmZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGV9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXCI+dG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZX19Ljwvc3Bhbj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRPdmVyVGltZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZE92ZXJUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZpbGxSZXNwb25zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmlsbFJlc3BvbnNlXCI+RmlsbCByZXNwb25zZSBhZnRlciBjb25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLjwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpbGxSZXNwb25zZVwiPkJ5IGVuYWJsaW5nLCB0aGUgdXNlciBjYW4gZmlsbCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgZXZlbiBhZnRlciB0aGUgYWJvdmUgY29uZmlndXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC10aW1lLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkU3RvcmVMb2NhdGlvbiA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd2VkU3RvcmVMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZ2VvRmVuY2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCIgZm9yPVwiZ2VvRmVuY2luZ1wiPkdlb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVuY2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIiBmb3I9XCJnZW9GZW5jaW5nXCI+QnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nLCB0aGUgY2hlY2tsaXN0IGNhbiBiZSBmaWxsZWQgYnkgdGhlIHVzZXIgb25seSB3aGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgdGhlIHN0b3JlLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRNdWx0aVN1Ym1pdCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd2VkTXVsdGlTdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPkFsbG93IG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXM8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+QnkgZW5hYmxpbmcsIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmaWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gYSBkYXk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1sZWZ0XCIgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nXCI+QWR2YW5jZSBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZWFjY29yZGlhbigpXCIgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvd2FkdmFuY2V9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dhZHZhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJhZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5DaGVja2xpc3QgT3duZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duZXJzIGdldCBhY2Nlc3MgdG8gbWFuYWdlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01IHctMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5DYW4gYmUgbWFuYWdlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5vd25lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVPd25lcigkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QXBwcm92ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hcHByb3Zlcj8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlXCIgWyhuZ01vZGVsKV09XCJhcHByb3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImFwcHJvdmVyXCIgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdBcHByb3ZlcigkZXZlbnQpXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIGFibGUgdG8gYXBwcm92ZSB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiICpuZ0lmPVwiYXBwcm92ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+VG8gYmUgYXBwcm92ZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hcHByb3ZlclwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQXBwcm92ZXIoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlJlbWluZGVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCIgWyhuZ01vZGVsKV09XCJyZW1haW5kZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwib25lVGltZVwiIChjaGFuZ2UpPVwidXBkYXRlQ29uZmlnUmVtYWluZGVyKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgcmVtaW5kZWQgaW4gdGhlIHNlbGVjdGVkIGludGVydmFsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiICpuZ0lmPVwicmVtYWluZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01IHctMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5Ob3RpZnkgdXNlciBiZWZvcmU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTIwMHB4ICxcIiAqbmdGb3I9XCJsZXQgbG9vcCBvZiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbWFpbmRlcjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0Zvcj1cImxldCBsb29wIG9mIHRpbWVMb29wXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xNDg3XzQ3NjM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjAwMTMgNS4wMDAzM1YxMC4wMDAzTDEzLjMzNDYgMTEuNjY3TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0ODdfNDc2MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHBzLTE0IG1lLTVcIiAoY2hhbmdlKT1cInVwZGF0ZVJlbWFpbmRlcigkZXZlbnQsaSlcIiAgW2lkXT1cIidyZW1haW5kZXInKyBpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiB1cGRhdGVUaW1lTG9vcChpKVwiIGNsYXNzPVwiaC0yMDBweFwiIFtzZWxlY3RlZF09XCJsb29wID09PSB0aW1lXCIgW3ZhbHVlXT1cInRpbWVcIj57e3RpbWV9fSBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmxlbmd0aCA8IDNcIiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmVcIiAoY2xpY2spPVwidXBkYXRlTG9vcCgpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY2OTlWMTUuODMzN000LjE2Nzk3IDEwLjAwMDNIMTUuODM0NlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlbWFpbmRlclwiIGNsYXNzPVwibXQtMiB1c2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxlcnRzIGF0IGV2ZXJ5IDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj48c3BhbiAqbmdJZj1cImkgIT09IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoLTEgJiYgaSAhPT0gMFwiPiAsPC9zcGFuPjxzcGFuICpuZ0lmPVwiaSA9PT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+IGFuZDwvc3Bhbj4ge3tpdGVtfX0gTWlucyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZScsJ2V5ZXRlc3QnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwibXQtNiBteC00IHN1YlwiPlN0b3JlIG9wZW5zIGF0IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5vcGVuVGltZX19PC91Pjwvc3Bhbj4gYW5kIGNsb3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IDxzcGFuIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvdT48L3NwYW4+LCBldmVyeWRheS4gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAndW5hdHRlbmRlZCdcIiBjbGFzcz1cIm10LTYgbXgtNCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lIHRha2VuIHRvIGFzc2lzdCBieSBzdGFmZiAmbHQ7PSAxIG1pbnMgfCBTdGFmZiB0byBjdXN0b21lciB0aW1lIHNwZW50ICZsdDs9MSBtaW5zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBvcGVucyBhdCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8ub3BlblRpbWV9fTwvdT48L3NwYW4+IGFuZCBjbG9zZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA8c3BhbiBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3U+PC9zcGFuPiwgZXZlcnlkYXkuIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgIT09J2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnc3RvcmVvcGVuYW5kY2xvc2UnLCdleWV0ZXN0J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+QWxlcnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiY29sLW1kLTEyIG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTQgc3ViXCI+SWYgdXNhZ2UgZXhjZWVkczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy01NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC51c2FnZUV4Y2VlZHNcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCIgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgdXNhZ2VlcnJvclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3VuYXR0ZW5kZWQnLCdwYWNrYWdlQ29uZmlndXJhdGlvbiddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG14LTRcIj5TZW5kIEFsZXJ0IHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LmFsZXJ0c1RvXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBbGVydCgkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPkRldGVjdGlvbiBBcmVhczxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG14LTRcIj4gRGV0ZWN0IG1vYmlsZSB1c2FnZSBleGNlcHQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiem9uZUxpc3RcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVab25lKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+e3t0eXBlID09PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nID8gJ1RvIGJlIEFja25vd2xlZGdlZCBieScgOiAnQXBwcm92ZXInfX08L2gyPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIGFibGUgdG8gYWNrbm93bGVkZ2UgdGhlIGNoZWNrbGlzdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbidcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy01NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuYWxlcnQudXNhZ2VFeGNlZWRzXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHVzYWdlZXJyb3JcIiAqbmdJZj1cImVycm9ybXNnXCI+UGxlYXNlIGVudGVyIGV2ZW50IGNvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmV0d2VlbiAxNSB0byA5OTk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWQgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXgtNFwiPlRvIGJlIGFwcHJvdmVkIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlclwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXRhYmxlRGF0YS5sZW5ndGggJiYgIXRhYmxlRmlsdGVyLmxlbmd0aCAmJiBzaG93SW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj5Bc3NpZ248c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJhZGRTdG9yZUNvbXBvbmVudCgpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNyZWF0ZWJ1dHRvbnMgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiIHRhYmluZGV4PVwiMFwiPjxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMDEgNC4xNjYwMlYxNS44MzI3TTQuMTY2NzUgOS45OTkzNUgxNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwiY3JlYXRlXCI+QWRkIFN0b3JlPC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGFzc2lnbnBhZGRpbmcgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZHBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTE0XCI+PHN2ZyBjbGFzcz1cIm14LTIwIG10LTEyXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI1LjA5IDI1QzI1LjMyNTEgMjQuMzMxNyAyNS43ODkyIDIzLjc2ODEgMjYuNCAyMy40MDkxQzI3LjAxMDggMjMuMDUwMiAyNy43Mjg5IDIyLjkxODkgMjguNDI3MiAyMy4wMzg3QzI5LjEyNTUgMjMuMTU4NSAyOS43NTg4IDIzLjUyMTUgMzAuMjE1MSAyNC4wNjM1QzMwLjY3MTMgMjQuNjA1NSAzMC45MjExIDI1LjI5MTUgMzAuOTIgMjZDMzAuOTIgMjggMjcuOTIgMjkgMjcuOTIgMjlNMjggMzNIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC02IG14LTEwXCI+VXBsb2FkIHRvIGFzc2lnbiB1c2VyczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic3VidGV4dCBteC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DbGljayDigJxEb3dubG9hZCBUZW1wbGF0ZeKAnTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4gQWRkIHlvdXIgZGF0YSB0byB0aGUgdGVtcGxhdGUgZmlsZTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4gVXBsb2FkIGl0IGJlbG93IHRvIGFzc2lnbiB1c2VyczwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gI3VwbG9hZCAoY2xpY2spPVwiZmlsZS5jbGljaygpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcmV1cGxvYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJtYi0yIG14LTFcIiB3aWR0aD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMTkgMTlcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTggMTIuNVYxNS44MzMzQzE4IDE2LjI3NTQgMTcuODI0NCAxNi42OTkzIDE3LjUxMTggMTcuMDExOEMxNy4xOTkzIDE3LjMyNDQgMTYuNzc1NCAxNy41IDE2LjMzMzMgMTcuNUg0LjY2NjY3QzQuMjI0NjQgMTcuNSAzLjgwMDcyIDE3LjMyNDQgMy40ODgxNiAxNy4wMTE4QzMuMTc1NTkgMTYuNjk5MyAzIDE2LjI3NTQgMyAxNS44MzMzVjEyLjVNMTQuNjY2NyA2LjY2NjY3TDEwLjUgMi41TTEwLjUgMi41TDYuMzMzMzMgNi42NjY2N00xMC41IDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV1cGxvYWR0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcGxvYWQgVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiB0eXBlPVwiZmlsZVwiICNmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1saWdodC1wcmltYXJ5IGRvd25sb2FkXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnlcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibWItMVwiIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTUuODMzMzMgOC4zMzMzM0wxMCAxMi41TTEwIDEyLjVMMTQuMTY2NyA4LjMzMzMzTTEwIDEyLjVWMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cImRvd25sb2FkdGV4dFwiPkRvd25sb2FkIFRlbXBsYXRlPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCB8fCB0YWJsZUZpbHRlci5sZW5ndGggfHwgIXNob3dJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTZcIiAqbmdJZj1cIiFzaG93SW1hZ2UgfHwgdGFibGVEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+QXNzaWduPHNwYW4gY2xhc3M9XCJteC0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTEgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4PVwiMVwiIHRyYW5zZm9ybT1cInJvdGF0ZSg0NSAxNy4wMzY1IDE1LjEyMjMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDE5QzYuNTU1NTYgMTkgMyAxNS40NDQ0IDMgMTFDMyA2LjU1NTU2IDYuNTU1NTYgMyAxMSAzQzE1LjQ0NDQgMyAxOSA2LjU1NTU2IDE5IDExQzE5IDE1LjQ0NDQgMTUuNDQ0NCAxOSAxMSAxOVpNMTEgNUM3LjUzMzMzIDUgNSA3LjUzMzMzIDUgMTFDNSAxNC40NjY3IDcuNTMzMzMgMTcgMTEgMTdDMTQuNDY2NyAxNyAxNyAxNC40NjY3IDE3IDExQzE3IDcuNTMzMzMgMTQuNDY2NyA1IDExIDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS1maWx0ZXI9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VhcmNoVGFibGVEYXRhKClcIiBbKG5nTW9kZWwpXT1cInRhYmxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MDBweCBwcy0xNCBteC0xIG1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IFN0b3JlIG5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiIGRhdGEta3Qtc3Vic2NyaXB0aW9uLXRhYmxlLXRvb2xiYXI9XCJiYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgY3JlYXRlYnV0dG9ucyBweC00IG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgdGFiaW5kZXg9XCIwXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDAxIDQuMTY2MDJWMTUuODMyN000LjE2Njc1IDkuOTk5MzVIMTUuODMzNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJjcmVhdGVcIj5BZGQgU3RvcmU8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIiAqbmdJZj1cIiF0YWJsZURhdGEubGVuZ3RoICYmICFzaG93SW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YW1haW50ZXh0IG10LTNcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhc3VidGV4dFwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdXNlcnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keS1zb3AgcHQtMCBteC00XCIgKm5nSWY9XCJ0YWJsZURhdGEubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvcFRhYmxlIHRhYmxlLXJlc3BvbnNpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZUxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZURhdGEubGVuZ3RoICYmICF0YWJsZUxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHhcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZmxhZ1wiIChjaGFuZ2UpPVwiY2hlY2tBbGwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiPiA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgbXgtNCBsaW5lLWhlaWdodFwiID5TdG9yZU5hbWU8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFzc2lnbmVkIFRvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5FbWFpbCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0YWJsZURhdGE7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCB1c2VyRmxhZ1wiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmxhZygkZXZlbnQsaSxkYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGRhdGE/LmlkKVwiIC8+PHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG14LTQgbGluZS1oZWlnaHRcIj57e2RhdGEuc3RvcmVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnVzZXJOYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEudXNlckVtYWlsfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cInNpemVcIiBbY3VycmVudFBhZ2VdPVwiY3VycmVudFZhbHVlXCIgW3RvdGFsSXRlbXNdPVwicmVjb3Jkc1RvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplXCIgW3BhZ2VTaXplXT1cInNpemVcIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwiIXRhYmxlTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNiBhc3NpZ25wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIlJldXBsb2FkKClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByZXVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcmV1cGxvYWRcIj48c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibWItMiBteC0xXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMTkgMTlcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4IDEyLjVWMTUuODMzM0MxOCAxNi4yNzU0IDE3LjgyNDQgMTYuNjk5MyAxNy41MTE4IDE3LjAxMThDMTcuMTk5MyAxNy4zMjQ0IDE2Ljc3NTQgMTcuNSAxNi4zMzMzIDE3LjVINC42NjY2N0M0LjIyNDY0IDE3LjUgMy44MDA3MiAxNy4zMjQ0IDMuNDg4MTYgMTcuMDExOEMzLjE3NTU5IDE2LjY5OTMgMyAxNi4yNzU0IDMgMTUuODMzM1YxMi41TTE0LjY2NjcgNi42NjY2N0wxMC41IDIuNU0xMC41IDIuNUw2LjMzMzMzIDYuNjY2NjdNMTAuNSAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXVwbG9hZHRleHRcIiAqbmdJZj1cIiFyZXVwbG9hZFwiPlJldXBsb2FkIFRlbXBsYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJmaWxlMS5jbGljaygpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcmV1cGxvYWRcIiAqbmdJZj1cInJldXBsb2FkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJldXBsb2FkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTIgbXgtMVwiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMTkgMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV1cGxvYWR0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldXBsb2FkIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGUxIHR5cGU9XCJmaWxlXCIgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tbGlnaHQtcHJpbWFyeSBkb3dubG9hZFwiIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnlcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0xXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU01LjgzMzMzIDguMzMzMzNMMTAgMTIuNU0xMCAxMi41TDE0LjE2NjcgOC4zMzMzM00xMCAxMi41VjIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cImRvd25sb2FkdGV4dFwiPkRvd25sb2FkIFRoaXMgQ1NWPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvdyBmb290ZXIxIG10LTEwIG14LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhcmsgZm9vdGVydGV4dCBtZS0xXCI+TmVlZCBoZWxwPzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpL1wiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvb3RlcnRleHQgdGV4dC1ob3Zlci1wcmltYXJ5XCI+PHU+V2F0Y2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgVGhlIFZpZGVvIFR1dG9yaWFsPC91PlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
1988
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0FBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQU9oQyxNQUFNLE9BQU8sMkJBQTJCO0lBNEVqQjtJQUEyQztJQUFnQztJQUFzQjtJQUF3QjtJQUErQjtJQUEyQjtJQUE4QjtJQTNFbk4sU0FBUyxDQUFjO0lBQ3RCLFVBQVUsQ0FBYztJQUM1QyxLQUFLLEdB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RCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBRSxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUM7S0FDbkM7SUFFRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRyYXhwb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXhwb3B1cC90cmF4cG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJheFN0b3JlQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheC1zdG9yZS90cmF4LXN0b3JlLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7U3ViamVjdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjLmpzJztcclxuZGF5anMuZXh0ZW5kKCB1dGMgKTtcclxuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNoZWNrbGlzdC1jb25maWd1cmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QtY29uZmlndXJlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrbGlzdENvbmZpZ3VyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGUnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGUxJykgZmlsZUlucHV0MSE6IEVsZW1lbnRSZWY7XHJcbiAgZGF5anM6YW55ID0gZGF5anM7XHJcbiAgc2VsZWN0ZWREYXRlczphbnk7XHJcbiAgbWluRGF0ZTphbnk7XHJcbiAgdHlwZTogc3RyaW5nID0gJ2N1c3RvbSc7XHJcbiAgb2JqOiBhbnk7XHJcbiAgY29uZmlnRGF0YTogYW55O1xyXG4gIHRhYmxlRGF0YTogYW55ID0gW107XHJcbiAgdGFibGVMb2FkaW5nOiBhbnkgPSBmYWxzZTtcclxuICB0YWJsZURpc3BsYXllZENvbHVtbnM6IGFueSA9IFtcIm5hbWVcIiwgXCJyb2xlXCIsIFwiZW1haWxcIl1cclxuICBwYWdlVmFsdWU6IGFueSA9IFtdO1xyXG4gIG9mZnNldDogbnVtYmVyID0gMDtcclxuICByZWNvcmRzVG90YWw6IGFueSA9IDA7XHJcbiAgc2l6ZTogYW55ID0gNTtcclxuICBvZmZzZXR2YWx1ZTogbnVtYmVyID0gMDtcclxuICBwYWdlRGlzcGxheTogYW55ID0gW107XHJcbiAgbmV4dGJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgYmFja2J0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgY3VycmVudFZhbHVlOiBhbnkgPSAxO1xyXG4gIHRhYmxlRmlsdGVyOiBhbnkgPSAnJztcclxuICBwYWdlU3RhcnQ6IGFueSA9IDA7XHJcbiAgcGFnZUVuZDogYW55ID0gMDtcclxuICByZWNvcmRzQ291bnQ6IGFueTtcclxuICBwYWdpbmF0aW9uU2l6ZSA9IFs1LCAxMCwgMTUsMjBdO1xyXG4gIHVzZXJEYXRhOiBhbnkgPSBbXTtcclxuICBleGNlbFVzZXJEYXRhOiBhbnkgPSBbXTtcclxuICBzaG93SW1hZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG1vbnRoRGF5OiBhbnk7XHJcbiAgc2hvdzogbnVtYmVyID0gMDtcclxuICBwb3BVcFRpdGxlOiBhbnk7XHJcbiAgc2hvd0ludHJvOiBib29sZWFuID0gdHJ1ZTtcclxuICBzZWFyY2hVc2VyOiBhbnk7XHJcbiAgYWRkVXNlckZvcm06IGJvb2xlYW47XHJcbiAgc29wU3RvcmVzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlcnJvcm1zZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0YXJ0VGltZTogYW55O1xyXG4gIGVuZFRpbWU6IGFueTtcclxuICBjaGVja2xpc3RJZDogYW55O1xyXG4gIHJldXBsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0QWxsVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlbW92ZVVzZXJzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkRGF5czogYW55W10gPSBbXTtcclxuICBzaG93UmFuZ2VWYWx1ZTpib29sZWFuID0gZmFsc2U7XHJcbiAgc3VibWl0dGVkRGF0ZXM6IG51bWJlcltdID0gW107XHJcbiAgbW9udGhEYXRlOnN0cmluZz0nJztcclxuICBzcGVjaWZpYzpib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZTogYW55O1xyXG4gIHNlY3Rpb25zOiBhbnkgPSBbXTtcclxuICBNb250aHdlZWtOdW1iZXI6IHN0cmluZztcclxuICBwb3B1cENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHZhbGlkVGltZTpib29sZWFuID0gdHJ1ZTtcclxuICBkaXNhYmxlZFF1ZXN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Y29uZmlnOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93YWR2YW5jZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcmVwZWF0VHlwZTpzdHJpbmc9Jyc7XHJcbiAgc2hvd0Ryb3BEb3duOmJvb2xlYW49IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55PSBbXTtcclxuICBkYXRlczogbnVtYmVyW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzMSB9LCAoXywgaSkgPT4gaSArIDEpOyAvLyBBcnJheSBmcm9tIDEgdG8gMzFcclxuICBzZWxlY3RlZERhdGVMaXN0OmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkU3RhcnREYXRlOmFueTtcclxuICBtaW5TdGFydERhdGU6YW55O1xyXG4gIHNlbGVjdGVkRW5kRGF0ZTphbnk7XHJcbiAgbWluRW5kRGF0ZTphbnk7XHJcbiAgY2xpZW50SWQ6YW55O1xyXG4gIGFsZXJ0VXNlcnM6YW55PVtdO1xyXG4gIHpvbmVMaXN0OmFueSA9IFtdO1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9IHRydWU7XHJcbiAgYXBwcm92ZTpib29sZWFuID0gdHJ1ZTtcclxuICByZW1haW5kZXI6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc2FibGVkUHVibGlzaDpib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBkZXRhY2ggPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRpbWVMb29wOmFueVtdID0gWzFdXHJcbiAgbWludXRlczogbnVtYmVyW10gPSBbMzAsNDUsNjAsNzUsOTBdO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGNoYW5nZWRldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByb3V0ZXI6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlOiBSb3V0ZXIscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSBTb3BTZXJ2aWNlOlRyYXhTZXJ2aWNlLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgfHwgJ3t9Jyk7XHJcbiAgICBpZighc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NsaWVudC1kZXRhaWxzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzLmNsaWVudCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudElkO1xyXG4gICAgfVxyXG4gICAgaWYoc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICB0aGlzLmNsaWVudElkID0gc3RvcmFnZURldGFpbHMuY2xpZW50O1xyXG4gICAgICB0aGlzLnJvdXRlci5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIHBhcmFtcy50eXBlID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgY2hlY2tMaXN0SWQ6IHBhcmFtcy5jaGVja0xpc3RJZCxcclxuICAgICAgICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50eXBlID0gJ2N1c3RvbSdcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRRdWVzdGlvbiA9IHBhcmFtcy5kaXNhYmxlZFF1ZXN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMub2JqID0ge1xyXG4gICAgICAgICAgICB0eXBlOiBwYXJhbXMudHlwZSxcclxuICAgICAgICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50eXBlID0gcGFyYW1zLnR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICAgIHRoaXMuR2V0Q29uZmlnKCk7XHJcbiAgICAgIHRoaXMuZ2V0Q2xpZW50VXNlcigpO1xyXG4gICAgICB0aGlzLmdldFpvbmVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIENoZWNrbGlzdFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfVxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBHZXRDb25maWcoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSAnJztcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJztcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRjb25maWcodGhpcy5vYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkO1xyXG4gICAgICAgICAgdGhpcy50eXBlID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVVzZXJzID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbW92ZWRVc2VycyB8fCBbXTtcclxuICAgICAgICAgIC8vIHRoaXMuYXBwcm92ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlbWFpbmRlciA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI/Lmxlbmd0aCA/IHRydWU6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aW1lTG9vcCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI/Lmxlbmd0aCA/IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGggfSwgKF8sIGkpID0+IGkpIDogWzBdO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnB1Ymxpc2hEYXRlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICBpZihkYXRlLmRpZmYodGhpcy5kYXlqcy51dGModGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSksJ21pbnV0ZXMnKSA8IDUpIHtcclxuICAgICAgICAgICAgICBsZXQgc3RhcnRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGRhdGUgPSB0aGlzLmRheWpzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZihkYXRlLmRpZmYodGhpcy5kYXlqcy51dGModGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSksJ21pbnV0ZXMnKSA+PSA1KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRQdWJsaXNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc3RhcnRJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sMTAwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9IHJlcy5kYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZW1vdmVkVXNlcnMgfHwgW107XHJcbiAgICAgICAgICAvLyB0aGlzLnpvbmVzID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5kZXRlY3Rpb25BcmVhIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNlY3Rpb25zO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXMgfHwgW107XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lID8gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLCAgJ2g6bW0gQScpLmZvcm1hdCgnSEg6bW0nKSA6ICcyMjowMCc7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSA/IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lLCAnaDptbSBBJykuZm9ybWF0KCdISDptbScpIDogJzEwOjAwJztcclxuICAgICAgICAgIHRoaXMucmVwZWF0VHlwZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnZGFpbHknID8gJ0RheScgOiBbJ3dlZWtseScsJ3dlZWtkYXknXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpID8gJ1dlZWsnIDogJ01vbnRoJztcclxuICAgICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IFwiMTA6MDAgUE1cIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IFwiMTA6MDAgQU1cIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBpZiAodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8uYWxlcnRzVG8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuZW1haWxMaXN0ID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8uYWxlcnRzVG87XHJcbiAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1JhbmdlVmFsdWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpOyBcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgICAgICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgICAgICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ21vbnRobHknKSB7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoJyAnKT8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdCgnICcpWzFdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNwZWNpZmljRGF0ZSB8fCBbXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNwZWNpZmljID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnb25ldGltZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlIDogZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnVzZXJEZXRhaWxzKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMykge1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Vycm9yNDAzJ10pXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbmZpZ2FjY29yZGlhbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd2NvbmZpZyA9ICF0aGlzLnNob3djb25maWc7XHJcbiAgfVxyXG4gIGFkdmFuY2VhY2NvcmRpYW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dhZHZhbmNlID0gIXRoaXMuc2hvd2FkdmFuY2U7XHJcbiAgfVxyXG4gIENoZWNrbGlzdCgpIHtcclxuICAgIC8vIHRoaXMubW9iaWxldXNhZ2VkZXRlY3Rpb24gPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5zdG9yZW9wZW5hbmRjbG9zZWRldGVjdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuICBvbWl0X3NwZWNpYWxfY2hhcihldmVudDogYW55KSB7XHJcbiAgICB2YXIgaztcclxuICAgIGsgPSBldmVudC5jaGFyQ29kZTsgIC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICAgIHJldHVybiAoayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1NykpO1xyXG5cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlTGltaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA8IDE1KSB7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmVycm9ybXNnID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQudXNhZ2VFeGNlZWRzID0gJyc7XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmVycm9ybXNnID0gZmFsc2U7XHJcblxyXG4gIH1cclxuXHJcbiAgb25GaWxlVXBsb2FkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMucmV1cGxvYWQgPSBmYWxzZTtcclxuICAgIHRoaXMudXNlckRhdGEgPSB0aGlzLmV4Y2VsVXNlckRhdGEgPSBbXTtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IDxEYXRhVHJhbnNmZXI+KGV2ZW50LnRhcmdldCk7XHJcbiAgICBsZXQgaXNFeGNlbEZpbGUgPSAhIXRhcmdldC5maWxlc1swXS5uYW1lLm1hdGNoKC8oLnhsc3wueGxzeCkvKTtcclxuICAgIGxldCBlcnJvcjphbnkgPSBbXTtcclxuXHJcbiAgICBpZiAoaXNFeGNlbEZpbGUpIHtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6ICdiaW5hcnknIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBkYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzKTtcclxuXHJcbiAgICAgICAgaWYoIWRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBVcGxvYWQgYSBWYWxpZCBmaWxlLicpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcigoaXRlbTphbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoKGl0ZW0/LnN0b3JlTmFtZSAmJiBpdGVtPy5zdG9yZU5hbWUudHJpbSgpICE9ICcnICYmIGl0ZW0/LnN0b3JlTmFtZS50cmltKCkgIT0gbnVsbCkgfHwgKGl0ZW0/LnVzZXJOYW1lICYmIGl0ZW0/LnVzZXJOYW1lLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy51c2VyTmFtZS50cmltKCkgIT0gbnVsbCkgfHwgKGl0ZW0/LnVzZXJFbWFpbCAmJiBpdGVtPy51c2VyRW1haWwudHJpbSgpICE9ICcnICYmIGl0ZW0/LnVzZXJFbWFpbC50cmltKCkgIT0gbnVsbCkpXHJcbiAgICAgICAgfSlcclxuICAgICAgICBcclxuICAgICAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWwpIHtcclxuICAgICAgICAgICAgZWxlbWVudC51c2VyRW1haWwgPSBlbGVtZW50Py51c2VyRW1haWwucmVwbGFjZSgvXFxzL2csJycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChlbGVtZW50LnN0b3JlTmFtZSAmJiBlbGVtZW50LnN0b3JlTmFtZS50cmltKCkgPT0gJycpIHx8IGVsZW1lbnQuc3RvcmVOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coaW5kZXgpO1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFN0b3JlIE5hbWUgLSBBJHtpbmRleCsyfWApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGVsZW1lbnQudXNlckVtYWlsICYmIGVsZW1lbnQudXNlckVtYWlsLnRyaW0oKSA9PSAnJykgfHwgZWxlbWVudC51c2VyRW1haWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4KzJ9YClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgoZWxlbWVudC51c2VyTmFtZSAmJiBlbGVtZW50LnVzZXJOYW1lLnRyaW0oKSA9PSAnJykgfHwgZWxlbWVudC51c2VyTmFtZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgVXNlciBOYW1lIC0gQyR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbCAmJiAhZWxlbWVudC51c2VyRW1haWwubWF0Y2goL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC8pKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQiR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGNoZWNrVXNlckluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbS51c2VyRW1haWwgPT0gZWxlbWVudC51c2VyRW1haWwpO1xyXG4gICAgICAgICAgaWYgKGNoZWNrVXNlckluZGV4ICE9IC0xICYmICh0aGlzLnVzZXJEYXRhW2NoZWNrVXNlckluZGV4XT8udXNlck5hbWUgIT0gbnVsbCAmJiBlbGVtZW50Py51c2VyTmFtZSAhPSBudWxsICYmIHRoaXMudXNlckRhdGFbY2hlY2tVc2VySW5kZXhdPy51c2VyTmFtZT8udHJpbSgpLmxlbmd0aCAmJiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLmxlbmd0aCAmJiB0aGlzLnVzZXJEYXRhW2NoZWNrVXNlckluZGV4XT8udXNlck5hbWU/LnRyaW0oKS50b0xvd2VyQ2FzZSgpICE9IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCkudG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgZXJyb3IucHVzaChgU2FtZSBFbWFpbCB3aXRoIERpZmZlcmVudCB1c2VycyAtIEIke2luZGV4KzJ9LEIke2NoZWNrVXNlckluZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudD8uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgIGNpdHk6IGVsZW1lbnQ/LmNpdHlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgICBcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhzdG9yZU5vdEV4aXN0cyk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codXNlck5vdEV4aXN0cyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGVycm9yLmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgIGltYWdlc3JjOiAgYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHRpdGxlOiBgSW52YWxpZCBkZXRhaWxzIWAsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBQbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBzdG9yZSBpbmZvcm1hdGlvbi5gLFxyXG4gICAgICAgICAgICBidXR0b250eXBlOiAnZXJyb3InLFxyXG4gICAgICAgICAgICBlcnJvcjplcnJvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHJlcyAhPSAncmV1cGxvYWQnKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXVwbG9hZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMicpO1xyXG4gICAgICAgICAgICAgIGVsZT8uY2xpY2soKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yLmpvaW4oJyAnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsaWRhdGVVc2VyRGV0YWlscyhmYWxzZSk7XHJcbiAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFVwbG9hZCBhIEV4Y2VsIGZpbGUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlVXNlckRldGFpbHMoZGVsPzphbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOiB0aGlzLm9iaj8udHlwZSAmJiBbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVvcGVuYW5kY2xvc2UnXS5pbmNsdWRlcyh0aGlzLm9iai50eXBlKSA/IHRoaXMub2JqLnR5cGUgOiAnJyxcclxuICAgICAgLi4uKGRlbCkgPyB7ZGVsZXRlOmZhbHNlfSA6IHt9LFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UudmFsaWRhdGVVc2VyKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGxldCB2YWxpZGF0ZTpCb29sZWFuID0gdHJ1ZTtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlcz8uZGF0YT8uRXhpc3RzRW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KHJlcz8uZGF0YT8uRXhpc3RzRW1haWwuam9pbignLCAnKSArICcgJyArIHJlcz8uZGF0YT8ubWVzc2FnZSk7XHJcbiAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzPy5kYXRhPy5pZCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkID0gcmVzLmRhdGEuaWQ7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcmVzLmRhdGEuaWQ7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW107XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAocmVzPy5kYXRhPy5kb21haW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxldCBlbWFpbCA9IHJlcz8uZGF0YT8uZG9tYWluLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0uZW1haWwpXHJcbiAgICAgICAgICAgIC8vICsnICcrJzxhIGhyZWY9XCJwcm9maWxlL2RvbWFpbnNcIj5BZGQgZG9tYWluPC9hPidcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVtYWlsLmpvaW4oJywgJykgKyAnICcgKyAnRG9tYWluIGlzIG5vdCBFeGlzdHMuJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoICYmIHJlcz8uZGF0YT8uc3RvcmU/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICBsZXQgc3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgbG9jYXRpb246IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBsZXQgaW5hY3RpdmVTdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgIHN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09ICcnO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gJ3N0b3JlIGlzIGluYWN0aXZlJ1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxvY2F0aW9uID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlICE9ICcnICYmIGl0ZW0ubWVzc2FnZSAhPSAnc3RvcmUgaXMgaW5hY3RpdmUnO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHN0b3JlID0gWy4uLm5ldyBTZXQoc3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSBbLi4uIG5ldyBTZXQoaW5hY3RpdmVTdG9yZS5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICBsb2NhdGlvbiA9IFsuLi5uZXcgU2V0KGxvY2F0aW9uLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICBpZiAoc3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYE5ldyBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYFxyXG4gICAgICAgICAgICAgIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZSA9IGBOZXcgU3RvcmUgYW5kIEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBhIG5ldyBzdG9yZS4gQWRkIG5ldyBzdG9yZXMgaW4gdGhlIFN0b3JlIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuYCxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdBZGRzdG9yZScsXHJcbiAgICAgICAgICAgICAgICBzdWJ0aXRsZTogc3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbi5qb2luKCksXHJcbiAgICAgICAgICAgICAgICBpbmFjdGl2ZVN0b3JlczppbmFjdGl2ZVN0b3JlLmpvaW4oKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGBJbmFjdGl2ZSBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYCxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBJbmFjdGl2ZSBzdG9yZXMgZm91bmQgaW4gdGhlIC5jc3YuIFBsZWFzZSBhY3RpdmF0ZSBvciBza2lwIHRoZW0gdG8gcHJvY2VlZCB0byBhc3NpZ24uYCxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdBY3RpdmVzdG9yZScsXHJcbiAgICAgICAgICAgICAgICBzdWJ0aXRsZTogaW5hY3RpdmVTdG9yZS5qb2luKCcsICcpLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAobG9jYXRpb24ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlX2lkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gKTtcclxuICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocG9wdXBjb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ2NvbmZpcm1TdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZGApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gJ2FjdGl2ZVN0b3JlJykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXNgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzdG9yZV9pZDogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHRoaXMudXNlckRhdGEuZmluZCgoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMuY2l0eSA9PSB1bmRlZmluZWQgfHwgZGV0YWlscy5jaXR5ID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX2lkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YClcclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSAmJiAhaW5hY3RpdmVTdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlscycpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEZXRhaWxzID0gdGhpcy51c2VyRGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS51c2VyRW1haWwpO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdXNlciA9IFsuLi5yZXMuZGF0YS51c2VyXTtcclxuICAgICAgICAgICAgICAgICAgcmVzLmRhdGEudXNlciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICB1c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLnVzZXIucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS51c2VyLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdJbnZpdGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlcjogcmVzLmRhdGEudXNlclxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8ubWVzc2FnZSA9PSAnY29uZmlybScgfHwgcmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlci51c2VyRW1haWwgPT0gaXRlbS51c2VyRW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaW52aXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaXRlbSBvZiByZXMuZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYCR7aXRlbS51c2VyRW1haWx9IC0gJHtpdGVtLm1lc3NhZ2V9YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYFBsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzYClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCB8fCByZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgbGV0IHN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGluYWN0aXZlU3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbWAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnSW52aXRlJyxcclxuICAgICAgICAgICAgICAgIHVzZXI6IHJlcy5kYXRhLnVzZXJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnJztcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09ICdzdG9yZSBpcyBpbmFjdGl2ZSdcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgbG9jYXRpb24gPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSAhPSAnJztcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgc3RvcmUgPSBbLi4ubmV3IFNldChzdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gWy4uLiBuZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOmFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBsb2NhdGlvbiA9IFsuLi5uZXcgU2V0KGxvY2F0aW9uLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICAgIGlmIChzdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBOZXcgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICAgIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlID0gYE5ldyBTdG9yZSBhbmQgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IHN0b3JlLiBBZGQgbmV3IHN0b3JlcyBpbiB0aGUgU3RvcmUgTWFuYWdlbWVudCB1bmRlciBNYW5hZ2UgbWVudS5gLFxyXG4gICAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogc3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZXM6aW5hY3RpdmVTdG9yZS5qb2luKClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWAsXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBJbmFjdGl2ZSBzdG9yZXMgZm91bmQgaW4gdGhlIC5jc3YuIFBsZWFzZSBhY3RpdmF0ZSBvciBza2lwIHRoZW0gdG8gcHJvY2VlZCB0byBhc3NpZ24uYCxcclxuICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FjdGl2ZXN0b3JlJyxcclxuICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgc3RvcmVfaWQ6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMuY2l0eSA9PSB1bmRlZmluZWQgfHwgZGV0YWlscy5jaXR5ID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdjb25maXJtU3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09ICdhY3RpdmVTdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/Lm1lc3NhZ2UgPT0gJ2NvbmZpcm0nIHx8IHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEZXRhaWxzID0gcmVzLmRhdGEudXNlci5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS51c2VyRW1haWwpXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX2lkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpICYmICFpbmFjdGl2ZVN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlci51c2VyRW1haWwgPT0gaXRlbS51c2VyRW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaW52aXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaXRlbSBvZiByZXMuZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYCR7aXRlbS51c2VyRW1haWx9IC0gJHtpdGVtLm1lc3NhZ2V9YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHMnKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9LChlcnJvcikgPT4ge1xyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvci5lcnJvci5lcnJvcilcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkVXNlcihkZWw/OmFueSkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICBhZGRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOiB0aGlzLm9iaj8udHlwZSAmJiBbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywgJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModGhpcy5vYmoudHlwZSkgPyB0aGlzLm9iai50eXBlIDogJycsXHJcbiAgICAgIC4uLihkZWwpID8ge2RlbGV0ZTpmYWxzZX0gOiB7fSxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcihkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQgPSByZXNwb25zZS5kYXRhLmlkO1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXNwb25zZS5kYXRhLmlkO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgICAgICB0aGlzLnVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5zaXplID0gNTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGxpbWl0OiB0aGlzLnNpemUsXHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgc2VhcmNoOiB0aGlzLnRhYmxlRmlsdGVyLFxyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy50YWJsZUZpbHRlci5sZW5ndGgpXHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudXNlcnM7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzQ291bnQgPSB0aGlzLnRhYmxlRGF0YS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXTtcclxuICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06YW55KSA9PntcclxuICAgICAgICAgIGlmKGl0ZW0uY2hlY2tGbGFnICYmICF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpICYmICF0aGlzLnJlbW92ZVVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnB1c2goaXRlbS5pZCk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgY291bnQgKz0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoIWl0ZW0uY2hlY2tGbGFnICYmICF0aGlzLnJlbW92ZVVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZVVzZXJzLnB1c2goaXRlbS5pZCk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgaWYgKGNvdW50ID09IHRoaXMucmVjb3Jkc0NvdW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRvd25sb2FkVGVtcGxhdGUoKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBsaW1pdDogMTAwMDAsXHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcclxuICAgICAgbGV0IGV4Y2VsRGF0YTogYW55ID0gW107XHJcbiAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgIHN0b3JlTmFtZTogJycsXHJcbiAgICAgICAgICB1c2VyRW1haWw6ICcnLFxyXG4gICAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgICAgIGNpdHk6JydcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgcmVzLmRhdGEudXNlcnMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICBjaXR5Oml0ZW0uY2l0eVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuU29wU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZShleGNlbERhdGEsICdDaGVja0xpc3RfdXNlckxpc3RfJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IGV2ZW50O1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgbGltaXQ6IHRoaXMuc2l6ZSxcclxuICAgICAgb2Zmc2V0OiBldmVudCAtIDEsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlscyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnVzZXJzO1xyXG4gICAgICAgIGxldCBjb3VudD0wO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hlY2tGbGFnICYmICF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpICYmICF0aGlzLnJlbW92ZVVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnB1c2goaXRlbS5pZClcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSkge1xyXG4gICAgICAgICAgICBjb3VudCArPTE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgIGlmKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdO1xyXG4gICAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvdW50ID09IHRoaXMucmVjb3Jkc0NvdW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNpemUgPSBldmVudDtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGxpbWl0OiB0aGlzLnNpemUsXHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgc2VhcmNoOiB0aGlzLnRhYmxlRmlsdGVyLFxyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy50YWJsZUZpbHRlci5sZW5ndGgpXHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudXNlcnM7XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbS5jaGVja0ZsYWcgJiYgIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkgJiYgIXRoaXMucmVtb3ZlVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkpXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChpdGVtLmlkKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5yZWNvcmRzQ291bnQgPSB0aGlzLnRhYmxlRGF0YS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VhcmNoVGFibGVEYXRhKCkge1xyXG4gICAgdGhpcy5zaXplID0gNTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgbGltaXQ6IHRoaXMuc2l6ZSxcclxuICAgICAgc2VhcmNoOiB0aGlzLnRhYmxlRmlsdGVyLFxyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlscyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZUZpbHRlci5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudXNlcnM7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgICBsZXQgY291bnQgPSAwIDtcclxuICAgICAgICAgIGlmKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXVxyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdXHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOmFueSkgPT57XHJcbiAgICAgICAgICAgIGlmKGl0ZW0uY2hlY2tGbGFnICYmICF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpICYmICF0aGlzLnJlbW92ZVVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChpdGVtLmlkKTtcclxuICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgICBjb3VudCArPTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBpZiAoY291bnQgPT0gdGhpcy5yZWNvcmRzQ291bnQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVGbGFnKGV2ZW50OiBhbnksIGluZGV4OiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgICAgIFxyXG4gICAgZWxlbWVudC5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZFxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMucmVtb3ZlVXNlcnMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGVsZW1lbnQuaWQpXHJcbiAgICB9XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVXNlcnMucHVzaChlbGVtZW50LmlkKTtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSBlbGVtZW50LmlkKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZURhdGFbaW5kZXhdLmNoZWNrRmxhZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmxlbmd0aCAhPSB0aGlzLnJlY29yZHNUb3RhbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY2hlY2tBbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gdHJ1ZVxyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMucmVtb3ZlVXNlcnMuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5pZCk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGl0ZW0uaWQpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5wdXNoKGl0ZW0uaWQpXHJcbiAgICAgICAgbGV0IGluZGV4ID0gIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KChpZDphbnkpID0+IGlkID09IGl0ZW0uaWQpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LDEpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLy8gZGF0ZVJhbmdlU3RhcnQoZXZlbnQgOmFueSkge1xyXG4gIC8vICAgdGhpcy5yYW5nZVN0YXJ0ID0gdGhpcy5kYXlqcyhldmVudC5zdGFydCkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAvLyAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgLy8gfVxyXG4gIGRhdGVTcGVjaWZpYyhldmVudDphbnkpIHtcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIGV2ZW50Py5zZWxlY3RlZExpc3QpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gZXZlbnQuc2VsZWN0ZWRMaXN0O1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRlUmFuZ2VTdGFydChldmVudCA6YW55KSB7XHJcbiAgICBpZihldmVudCAmJiBldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdvbmV0aW1lJylcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgIH1cclxuICAgIH0gICBcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ29uZXRpbWUnKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlO1xyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcbiAgXHJcbiAgZGF0ZVJhbmdlRW5kKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIGRhdGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuZGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnQpO1xyXG4gIC8vICAgdGhpcy5tb250aERhdGUgPSBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAxID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAnc3QnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMiA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ25kJyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDMgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICdyZCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICd0aCc7XHJcbiAgLy8gICB0aGlzLm1vbnRoRGF5ID0gdGhpcy5kYXRlLmZvcm1hdCgnZGRkZCcpO1xyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcblxyXG4gIC8vICAgbGV0IHdlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKHRoaXMuZGF0ZSk7XHJcbiAgLy8gICB0aGlzLk1vbnRod2Vla051bWJlciA9IHdlZWtOdW1iZXIgPT0gMSA/IHdlZWtOdW1iZXIgKyAnc3QnIDogd2Vla051bWJlciA9PSAyID8gd2Vla051bWJlciArICduZCcgOiB3ZWVrTnVtYmVyID09IDMgPyB3ZWVrTnVtYmVyICsgJ3JkJyA6IHdlZWtOdW1iZXIgKyAndGgnO1xyXG4gIC8vICAgdGhpcy5zZXRNb250aERhdGUodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXApO1xyXG4gIC8vIH1cclxuICAvLyBzZXREYXkoZGF5OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBkYXk7XHJcbiAgLy8gfVxyXG4gIHNldERheShkYXk6c3RyaW5nKXtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXkpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gdGhpcy5zZWxlY3RlZERheXMuZmlsdGVyKHNlbGVjdGVkRGF5ID0+IHNlbGVjdGVkRGF5ICE9PSBkYXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMucHVzaChkYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBzZXRNb250aERhdGUoZGF0YTogYW55KSB7XHJcbiAgLy8gICBpZiAoZGF0YSA9PSAnZGF0ZScpIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFt0aGlzLm1vbnRoRGF0ZV07XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW3RoaXMubW9udGhEYXRlXTsgXHJcbiAgLy8gICB9XHJcbiAgLy8gICBlbHNlIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFt0aGlzLm1vbnRoRGF5XTtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdGhpcy5tb250aERheV07IFxyXG4gIC8vICAgICBsZXQgd2Vla051bWJlciA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXRlKTtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHdlZWtOdW1iZXIgPT0gMSA/IHdlZWtOdW1iZXIgKyAnc3QnIDogd2Vla051bWJlciA9PSAyID8gd2Vla051bWJlciArICduZCcgOiB3ZWVrTnVtYmVyID09IDMgPyB3ZWVrTnVtYmVyICsgJ3JkJyA6IHdlZWtOdW1iZXIgKyAndGgnO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBkYXRhO1xyXG5cclxuICAvLyB9XHJcbiAgLy8gc2V0RGF0ZShldmVudDogYW55KSB7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSBldmVudC5zdGFydDtcclxuICAvLyB9XHJcbiAgcHVibGlzaCgpIHtcclxuICAgIGlmKFsnd2Vla2x5Jywnd2Vla2RheSddLmluY2x1ZGVzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKSAmJiB0aGlzLnNlbGVjdGVkRGF5cy5sZW5ndGggPT0gMCl7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIHNlbGVjdCBhdGxlYXN0IDEgZGF5IHRvIHByb2NlZWQnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudmFsaWRUaW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93UmFuZ2VWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPScnOyBcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5tb250aERhdGUgKycgJyt0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdzcGVjaWZpYycpIHtcclxuICAgICAgaWYodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2Ugc2VsZWN0IGF0bGVhc3QgMSBkYXRlIHRvIHByb2NlZWQnKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0zOCAyNy4wODE4VjI4LjAwMThDMzcuOTk4OCAzMC4xNTgyIDM3LjMwMDUgMzIuMjU2NSAzNi4wMDkzIDMzLjk4MzZDMzQuNzE4MiAzNS43MTA4IDMyLjkwMzMgMzYuOTc0MyAzMC44MzU0IDM3LjU4NTdDMjguNzY3NCAzOC4xOTcxIDI2LjU1NzMgMzguMTIzNyAyNC41MzQ1IDM3LjM3NjRDMjIuNTExNyAzNi42MjkxIDIwLjc4NDcgMzUuMjQ3OSAxOS42MTEgMzMuNDM4OUMxOC40MzczIDMxLjYyOTkgMTcuODc5OCAyOS40ODk5IDE4LjAyMTcgMjcuMzM4MUMxOC4xNjM2IDI1LjE4NjQgMTguOTk3MiAyMy4xMzgxIDIwLjM5ODMgMjEuNDk4OUMyMS43OTk0IDE5Ljg1OTYgMjMuNjkyOCAxOC43MTcyIDI1Ljc5NjIgMTguMjQyQzI3Ljg5OTYgMTcuNzY2NyAzMC4xMDAzIDE3Ljk4NDIgMzIuMDcgMTguODYxOE0zOCAyMC4wMDE4TDI4IDMwLjAxMThMMjUgMjcuMDExOFwiIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdD9gLFxyXG4gICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgIC8vIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LmFsZXJ0c1RvID0gdGhpcy5lbWFpbExpc3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnB1Ymxpc2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gJ3B1Ymxpc2gnO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkVXNlcnMgPSB0aGlzLnJlbW92ZVVzZXJzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlV2Vla0RheXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBkYXRlQ29uZmlndXJlID0gdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID8gIHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY29uZmlnRGF0YSk7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHt0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3QgcHVibGlzaGVkLmApO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvY2hlY2tsaXN0J10pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEFzc2lnbiBhIFVzZXIhJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEFzc2lnbiBhIFVzZXIhJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdzb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHNlbGVjdHN0b3JlKGVsZW1lbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAvLyAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcblxyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBlbGVtZW50O1xyXG5cclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgLy8gICAgIC8vIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gIC8vICAgICBpZiAoZGF0YSAmJiBkYXRhLm1zZyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICBpZiAoZGF0YS5zdG9yZXMubGVuZ3RoKSB7XHJcbiAgLy8gICAgICAgICBsZXQgc29wID0gZGF0YS5zdG9yZXM7XHJcbiAgLy8gICAgICAgICBsZXQgaWQgPSBlbGVtZW50LmlkO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmFzc2lnblNvcFN0b3JlKHNvcCwgaWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICAgIC8vICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAgIC8vICAgICBlbGVtZW50LnNvcF9zdG9yZXMgPSBkYXRhLnN0b3JlcztcclxuICAvLyAgICAgICAgIC8vICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgICAgLy8gfSwgKGVycm9yOiBhbnkpID0+IHtcclxuXHJcbiAgLy8gICAgICAgICAvLyB9KVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuICAvLyB9XHJcbiAgbmV3c3RvcmUoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9tYW5hZ2Uvc3RvcmVzXCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdGlkOiBKU09OLnN0cmluZ2lmeSh0aGlzLm9iaikgfSB9KTtcclxuICB9XHJcbiAgaW52aXRldXNlcigpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL2NvbnRyb2wtcGFuZWwvYXNzaWduLXJvbGVcIl0sIHsgcXVlcnlQYXJhbXM6IHsgY2hlY2tsaXN0aWQ6IEpTT04uc3RyaW5naWZ5KHRoaXMub2JqKSB9IH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGF5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXknID8gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoZXZlbnQ6YW55KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUubGVuZ3RoICE9IDApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IGV2ZW50LnRhcmdldC52YWx1ZSA8IDkgID8gJzAnK2V2ZW50LnRhcmdldC52YWx1ZSA6IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoZXZlbnQ6YW55KSB7ICAgIFxyXG4gICAgaWYoIWlzTmFOKGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlWzBdID09IDMgJiYgZXZlbnQudGFyZ2V0LnZhbHVlWzFdID4gMSkge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IDM7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IDM7XHJcbiAgICAgIH1cclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlWzBdID4gMyAmJiBldmVudC50YXJnZXQudmFsdWVbMV0gPj0gMCkge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVswXTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZVswXSA8IDEpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gJyc7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHNhdmVkcmFmdCgpIHtcclxuICAgIGlmKCF0aGlzLnZhbGlkVGltZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN0YXJ0RGF0ZVdpdGhUaW1lLCBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICBpZighdGhpcy5zaG93UmFuZ2VWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPScnOyBcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5tb250aERhdGUgKycgJyt0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdzcGVjaWZpYycpIHtcclxuICAgICAgaWYodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ3JhbmdlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZFR5cGUgPT0gJ3JhbmdlJykge1xyXG4gICAgLy8gICBsZXQgc3RhcnQgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZS5zcGxpdCgnICcpO1xyXG4gICAgLy8gICBsZXQgZW5kID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lLnNwbGl0KCcgJyk7XHJcbiAgICAvLyAgIHN0YXJ0RGF0ZVdpdGhUaW1lID0gc3RhcnQubGVuZ3RoID4gMiA/IHN0YXJ0WzFdICsgJyAnICsgc3RhcnRbMl0gOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZTtcclxuICAgIC8vICAgZW5kRGF0ZVdpdGhUaW1lID0gZW5kLmxlbmd0aCA+IDIgPyBlbmRbMV0gKyAnICcgKyBlbmRbMl0gOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWU7XHJcbiAgICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLnJhbmdlU3RhcnQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgJyAnICsgc3RhcnREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5yYW5nZUVuZCkuZm9ybWF0KCdZWVlZLU1NLUREJykgKyAnICcgKyBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICAgIFxyXG4gICAgLy8gICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUpIHtcclxuICAgIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHN0YXJ0RGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IGVuZERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0VuZCB0aW1lIG11c3QgYmUgZ3JlYXRlciB0aGFuIHN0YXJ0IHRpbWUnKTtcclxuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIFxyXG4gICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucHVibGlzaCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVdlZWtEYXlzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICB0aXRsZTogYFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgIGNvbnRlbnQ6IGBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdkcmFmdCdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gdGhpcy5jb25maWdEYXRhLm9wZW5UaW1lO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IHRoaXMuc29wU3RvcmVzO1xyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LmFsZXJ0c1RvID0gdGhpcy5lbWFpbExpc3Q7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghcmVzKSB7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvdW50ID0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ0RyYWZ0IGhhcyBiZWVuIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBSZXVwbG9hZCgpIHtcclxuICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgIHRpdGxlOiBgUmV1cGxvYWQgQ1NWYCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXBsYWNlIGV4aXN0aW5nIGRhdGEgYnkgdXBsb2FkaW5nIG5ldyBmaWxlPyBZb3VyIGV4aXN0aW5nIGRhdGEgd2lsbCBnZXQgcmVwbGFjZWQgd2l0aCB0aGUgbmV3IG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnUmV1cGxvYWQnXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnRcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy5yZXVwbG9hZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMicpO1xyXG4gICAgICAgIGVsZT8uY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIC8vIGludml0ZW5ld3VzZXIoKSB7XHJcbiAgLy8gICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gIC8vICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gIC8vICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgLy8gICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAvLyAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgLy8gICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbS4gPGJyPmAsXHJcbiAgLy8gICAgIGJ1dHRvbnR5cGU6ICdJbnZpdGUnXHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gIC8vICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcblxyXG4gIC8vICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cclxuICAvLyAgICAgICAvLyAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgLy8gICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgLy8gICAgICAgdG9hc3Q6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaWNvbkh0bWw6ICc8aW1nICBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvSWNvbnMvY2hlY2tsaXN0LXVucHVibGlzaGVkLWljb24uc3ZnXCI+JyxcclxuICAvLyAgICAgICAvLyAgICAgICAvLyB0aXRsZVRleHQ6IGBFbWFpbCBzZW50IHN1Y2Nlc2Z1bGx5YCxcclxuICAvLyAgICAgICAvLyAgICAgICBodG1sOiBgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMlwiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxoND5DU1YgaGFzIGJlZW4gUmV1cGxvYWRlZCBzdWNjZXNzZnVsbHkuPC9oND5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5gLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyOiA2MDAwLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgZGlkT3BlbjogKHRvYXN0KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgU3dhbC5zdG9wVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgICQoXCIja3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIikudmFsKCcnKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgfSlcclxuXHJcbiAgLy8gICAgICAgLy8gICAgIC8vIHRoaXMucm91dGUubmF2aWdhdGUoWycvc29wL0NoZWNrbGlzdHMnXSk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgIC8vIH0pXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcblxyXG4gIC8vIH1cclxuICAvLyBBZGRzdG9yZSgpIHtcclxuICAvLyAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgLy8gICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgLy8gICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAvLyAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gIC8vICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAvLyAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtLiA8YnI+YCxcclxuICAvLyAgICAgc3VidGl0bGU6ICdMS1NUMDA5LCBTVDMwNDUnLFxyXG4gIC8vICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnXHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gIC8vICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcblxyXG4gIC8vICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cclxuICAvLyAgICAgICAvLyAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgLy8gICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgLy8gICAgICAgdG9hc3Q6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaWNvbkh0bWw6ICc8aW1nICBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvSWNvbnMvY2hlY2tsaXN0LXVucHVibGlzaGVkLWljb24uc3ZnXCI+JyxcclxuICAvLyAgICAgICAvLyAgICAgICAvLyB0aXRsZVRleHQ6IGBFbWFpbCBzZW50IHN1Y2Nlc2Z1bGx5YCxcclxuICAvLyAgICAgICAvLyAgICAgICBodG1sOiBgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMlwiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxoND5DU1YgaGFzIGJlZW4gUmV1cGxvYWRlZCBzdWNjZXNzZnVsbHkuPC9oND5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5gLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyOiA2MDAwLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgZGlkT3BlbjogKHRvYXN0KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgU3dhbC5zdG9wVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgICQoXCIja3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIikudmFsKCcnKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgfSlcclxuXHJcbiAgLy8gICAgICAgLy8gICAgIC8vIHRoaXMucm91dGUubmF2aWdhdGUoWycvc29wL0NoZWNrbGlzdHMnXSk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgIC8vIH0pXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcblxyXG4gIC8vIH1cclxuICAvLyBhZGRVc2VyKCkge1xyXG4gIC8vICAgdGhpcy5hZGRVc2VyRm9ybSA9ICF0aGlzLmFkZFVzZXJGb3JtO1xyXG4gIC8vIH1cclxuXHJcblxyXG4gIC8vIGNyZWF0ZXVzZXJQb3B1cCh0eXBlOiBzdHJpbmcsIHJlY29yZDogYW55ID0gbnVsbCk6IHZvaWQge1xyXG4gIC8vICAgICBpZiAodHlwZSA9PSAndmlldycpIHtcclxuICAvLyAgICAgICB0aGlzLnBvcFVwVGl0bGUgPSBcIlZpZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZWRpdCcpIHtcclxuICAvLyAgICAgICB0aGlzLnBvcFVwVGl0bGUgPSBcIkVkaXQgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFbnRlciBOZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5wb3BVcFRpdGxlID0gXCJFbnRlciBOZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgbGV0IGRhdGEgPSB7XHJcbiAgLy8gICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgLy8gICAgICAgdHlwZTogdHlwZSxcclxuICAvLyAgICAgICB0aXRsZTogdGhpcy5wb3BVcFRpdGxlXHJcbiAgLy8gICAgIH1cclxuXHJcbiAgLy8gICAgIGNvbnN0IGRpYWxvZ1JlZl9jcmVhdGVVc2VyID0gdGhpcy5kaWFsb2cub3BlbihVcGxvYWRTaW5nbGVVc2VyQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgICAgcGFuZWxDbGFzczogJ2N1c3RvbS1tb2RhbGJveCcsXHJcbiAgLy8gICAgICAgZGF0YTogZGF0YVxyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAgIGRpYWxvZ1JlZl9jcmVhdGVVc2VyLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuc2hvd0ludHJvID0gZmFsc2U7XHJcbiAgLy8gICAgICAgaWYgKCFyZWNvcmQgJiYgcmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdUaGUgdXNlciBpbnZpdGUgaGFzIGJlZW4gc2VudCBzdWNjZXNzZnVsbHkgdG8gdGhlIHVzZXIgYW5kIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybSEnLFxyXG4gIC8vICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ09LJyxcclxuICAvLyAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gIC8vICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZVxyXG4gIC8vICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAvLyAgICAgICAgICAgICB0aGlzLnNlYXJjaFVzZXIgPSAnJ1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuYWRkVXNlckZvcm0gPSBmYWxzZTtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAgICAgLy8gdGhpcy5sb2FkUmVjb3JkcygwLCB0aGlzLnNpemUpXHJcbiAgLy8gICAgICAgICAgIH1cclxuICAvLyAgICAgICAgIH0pXHJcbiAgLy8gICAgICAgfSBlbHNlIGlmIChyZXMgJiYgcmVzLmRhdGEuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgICAgIGljb246ICdzdWNjZXNzJyxcclxuICAvLyAgICAgICAgICAgdGV4dDogJ1VzZXIgVXBkYXRlZCBTdWNjZXNzZnVsbHkhJyxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgIHRoaXMuYWRkVXNlckZvcm0gPSBmYWxzZTtcclxuICAvLyAgICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAvLyAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0gXHJcblxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAoKSB7XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZFNpbmdsZVVzZXJDb21wb25lbnQsIHtcclxuICAvLyAgICAgcGFuZWxDbGFzczogJ2N1c3RvbS1tb2RhbGJveCdcclxuXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgLy8gICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblxyXG4gIC8vICAgICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gdHJhbnNmZXJGb3JtRGF0YSgpIHtcclxuICAvLyAgIHRoaXMuU29wU2VydmljZS5zb3BEYXRhLmFzT2JzZXJ2YWJsZSgpXHJcbiAgLy8gfVxyXG4gIHNhdmVhbmRyZWRpcmVjdChpZDogYW55KSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZGV0ZWN0aW9uQXJlYSA9IHRoaXMuem9uZXM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSAnc2F2ZSc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIFxyXG4gICAgbGV0IHN0YXJ0RGF0ZVdpdGhUaW1lLCBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICBpZighdGhpcy5zaG93UmFuZ2VWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPScnOyBcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLm1vbnRoRGF0ZSArJyAnKyB0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdzcGVjaWZpYycpIHtcclxuICAgICAgaWYodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScgJiYgdGhpcy5zZWxlY3RlZERhdGVMaXN0Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0XCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdElkOiBpZCB9IH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICB2YWxpZGF0ZVRpbWUoKSB7XHJcbiAgICBsZXQgc3RhcnRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLnN0YXJ0VGltZSwgJ0hIOm1tJylcclxuICAgIGxldCBlbmRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLmVuZFRpbWUsICdISDptbScpXHJcbiAgICBpZiAoIHRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwgJiYgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSA9PSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkge1xyXG4gICAgICAgICAgaWYgKHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA+IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIERhdGUnKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICggc3RhcnRUaW1lID4gZW5kVGltZSkge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZVRpbWUoZGF0YTogYW55KSB7XHJcbiAgICBpZih0aGlzLnZhbGlkYXRlVGltZSgpKSB7XHJcbiAgICAgIGlmIChkYXRhID09ICdzdGFydCcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsICdISDptbScpLmZvcm1hdCgnaGg6bW0gQScpXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLmVuZFRpbWUsICdISDptbScpLmZvcm1hdCgnaGg6bW0gQScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFxyXG4gIH1cclxuICB1cGRhdGVTY2hlZHVsZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID0gJyc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gJzAxJztcclxuICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5tb250aERheSA9ICcnO1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1JhbmdlVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUgPT0gJ3JhbmdlJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIC8vIHRoaXMucmVmcmVzaFBpY2tlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8fCB0aGlzLmRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8fCB0aGlzLmRheWpzKCkuYWRkKDEsJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5taW5TdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKCkuYWRkKDEsJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnd2Vla2RheScpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknXTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnd2Vla2x5Jykge1xyXG4gICAgICBsZXQgdG9kYXlEYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnZGRkZCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFt0b2RheURhdGVdO1xyXG4gICAgfVxyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtb250aGx5Jykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9ICdkYXknO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKTtcclxuICAgIH1cclxuICAgIGlmKFsnZGFpbHknLCdvbmV0aW1lJ10uaW5jbHVkZXMoZXZlbnQudGFyZ2V0LnZhbHVlKSB8fCAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtb250aGx5JyAmJiBbJ2RheScsJ2RhdGUnXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCkpICkge1xyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlIDogZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93T25jZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXBlYXRUeXBlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdkYWlseScgPyAnRGF5JyA6IFsnd2Vla2x5Jywnd2Vla2RheSddLmluY2x1ZGVzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSkgPyAnV2VlaycgOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ21vbnRobHknID8gJ01vbnRoJyA6ICcnO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gIH1cclxuICBcclxuICBuYXZpZ2F0ZVRvQ29udHJvbENlbnRlcigpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvY29udHJvbGNlbnRlci90ZW1wbGF0ZXZpZXcnXSx7IHF1ZXJ5UGFyYW1zOiB7IHNvdXJjZTogJ2NjJyB9IH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkU3RvcmVDb21wb25lbnQoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhTdG9yZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyBcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBvYmo6dGhpcy5vYmpcclxuICAgIH07XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZihyZXMpIHtcclxuICAgICAgICB0aGlzLnVzZXJEYXRhID0gcmVzO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVVc2VyRGV0YWlscyh0cnVlKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdG9nZ2xlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9ICF0aGlzLnNob3dEcm9wRG93bjtcclxuICB9XHJcbiAgc2VsZWN0RGF0ZShkYXRlOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlLmZpbHRlcigoZGF5OmFueSkgPT4gZGF5ICE9PSBkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnB1c2goZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0RGF0ZSgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSBbLi4udGhpcy5zZWxlY3RlZERhdGVdO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQmFkZ2UoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gdGhpcy5zdWJtaXR0ZWREYXRlcy5maWx0ZXIoZCA9PiBkICE9PSBkYXRlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5zZWxlY3RlZERhdGUuZmlsdGVyKChkOmFueSkgPT4gZCAhPT0gZGF0ZSk7XHJcbiAgfVxyXG4gIGdldERhdGVXaXRoU3VmZml4KGRhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoZGF0ZSA9PSAxIHx8IGRhdGUgPT0gMzEgfHwgZGF0ZSA9PSAyMSkge1xyXG4gICAgICByZXR1cm4gZGF0ZSArICdzdCc7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUgPT0gMiB8fCBkYXRlID09IDIyKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ25kJztcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PSAzIHx8IGRhdGUgPT0gMjMpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyAncmQnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyAndGgnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wRG93bigpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNb250aCh0eXBlOmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSB0eXBlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSAnJ1xyXG4gICAgdGhpcy5tb250aERheSA9ICcnXHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93T25jZSA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RhdGUnKSB7XHJcbiAgICAgIGxldCBkYXRlV2VlayA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXlqcygpKTtcclxuICAgICAgdGhpcy5tb250aERhdGUgPSBkYXRlV2Vlay50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLm1vbnRoRGF5ID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnZGRkZCcpOyAgICAgIFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RheScpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCdERCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVwZWF0RGF5KCkge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSB2YWx1ZSA9PSBcIjAwXCIgfHwgdmFsdWUgPT0gJzAnIHx8ICB2YWx1ZSA9PSAnJyA/ICcwMScgOiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1vbnRoVmFsdWUoKSB7XHJcbiAgICBsZXQgZGF0ZVZhbHVlID0gJydcclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICcxJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnRmlyc3QnXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLm1vbnRoRGF0ZSA9PSAnMicpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gJ1NlY29uZCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICczJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnVGhpcmQnXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLm1vbnRoRGF0ZSA9PSAnNCcpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gJ0ZvdXJ0aCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICc1Jykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnTGFzdCdcclxuICAgIH1cclxuICAgIHJldHVybiAoJ29uIHRoZSAnICsgZGF0ZVZhbHVlICsnICcrdGhpcy5tb250aERheSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljVmFsdWUoKSB7XHJcbiAgICBsZXQgdmFsdWU6YW55ID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPSAoaXRlbSA9PSAxIHx8IGl0ZW0gPT0gMzEgfHwgaXRlbSA9PSAyMSkgPyBpdGVtICsnIHN0JyA6IChpdGVtID09IDIgfHwgaXRlbSA9PSAyMikgPyBpdGVtICsnIG5kJyA6IChpdGVtID09IDMgfHwgaXRlbSA9PSAyMyApPyBpdGVtICsgJ3JkJyA6IGl0ZW0gKycgdGgnO1xyXG4gICAgICB2YWx1ZS5wdXNoKGl0ZW0gKVxyXG4gICAgfSlcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURhdGUoZGF0ZTphbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IGVsZSAhPSBkYXRlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNjZWR1bGVEYXRlKCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZScsdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGF0ZVZhbHVlKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8fCB0aGlzLmRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSAnJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgIHRoaXMubWluRGF0ZT0nJztcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljKGV2ZW50OmFueSkge1xyXG4gICAgaWYoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EYXRlcGlja2VyUmVmcmVzaCgpe1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgIHRoaXMubWluRW5kRGF0ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3BlY2lmaWNEYXRlKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgY2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcIi5kcm9wZG93bi1jbG9zZVwiKTtcclxuICAgIGNvbnNvbGUubG9nKGNsaWNrZWRJbnNpZGUpO1xyXG4gICAgXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDbGllbnRVc2VyKCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldENsaWVudFVzZXIodGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFVzZXJzID0gcmVzLmRhdGEubWFwKChpdGVtOmFueSkgPT4ge3JldHVybiB7bmFtZTppdGVtLnVzZXJOYW1lLHZhbHVlOml0ZW0uZW1haWwscm9sZTppdGVtLnJvbGV9fSk7XHJcbiAgICAgICAgaWYoIXRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5hcHByb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICAgICAgICBpZih1c2VySW5mbz8udXNlclR5cGUgPT0gJ3RhbmdvJyB8fCAodXNlckluZm8/LnVzZXJUeXBlID09ICdjbGllbnQnICYmIHVzZXJJbmZvPy5yb2xlID09ICd1c2VyJykpIHtcclxuICAgICAgICAgICAgbGV0IHVzZXJMaXN0ID0gdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS5yb2xlID09ICdzdXBlcmFkbWluJyk7XHJcbiAgICAgICAgICAgIGlmKHVzZXJMaXN0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbe25hbWU6dXNlckxpc3QubmFtZSx2YWx1ZTp1c2VyTGlzdC52YWx1ZX1dXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFt0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnZhbHVlID09IHVzZXJJbmZvLmVtYWlsKV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWxlcnRVc2VycyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFpvbmVMaXN0KCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFpvbmVMaXN0KHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy56b25lTGlzdCA9IHJlcy5kYXRhLm1hcCgoaXRlbTphbnkpID0+IHtyZXR1cm4ge25hbWU6aXRlbS56b25lLHZhbHVlOml0ZW0uem9uZX19ICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy56b25lTGlzdCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsZXJ0KGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVpvbmUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb29wKCkge1xyXG4gICAgbGV0IGRhdGEgPSB0aGlzLm1pbnV0ZXMuZmlsdGVyKGl0ZW0gPT4gIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5pbmNsdWRlcyhpdGVtKSk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIucHVzaChkYXRhWzBdKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlbWFpbmRlcihldmVudDphbnksaW5kZXg6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXJbaW5kZXhdID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmVyKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU93bmVyKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMub3duZXIgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZ1JlbWFpbmRlcihldmVudDphbnkpIHtcclxuICAgIGlmKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIgPSBbXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIgPSBbdGhpcy5taW51dGVzWzBdXTtcclxuICAgIH1cclxuICB9XHJcbiAgdXBkYXRlQ29uZmlnQXBwcm92ZXIoZXZlbnQ6YW55KSB7XHJcbiAgICBpZighZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbXTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICAgIGlmKHVzZXJJbmZvPy51c2VyVHlwZSA9PSAndGFuZ28nIHx8ICh1c2VySW5mbz8udXNlclR5cGUgPT0gJ2NsaWVudCcgJiYgdXNlckluZm8/LnJvbGUgPT0gJ3VzZXInKSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW3RoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6YW55KSA9PiBlbGUucm9sZSA9PSAnc3VwZXJhZG1pbicpXTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFt0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnZhbHVlID09IHVzZXJJbmZvLmVtYWlsKV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpbWVMb29wKGluZGV4OmFueSkge1xyXG4gICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcikpO1xyXG4gICAgaWYoZGF0YS5sZW5ndGgpIHtcclxuICAgICAgZGF0YS5zcGxpY2UoaW5kZXgsMSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm1pbnV0ZXMuZmlsdGVyKChpdGVtOmFueSkgPT4gZGF0YS5sZW5ndGggPyAhZGF0YT8uaW5jbHVkZXMoaXRlbSkgOiBpdGVtKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXZWVrTnVtYmVyKGRhdGU6IGFueSkge1xyXG4gIGxldCBkYXlzID0gW107XHJcbiAgbGV0IGRhdGVEYXQgPSBkYXlqcyggZGF0ZSApLnN0YXJ0T2YoICdtb250aCcgKTtcclxuXHJcbiAgd2hpbGUgKCBkYXRlRGF0Lm1vbnRoKCkgPT09IGRhdGUubW9udGgoKSApIHtcclxuICAgIGlmICggZGF0ZURhdC5mb3JtYXQoICdkZGRkJyApID09PSAgZGF0ZS5mb3JtYXQoICdkZGRkJyApKSB7XHJcbiAgICAgIGRheXMucHVzaCggZGF0ZURhdC5mb3JtYXQoICdZWVlZLU1NLUREJyApICk7XHJcbiAgICB9XHJcbiAgICBkYXRlRGF0ID0gZGF0ZURhdC5hZGQoIDEsICdkYXknICk7XHJcbiAgfVxyXG5cclxuICBsZXQgZmluZEluZGV4ID0gZGF5cy5maW5kSW5kZXgoKGl0ZW06YW55KSA9PiBpdGVtID09IGRhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgcmV0dXJuIChmaW5kSW5kZXggKyAxKTtcclxuXHJcbn0iLCI8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiY2FyZCByb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgcGItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IG1iLTQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImNoZWNrbGlzdCBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIiBbdmFsdWVdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY2hlY2tMaXN0TmFtZVwiIHJlYWRvbmx5PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY2hlY2tMaXN0RGVzY3JpcHRpb25cIiByZWFkb25seT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS02IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInB1Ymxpc2goKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFB1Ymxpc2hcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5QdWJsaXNoPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZWRyYWZ0KClcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5TYXZlIGFzIERyYWZ0PC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBjaGVja2NvbmZpZ2NvbnQgbXQtMlwiICpuZ0lmPVwiY29uZmlnRGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMyBsZWZ0Y2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBweC03IHB5LTdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nMVwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY2hlY2tMaXN0TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmNoZWNrTGlzdElkXCIgY2xhc3M9XCJzZWN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25zOyBsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTQgZnctYm9sZCBzZWN0aW9uXCI+e3tzZWN0aW9uLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiYWNjb3JkaWFuKGkpXCIgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvdyAhPT0gaX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvdz09PWlcIiBjbGFzcz1cInF1ZXN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJzZWN0aW9uLnF1ZXN0aW9uc1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnM7bGV0IGo9aW5kZXg7XCIgY2xhc3M9XCJteS0yIHEtYnRuXCIgY2RrRHJhZz5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3F1ZXN0aW9uLnFuYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW4gXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNlwiPlNjaGVkdWxlPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCIgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIG14LTRcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMlwiPnt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMyAyM1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDE0NDggNC41MjMwM0M4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA1LjI1ODggOC40MTQ0OCA1LjUzOTQ4TDUuNTM5NDggOC40MTQ0OEM1LjI1ODggOC42OTUxOCA0LjgwMzcxIDguNjk1MTggNC41MjMwMyA4LjQxNDQ4TDMuMDg1NTMgNi45NzY5OEMyLjgwNDgyIDYuNjk2MyAyLjgwNDgyIDYuMjQxMjEgMy4wODU1MyA1Ljk2MDUzQzMuMzY2MjEgNS42Nzk4MiAzLjgyMTMgNS42Nzk4MiA0LjEwMTk4IDUuOTYwNTNMNS4wMzEyNSA2Ljg4OTc4TDcuMzk4MDMgNC41MjMwM0M3LjY3ODcxIDQuMjQyMzIgOC4xMzM4IDQuMjQyMzIgOC40MTQ0OCA0LjUyMzAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDE0NDggMTEuNzEwNUM4LjY5NTE4IDExLjk5MTIgOC42OTUxOCAxMi40NDYzIDguNDE0NDggMTIuNzI3TDUuNTM5NDggMTUuNjAyQzUuMjU4OCAxNS44ODI2IDQuODAzNzEgMTUuODgyNiA0LjUyMzAzIDE1LjYwMkwzLjA4NTUzIDE0LjE2NDVDMi44MDQ4MiAxMy44ODM4IDIuODA0ODIgMTMuNDI4NyAzLjA4NTUzIDEzLjE0NzlDMy4zNjYyMSAxMi44NjczIDMuODIxMyAxMi44NjczIDQuMTAxOTggMTMuMTQ3OUw1LjAzMTI1IDE0LjA3NzNMNy4zOTgwMyAxMS43MTA1QzcuNjc4NzEgMTEuNDI5OSA4LjEzMzggMTEuNDI5OSA4LjQxNDQ4IDExLjcxMDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMDYyNSA2LjQ2ODc1QzEwLjA2MjUgNi4wNzE4IDEwLjM4NDQgNS43NSAxMC43ODEyIDUuNzVIMTUuMDkzOEMxNS40OTA2IDUuNzUgMTUuODEyNSA2LjA3MTggMTUuODEyNSA2LjQ2ODc1QzE1LjgxMjUgNi44NjU3IDE1LjQ5MDYgNy4xODc1IDE1LjA5MzggNy4xODc1SDEwLjc4MTJDMTAuMzg0NCA3LjE4NzUgMTAuMDYyNSA2Ljg2NTcgMTAuMDYyNSA2LjQ2ODc1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMuNTkzNzUgMEMxLjYwODk4IDAgMCAxLjYwODk4IDAgMy41OTM3NVYxNi41MzEyQzAgMTguNTE2IDEuNjA4OTggMjAuMTI1IDMuNTkzNzUgMjAuMTI1SDkuNDg3MDhDOS4yNTQyOSAxOS42Njk2IDkuMDY0MzYgMTkuMTg4NiA4LjkyMjYxIDE4LjY4NzVIMy41OTM3NUMyLjQwMjg4IDE4LjY4NzUgMS40Mzc1IDE3LjcyMjEgMS40Mzc1IDE2LjUzMTJWMy41OTM3NUMxLjQzNzUgMi40MDI4OCAyLjQwMjg4IDEuNDM3NSAzLjU5Mzc1IDEuNDM3NUgxNi41MzEyQzE3LjcyMjEgMS40Mzc1IDE4LjY4NzUgMi40MDI4OCAxOC42ODc1IDMuNTkzNzVWOC45MjI2MUMxOS4xODg2IDkuMDY0MzYgMTkuNjY5NiA5LjI1NDI5IDIwLjEyNSA5LjQ4NzA4VjMuNTkzNzVDMjAuMTI1IDEuNjA4OTggMTguNTE2IDAgMTYuNTMxMiAwSDMuNTkzNzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuNTMxMyAyM0MyMC4xMDM5IDIzIDIzIDIwLjEwMzkgMjMgMTYuNTMxM0MyMyAxMi45NTg2IDIwLjEwMzkgMTAuMDYyNSAxNi41MzEzIDEwLjA2MjVDMTIuOTU4NiAxMC4wNjI1IDEwLjA2MjUgMTIuOTU4NiAxMC4wNjI1IDE2LjUzMTNDMTAuMDYyNSAyMC4xMDM5IDEyLjk1ODYgMjMgMTYuNTMxMyAyM1pNMTYuNTMxMyAxMi45Mzc1QzE2LjkyODEgMTIuOTM3NSAxNy4yNSAxMy4yNTk0IDE3LjI1IDEzLjY1NjNWMTUuODEyNUgxOS40MDYzQzE5LjgwMzEgMTUuODEyNSAyMC4xMjUgMTYuMTM0NCAyMC4xMjUgMTYuNTMxM0MyMC4xMjUgMTYuOTI4MSAxOS44MDMxIDE3LjI1IDE5LjQwNjMgMTcuMjVIMTcuMjVWMTkuNDA2M0MxNy4yNSAxOS44MDMxIDE2LjkyODEgMjAuMTI1IDE2LjUzMTMgMjAuMTI1QzE2LjEzNDQgMjAuMTI1IDE1LjgxMjUgMTkuODAzMSAxNS44MTI1IDE5LjQwNjNWMTcuMjVIMTMuNjU2M0MxMy4yNTk0IDE3LjI1IDEyLjkzNzUgMTYuOTI4MSAxMi45Mzc1IDE2LjUzMTNDMTIuOTM3NSAxNi4xMzQ0IDEzLjI1OTQgMTUuODEyNSAxMy42NTYzIDE1LjgxMjVIMTUuODEyNVYxMy42NTYzQzE1LjgxMjUgMTMuMjU5NCAxNi4xMzQ0IDEyLjkzNzUgMTYuNTMxMyAxMi45Mzc1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yIG1zLTJcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnb25ldGltZScgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPbmUtdGltZScgOiAoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgfCB0aXRsZWNhc2UpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiA2VjEyTDE2IDE0TTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lLnN1YnN0cigtOCkgOiBjb25maWdEYXRhPy5vcGVuVGltZX19IHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZUVuZFRpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZS5zdWJzdHIoLTgpIDogY29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiAyVjZNOCAyVjZNMyAxMEgyMU01IDRIMTlDMjAuMTA0NiA0IDIxIDQuODk1NDMgMjEgNlYyMEMyMSAyMS4xMDQ2IDIwLjEwNDYgMjIgMTkgMjJINUMzLjg5NTQzIDIyIDMgMjEuMTA0NiAzIDIwVjZDMyA0Ljg5NTQzIDMuODk1NDMgNCA1IDRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTIgbXMtMlwiPjxzcGFuPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlfX08L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9PSAnJyAmJiBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZX19PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEwIGVkaXRxdWVzXCIgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpICYmICFkaXNhYmxlZFF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2F2ZWFuZHJlZGlyZWN0KG9iai5jaGVja0xpc3RJZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGFzaGVkIGJ0biBidG4tbGlnaHQgdXBsb2FkXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NjYgMi41MDA5QzE0Ljg4NTUgMi4yODIwMyAxNS4xNDUzIDIuMTA4NDIgMTUuNDMxMyAxLjk4OTk2QzE1LjcxNzMgMS44NzE1MSAxNi4wMjM4IDEuODEwNTUgMTYuMzMzMyAxLjgxMDU1QzE2LjY0MjggMS44MTA1NSAxNi45NDkzIDEuODcxNTEgMTcuMjM1MyAxLjk4OTk2QzE3LjUyMTMgMi4xMDg0MiAxNy43ODExIDIuMjgyMDMgMTggMi41MDA5QzE4LjIxODggMi43MTk3NyAxOC4zOTI0IDIuOTc5NjEgMTguNTEwOSAzLjI2NTU4QzE4LjYyOTQgMy41NTE1NCAxOC42OTAzIDMuODU4MDQgMTguNjkwMyA0LjE2NzU3QzE4LjY5MDMgNC40NzcxIDE4LjYyOTQgNC43ODM2IDE4LjUxMDkgNS4wNjk1NkMxOC4zOTI0IDUuMzU1NTMgMTguMjE4OCA1LjYxNTM3IDE4IDUuODM0MjRMNi43NDk5NiAxNy4wODQyTDIuMTY2NjMgMTguMzM0MkwzLjQxNjYzIDEzLjc1MDlMMTQuNjY2NiAyLjUwMDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+RWRpdCBRdWVzdGlvbnM8L3NwYW4+PC9hPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBteC00IHN1YlwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJteC00IG10LTQgc3ViXCI+aWYgdXNhZ2UgZXhjZWVkc1xyXG4gICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LnVzYWdlRXhjZWVkc319XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC00IHN1YlwiPlNlbmQgZW1haWwgZXZlcnlkYXkgdG88L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+RGV0ZWN0aW9uIEFyZWFzPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuICpuZ0Zvcj1cImxldCB6b25lIG9mIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmRldGVjdGlvbkFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBteC0yIG10LTQgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0bGFiZWwgZnMtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJraS1kdW90b25lIGtpLWFycm93LXVwIGNoZWNrbGlzdHRleHRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3pvbmV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC05XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggaC14bC0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPlNjaGVkdWxlPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTIgbXgtNFwiPkZyb208L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIiBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC00XCI+VG88L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTYgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNiBzdWJcIj5Gb3I8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlU2NoZWR1bGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwib25ldGltZVwiPkRvZXMgTm90IFJlcGVhdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwid2Vla2RheVwiPiBFdmVyeSBXZWVrZGF5IChNb24gLSBGcmkpPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYWlseVwiPkRhaWx5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrbHlcIj5XZWVrbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbnRobHlcIj5Nb250aGx5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyYW5nZVwiPkN1c3RvbSBSYW5nZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC0yXCI+QXQ8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zIG1zLTVcIj5FbmRzPC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVUaW1lKCdlbmQnKVwiIFsobmdNb2RlbCldPVwiZW5kVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5DaGVja2xpc3QgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sLWxnLTEyIGQtZmxleCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zXCI+T25jZSBPbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVzXCIgW2F1dG9BcHBseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2VTdGFydCgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInJhbmdlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBuZy12YWxpZCBuZy1kaXJ0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaG93UmFuZ2VWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAncmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVEYXRlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyYW5nZURhdGVcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2tsaXN0dGV4dCBtcy0yXCI+U2V0IGRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSByYW5nZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sLWxnLTEyIGQtZmxleCBtdC01XCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtM1wiPlN0YXJ0cyBmcm9tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJyA/ICdwcy0xMCcgOiAncHgtNCBwZS0zJ1wiIGlkPVwiZGF0ZWNsYXNzXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5TdGFydERhdGVcIiBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdGFydERhdGVcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZVN0YXJ0KCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC04IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+UmVwZWF0cyBldmVyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHggbmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjJcIiBtaW49XCIxXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZXBlYXREYXkoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBteC0yIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHggbmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZXBlYXRUeXBlXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9udFNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXknXCIgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnZGF5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5PbiBEYXk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnZGF5JyA/ICdkaXNhYmxlZCcgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RheSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoPVwiMlwiIChpbnB1dCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9udFNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXRlJ1wiIChjaGFuZ2UpPVwidXBkYXRlTW9udGgoJ2RhdGUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uIHRoZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb250aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj4gRmlyc3QgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPiBTZWNvbmQgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPiBUaGlyZDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj4gRm91cnRoPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPiBMYXN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBteC0yIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9udGhEYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlN1bmRheVwiPiBTdW5kYXkgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTW9uZGF5XCI+IE1vbmRheSA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUdWVzZGF5XCI+IFR1ZXNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJXZWRuZXNkYXlcIj4gV2VkbmVzZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiVGh1cnNkYXlcIj4gVGh1cnNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJGcmlkYXlcIj5GcmlkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTYXR1cmRheVwiPiBTYXR1cmRheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvbnRTaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImRheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnc3BlY2lmaWMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlTW9udGgoJ3NwZWNpZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5PbiBTcGVjaWZpYyBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlRHJvcERvd24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdzcGVjaWZpYydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgbWItMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGUgb2YgZGF0ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYnRuIHdlZWtzdHlsZWRhdGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy0zNXB4IHB5LTIgcHgtMyBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWREYXRlLmluY2x1ZGVzKGRhdGUpID8gJ2FjdGl2ZSBidG4tYWN0aXZlLXByaW1hcnknIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpbGxzdHlsZVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdERhdGUoKTtzaG93RHJvcERvd249IGZhbHNlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBweS0zIGJhZGdlLXNwZWNpZmljZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMyBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc3VibWl0dGVkRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxsIGJhZGdlLWxpZ2h0IGNoZWNrbGlzdHRleHQgbWUtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0RGF0ZVdpdGhTdWZmaXgoZGF0ZSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVCYWRnZShkYXRlKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDNMMyA5TTMgM0w5IDlcIiBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtcGlsbHMgZC1mbGV4IGZsZXgtbm93cmFwIG1iLTNcIiByb2xlPVwidGFibGlzdFwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCIgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3dlZWtseScgfHwgKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3dlZWtkYXknICYmICFbJ1N1bmRheScsJ1NhdHVyZGF5J10uaW5jbHVkZXMoZGF5KSkpID8gc2V0RGF5KGRheSkgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBidG4gd2Vla3N0eWxlIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWNlbnRlciByb3VuZGVkLXBpbGwgbWluLXctNDVweCBtZS0yIHB5LTQgcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3dlZWtkYXknICYmIFsnU3VuZGF5JywnU2F0dXJkYXknXS5pbmNsdWRlcyhkYXkpKSA/ICdjdXJzb3ItZGVmYXVsdCcgOiBzZWxlY3RlZERheXMuaW5jbHVkZXMoZGF5KSA/ICdzZWxlY3REYXknIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwidGFiXCIgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCIgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGlsbHN0eWxlXCI+e3sgZGF5WzBdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBuZy12YWxpZCBuZy1kaXJ0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzcGVjaWZpY1wiIChjaGFuZ2UpPVwidXBkYXRlU3BlY2lmaWMoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrbGlzdHRleHQgbXMtMlwiPk9uIFNwZWNpZmljXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTQgcGUtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0zMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBkcm9wZG93bi1pbnB1dCBwcy0xNFwiIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNwZWNpZmljXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiICpuZ0lmPVwic2hvd0Ryb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItbXVsdGktZGF0ZS1kYXRlcGlja2VyIChzZWxlY3RlZERhdGVzKT1cInNlbGVjdFNwZWNpZmljRGF0ZSgkZXZlbnQpXCIgW3ByZWRlZmluZWREYXRlc109XCJzZWxlY3RlZERhdGVMaXN0XCIgW3N0YXJ0RGF0ZV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlXCIgW2VuZERhdGVdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGVcIj48L2xpYi1tdWx0aS1kYXRlLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB5LTMgYmFkZ2Utc3BlY2lmaWNkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMyBtcy01IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc2VsZWN0ZWREYXRlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxsIGJhZGdlLWxpZ2h0IGNoZWNrbGlzdHRleHQgbWUtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlRGF0ZShkYXRlKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDNMMyA5TTMgM0w5IDlcIiBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFzaG93UmFuZ2VWYWx1ZSB8fCBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJyA/ICdtdC00JyA6ICdtdC0yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPkVuZHMgT248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgaWQ9XCJkYXRlY2xhc3NcIiBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAncHMtOScgOiAncHgtNCBwZS0zJ1wiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyPVwidHJ1ZVwiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyLW9wZW5zPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCIgW21pbkRhdGVdPVwibWluRW5kRGF0ZVwiIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRW5kRGF0ZVwiIFthdXRvQXBwbHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2VFbmQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHJlbW92ZSBjdXJzb3ItcG9pbnRlciBtcy00XCIgKGNsaWNrKT1cIm9uRGF0ZXBpY2tlclJlZnJlc2goKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSAhPT0gJycgJiYgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT09IG51bGwgJiYgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9PSdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5PY2N1cnMgb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRheSB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVEYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3dlZWtkYXknLCd3ZWVrbHknXS5pbmNsdWRlcyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlKVwiPk9jY3Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVyeSB7eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXk/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09JzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgOiAnJ319IHdlZWs8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09IDAxXCI+czwvc3Bhbj4gb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZERheXMudG9TdHJpbmcoKX19PHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ2RhaWx5J1wiPk9jY3VycyBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXk/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5IDogJyd9fSBkYXk8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09IDAxXCI+czwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZyB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIFwiPnVudGlsIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdtb250aGx5J1wiPk9jY3Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXk/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5IDogJyd9fSBtb250aDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAwMVwiPnMgPC9zcGFuPnt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXknKSA/ICgnb24gZGF5ICcgKyBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlaykgOiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF0ZScgPyB1cGRhdGVNb250aFZhbHVlKCk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNwZWNpZmljVmFsdWUoKX19PHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZyB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5PY2N1cnMgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXM/LnRvU3RyaW5nKCl9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZyB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRcIiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5SZXNwb25zZSBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY29uZmlnYWNjb3JkaWFuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3djb25maWd9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3djb25maWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnb25ldGltZScsJ2RhaWx5J10uaW5jbHVkZXMoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSkgfHwgKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdtb250aGx5JyAmJiAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0nc3BlY2lmaWMnKSA/ICdiZy1jb2xvci1kaXNhYmxlZCcgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dPbmNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93T25jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwib25lVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiWydvbmV0aW1lJywnZGFpbHknXS5pbmNsdWRlcyhjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKSB8fCAoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknICYmICBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSdzcGVjaWZpYycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIiBmb3I9XCJvbmVUaW1lXCI+T25seSBvbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCIgZm9yPVwib25lVGltZVwiPkJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGluZyB0aGlzLCB0aGUgcmVzcG9uc2UgY2FuIGJlIGNhcHR1cmVkIG9ubHkgb25jZSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgY2hlY2tsaXN0IDxzcGFuICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj5mcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlfX0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZVwiPnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGV9fS48L3NwYW4+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIiBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkT3ZlclRpbWUgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRPdmVyVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmaWxsUmVzcG9uc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpbGxSZXNwb25zZVwiPkZpbGwgcmVzcG9uc2UgYWZ0ZXIgY29uZmlndXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS48L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWxsUmVzcG9uc2VcIj5CeSBlbmFibGluZywgdGhlIHVzZXIgY2FuIGZpbGwgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0IGV2ZW4gYWZ0ZXIgdGhlIGFib3ZlIGNvbmZpZ3VyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtdGltZS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dlZFN0b3JlTG9jYXRpb24gPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZFN0b3JlTG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImdlb0ZlbmNpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiIGZvcj1cImdlb0ZlbmNpbmdcIj5HZW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlbmNpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCIgZm9yPVwiZ2VvRmVuY2luZ1wiPkJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGluZywgdGhlIGNoZWNrbGlzdCBjYW4gYmUgZmlsbGVkIGJ5IHRoZSB1c2VyIG9ubHkgd2hlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zaWRlIHRoZSBzdG9yZS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkTXVsdGlTdWJtaXQgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZE11bHRpU3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhbGxvd2VkTXVsdGlTdWJtaXRTd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJhbGxvd2VkTXVsdGlTdWJtaXRTd2l0Y2hcIj5BbGxvdyBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPkJ5IGVuYWJsaW5nLCB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgZmlsbGVkIG11bHRpcGxlIHRpbWVzIGluIGEgZGF5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkFkdmFuY2UgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImFkdmFuY2VhY2NvcmRpYW4oKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3dhZHZhbmNlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93YWR2YW5jZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q2hlY2tsaXN0IE93bmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93bmVycyBnZXQgYWNjZXNzIHRvIG1hbmFnZSB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Q2FuIGJlIG1hbmFnZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlT3duZXIoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFwcHJvdmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXI/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZVwiIFsobmdNb2RlbCldPVwiYXBwcm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJhcHByb3ZlclwiIChjaGFuZ2UpPVwidXBkYXRlQ29uZmlnQXBwcm92ZXIoJGV2ZW50KVwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IGVuYWJsaW5nLCB0aGUgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIGFwcHJvdmUgdGhlIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cImFwcHJvdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPlRvIGJlIGFwcHJvdmVkIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXJcIiAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUFwcHJvdmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZW1pbmRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiIFsobmdNb2RlbCldPVwicmVtYWluZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm9uZVRpbWVcIiAoY2hhbmdlKT1cInVwZGF0ZUNvbmZpZ1JlbWFpbmRlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIHJlbWluZGVkIGluIHRoZSBzZWxlY3RlZCBpbnRlcnZhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cInJlbWFpbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Tm90aWZ5IHVzZXIgYmVmb3JlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0yMDBweCAsXCIgKm5nRm9yPVwibGV0IGxvb3Agb2YgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdGb3I9XCJsZXQgbG9vcCBvZiB0aW1lTG9vcFwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ4N180NzYzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDEzIDUuMDAwMzNWMTAuMDAwM0wxMy4zMzQ2IDExLjY2N00xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNDg3XzQ3NjM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBwcy0xNCBtZS01XCIgKGNoYW5nZSk9XCJ1cGRhdGVSZW1haW5kZXIoJGV2ZW50LGkpXCIgIFtpZF09XCIncmVtYWluZGVyJysgaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgdXBkYXRlVGltZUxvb3AoaSlcIiBjbGFzcz1cImgtMjAwcHhcIiBbc2VsZWN0ZWRdPVwibG9vcCA9PT0gdGltZVwiIFt2YWx1ZV09XCJ0aW1lXCI+e3t0aW1lfX0gbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGggPCAzXCIgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cInVwZGF0ZUxvb3AoKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2Njk5VjE1LjgzMzdNNC4xNjc5NyAxMC4wMDAzSDE1LjgzNDZcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZW1haW5kZXJcIiBjbGFzcz1cIm10LTIgdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyBhdCBldmVyeSA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyO2xldCBpPWluZGV4XCI+PHNwYW4gKm5nSWY9XCJpICE9PSBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmxlbmd0aC0xICYmIGkgIT09IDBcIj4gLDwvc3Bhbj48c3BhbiAqbmdJZj1cImkgPT09IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoLTEgJiYgaSAhPT0gMFwiPiBhbmQ8L3NwYW4+IHt7aXRlbX19IE1pbnMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc3RvcmVvcGVuYW5kY2xvc2UnLCdleWV0ZXN0J10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cIm10LTYgbXgtNCBzdWJcIj5TdG9yZSBvcGVucyBhdCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8ub3BlblRpbWV9fTwvdT48L3NwYW4+IGFuZCBjbG9zZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA8c3BhbiBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3U+PC9zcGFuPiwgZXZlcnlkYXkuIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3VuYXR0ZW5kZWQnXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZSB0YWtlbiB0byBhc3Npc3QgYnkgc3RhZmYgJmx0Oz0gMSBtaW5zIHwgU3RhZmYgdG8gY3VzdG9tZXIgdGltZSBzcGVudCAmbHQ7PTEgbWluc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3RvcmUgb3BlbnMgYXQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/Lm9wZW5UaW1lfX08L3U+PC9zcGFuPiBhbmQgY2xvc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPHNwYW4gY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/LmNsb3NlVGltZX19PC91Pjwvc3Bhbj4sIGV2ZXJ5ZGF5LiA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSdjdXN0b20nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ3N0b3Jlb3BlbmFuZGNsb3NlJywnZXlldGVzdCddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPkFsZXJ0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQudXNhZ2VFeGNlZWRzXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIyXCIgbWF4bGVuZ3RoPVwiM1wiIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHVzYWdlZXJyb3JcIiAqbmdJZj1cImVycm9ybXNnXCI+UGxlYXNlIGVudGVyIGV2ZW50IGNvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmV0d2VlbiAxNSB0byA5OTk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCd1bmF0dGVuZGVkJywncGFja2FnZUNvbmZpZ3VyYXRpb24nXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+U2VuZCBBbGVydCB0byA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUb1wiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj5EZXRlY3Rpb24gQXJlYXM8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9oMj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+IERldGVjdCBtb2JpbGUgdXNhZ2UgZXhjZXB0IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cInpvbmVMaXN0XCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZGV0ZWN0aW9uQXJlYVwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlWm9uZSgkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPnt7dHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyA/ICdUbyBiZSBBY2tub3dsZWRnZWQgYnknIDogJ0FwcHJvdmVyJ319PC9oMj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbXQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkJ5IGVuYWJsaW5nLCB0aGUgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIGFja25vd2xlZGdlIHRoZSBjaGVja2xpc3Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG10LTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNCBzdWJcIj5JZiB1c2FnZSBleGNlZWRzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LnVzYWdlRXhjZWVkc1wiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ2YWxpZGF0ZUxpbWl0KCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciB1c2FnZWVycm9yXCIgKm5nSWY9XCJlcnJvcm1zZ1wiPlBsZWFzZSBlbnRlciBldmVudCBjb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJldHdlZW4gMTUgdG8gOTk5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG14LTRcIj5UbyBiZSBhcHByb3ZlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXJcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZURhdGEubGVuZ3RoICYmICF0YWJsZUZpbHRlci5sZW5ndGggJiYgc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+QXNzaWduPHNwYW4gY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwiYWRkU3RvcmVDb21wb25lbnQoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjcmVhdGVidXR0b25zIHB4LTQgbmctc3Rhci1pbnNlcnRlZCBtdC04XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiB0YWJpbmRleD1cIjBcIj48c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDAxIDQuMTY2MDJWMTUuODMyN000LjE2Njc1IDkuOTk5MzVIMTUuODMzNFwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZVwiPkFkZCBTdG9yZTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYi02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBhc3NpZ25wYWRkaW5nIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRwYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xNFwiPjxzdmcgY2xhc3M9XCJteC0yMCBtdC0xMlwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yNS4wOSAyNUMyNS4zMjUxIDI0LjMzMTcgMjUuNzg5MiAyMy43NjgxIDI2LjQgMjMuNDA5MUMyNy4wMTA4IDIzLjA1MDIgMjcuNzI4OSAyMi45MTg5IDI4LjQyNzIgMjMuMDM4N0MyOS4xMjU1IDIzLjE1ODUgMjkuNzU4OCAyMy41MjE1IDMwLjIxNTEgMjQuMDYzNUMzMC42NzEzIDI0LjYwNTUgMzAuOTIxMSAyNS4yOTE1IDMwLjkyIDI2QzMwLjkyIDI4IDI3LjkyIDI5IDI3LjkyIDI5TTI4IDMzSDI4LjAxTTM4IDI4QzM4IDMzLjUyMjggMzMuNTIyOCAzOCAyOCAzOEMyMi40NzcyIDM4IDE4IDMzLjUyMjggMTggMjhDMTggMjIuNDc3MiAyMi40NzcyIDE4IDI4IDE4QzMzLjUyMjggMTggMzggMjIuNDc3MiAzOCAyOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtNiBteC0xMFwiPlVwbG9hZCB0byBhc3NpZ24gdXNlcnM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInN1YnRleHQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q2xpY2sg4oCcRG93bmxvYWQgVGVtcGxhdGXigJ08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IEFkZCB5b3VyIGRhdGEgdG8gdGhlIHRlbXBsYXRlIGZpbGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IFVwbG9hZCBpdCBiZWxvdyB0byBhc3NpZ24gdXNlcnM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICN1cGxvYWQgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHJldXBsb2FkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibWItMiBteC0xXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDE5IDE5XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4IDEyLjVWMTUuODMzM0MxOCAxNi4yNzU0IDE3LjgyNDQgMTYuNjk5MyAxNy41MTE4IDE3LjAxMThDMTcuMTk5MyAxNy4zMjQ0IDE2Ljc3NTQgMTcuNSAxNi4zMzMzIDE3LjVINC42NjY2N0M0LjIyNDY0IDE3LjUgMy44MDA3MiAxNy4zMjQ0IDMuNDg4MTYgMTcuMDExOEMzLjE3NTU5IDE2LjY5OTMgMyAxNi4yNzU0IDMgMTUuODMzM1YxMi41TTE0LjY2NjcgNi42NjY2N0wxMC41IDIuNU0xMC41IDIuNUw2LjMzMzMzIDYuNjY2NjdNMTAuNSAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJldXBsb2FkdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgdHlwZT1cImZpbGVcIiAjZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCIgKGNoYW5nZSk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tbGlnaHQtcHJpbWFyeSBkb3dubG9hZFwiIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5XCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1iLTFcIiB3aWR0aD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU01LjgzMzMzIDguMzMzMzNMMTAgMTIuNU0xMCAxMi41TDE0LjE2NjcgOC4zMzMzM00xMCAxMi41VjIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJkb3dubG9hZHRleHRcIj5Eb3dubG9hZCBUZW1wbGF0ZTwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiAqbmdJZj1cInRhYmxlRGF0YS5sZW5ndGggfHwgdGFibGVGaWx0ZXIubGVuZ3RoIHx8ICFzaG93SW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC02XCIgKm5nSWY9XCIhc2hvd0ltYWdlIHx8IHRhYmxlRGF0YS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkFzc2lnbjxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjVcIiB4PVwiMTcuMDM2NVwiIHk9XCIxNS4xMjIzXCIgd2lkdGg9XCI4LjE1NTQ2XCIgaGVpZ2h0PVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeD1cIjFcIiB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGF0YS1rdC1zdWJzY3JpcHRpb24tdGFibGUtZmlsdGVyPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaFRhYmxlRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJ0YWJsZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNDAwcHggcHMtMTQgbXgtMSBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBTdG9yZSBuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS10b29sYmFyPVwiYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJhZGRTdG9yZUNvbXBvbmVudCgpXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNyZWF0ZWJ1dHRvbnMgcHgtNCBuZy1zdGFyLWluc2VydGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiIHRhYmluZGV4PVwiMFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAwMSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY3NSA5Ljk5OTM1SDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwiY3JlYXRlXCI+QWRkIFN0b3JlPC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCIgKm5nSWY9XCIhdGFibGVEYXRhLmxlbmd0aCAmJiAhc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbXktOCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHVzZXJzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHktc29wIHB0LTAgbXgtNFwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3BUYWJsZSB0YWJsZS1yZXNwb25zaXZlIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4XCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImZsYWdcIiAoY2hhbmdlKT1cImNoZWNrQWxsKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RBbGxcIj4gPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG14LTQgbGluZS1oZWlnaHRcIiA+U3RvcmVOYW1lPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Bc3NpZ25lZCBUbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+RW1haWwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGFibGVEYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggdXNlckZsYWdcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZsYWcoJGV2ZW50LGksZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhkYXRhPy5pZClcIiAvPjxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBteC00IGxpbmUtaGVpZ2h0XCI+e3tkYXRhLnN0b3JlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyTmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnVzZXJFbWFpbH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJzaXplXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRWYWx1ZVwiIFt0b3RhbEl0ZW1zXT1cInJlY29yZHNUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZVwiIFtwYWdlU2l6ZV09XCJzaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIiAqbmdJZj1cIiF0YWJsZUxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTYgYXNzaWducGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJSZXVwbG9hZCgpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcmV1cGxvYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJldXBsb2FkXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm1iLTIgbXgtMVwiIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDE5IDE5XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV1cGxvYWR0ZXh0XCIgKm5nSWY9XCIhcmV1cGxvYWRcIj5SZXVwbG9hZCBUZW1wbGF0ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZmlsZTEuY2xpY2soKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHJldXBsb2FkXCIgKm5nSWY9XCJyZXVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXVwbG9hZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIG14LTFcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDE5IDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTggMTIuNVYxNS44MzMzQzE4IDE2LjI3NTQgMTcuODI0NCAxNi42OTkzIDE3LjUxMTggMTcuMDExOEMxNy4xOTkzIDE3LjMyNDQgMTYuNzc1NCAxNy41IDE2LjMzMzMgMTcuNUg0LjY2NjY3QzQuMjI0NjQgMTcuNSAzLjgwMDcyIDE3LjMyNDQgMy40ODgxNiAxNy4wMTE4QzMuMTc1NTkgMTYuNjk5MyAzIDE2LjI3NTQgMyAxNS44MzMzVjEyLjVNMTQuNjY2NyA2LjY2NjY3TDEwLjUgMi41TTEwLjUgMi41TDYuMzMzMzMgNi42NjY2N00xMC41IDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJldXBsb2FkdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXVwbG9hZCBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiICNmaWxlMSB0eXBlPVwiZmlsZVwiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWxpZ2h0LXByaW1hcnkgZG93bmxvYWRcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMVwiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJkb3dubG9hZHRleHRcIj5Eb3dubG9hZCBUaGlzIENTVjwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3cgZm9vdGVyMSBtdC0xMCBteC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXJrIGZvb3RlcnRleHQgbWUtMVwiPk5lZWQgaGVscD88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInRleHQtcHJpbWFyeSBmb290ZXJ0ZXh0IHRleHQtaG92ZXItcHJpbWFyeVwiPjx1PldhdGNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBWaWRlbyBUdXRvcmlhbDwvdT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|