tango-app-ui-manage-settings 3.7.30 → 3.7.32
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/activity-logs/activity-logs.component.mjs +7 -1
- package/esm2022/lib/components/configurations/report-configuration/custom-report-schedule/custom-report-schedule.component.mjs +3 -3
- package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +5 -5
- package/fesm2022/tango-app-ui-manage-settings.mjs +12 -6
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -189,6 +189,12 @@ export class ActivityLogsComponent {
|
|
|
189
189
|
text: 'Zone',
|
|
190
190
|
id: 'zone'
|
|
191
191
|
},
|
|
192
|
+
{
|
|
193
|
+
// Custom report create/update/schedule/delete entries (logType 'report',
|
|
194
|
+
// written by retail-analysis-report-api-v3's customReportActivityLog).
|
|
195
|
+
text: 'Report',
|
|
196
|
+
id: 'report'
|
|
197
|
+
},
|
|
192
198
|
{
|
|
193
199
|
text: 'Angle Change',
|
|
194
200
|
id: 'angleChange'
|
|
@@ -414,4 +420,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
414
420
|
type: HostListener,
|
|
415
421
|
args: ['document:click', ['$event']]
|
|
416
422
|
}] } });
|
|
417
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBRzlHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBQzNDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU92QixNQUFNLE9BQU8scUJBQXFCO0lBaU1aO0lBQXNDO0lBQStCO0lBL0x6RixLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsY0FBYyxDQUFNO0lBQ3BCLDhFQUE4RTtJQUM5RSx3RUFBd0U7SUFDeEUsWUFBWSxHQUFVLEVBQUUsQ0FBQyxDQUFVLHNDQUFzQztJQUN6RSxvQkFBb0IsR0FBVSxFQUFFLENBQUMsQ0FBRSx1QkFBdUI7SUFDMUQsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLGlCQUFpQixHQUFXLEVBQUUsQ0FBQztJQUMvQixpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFFbkMsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzFCO1FBQ0QscURBQXFEO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBaUI7UUFDbkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSTtZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQVksR0FBRyxFQUFFLENBQUE7SUFDakIsV0FBVyxHQUFHLENBQUMsQ0FBQTtJQUNmLFVBQVUsR0FBRyxDQUFDLENBQUE7SUFDZCxlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlCLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDYixpQkFBaUIsR0FBUTtRQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO0tBQ3RCLENBQUM7SUFDRixVQUFVLEdBQVEsRUFBRSxDQUFBO0lBQ3BCLGNBQWMsQ0FBSztJQUNGLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFFBQVEsQ0FBUztJQUNqQixPQUFPLENBQU07SUFDYixlQUFlLEdBQVcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDekUsYUFBYSxHQUFVLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3JFLFdBQVcsR0FBVyxLQUFLLENBQUE7SUFDM0IsVUFBVSxHQUFHLElBQUksZUFBZSxDQUF1QixTQUFTLENBQUMsQ0FBQztJQUNsRSxPQUFPLEdBQUc7UUFDUjtZQUNFLEtBQUssRUFBQyxlQUFlO1lBQ3JCLEVBQUUsRUFBQyxjQUFjO1lBQ2pCLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBQyxlQUFlO1lBQ3JCLEVBQUUsRUFBQyxlQUFlO1lBQ2xCLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBQyxXQUFXO1lBQ2pCLEVBQUUsRUFBQyxXQUFXO1lBQ2QsU0FBUyxFQUFDLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFDLFFBQVE7WUFDZCxFQUFFLEVBQUMsUUFBUTtZQUNYLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBQyxVQUFVO1lBQ2hCLEVBQUUsRUFBQyxTQUFTO1lBQ1osU0FBUyxFQUFDLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFDLE9BQU87WUFDYixFQUFFLEVBQUMsT0FBTztZQUNWLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBQyxjQUFjO1lBQ3BCLEVBQUUsRUFBQyxjQUFjO1lBQ2pCLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBQyxTQUFTO1lBQ2YsRUFBRSxFQUFDLFNBQVM7WUFDWixTQUFTLEVBQUMsSUFBSTtTQUNmO1FBQ0Q7WUFDRSxLQUFLLEVBQUMsU0FBUztZQUNmLEVBQUUsRUFBQyxTQUFTO1lBQ1osU0FBUyxFQUFDLElBQUk7U0FDZjtRQUNEO1lBQ0UsSUFBSSxFQUFDLFFBQVE7WUFDYixFQUFFLEVBQUMsU0FBUztZQUNaLFNBQVMsRUFBQyxJQUFJO1NBQ2Y7UUFDRDtZQUNFLElBQUksRUFBQyxNQUFNO1lBQ1gsRUFBRSxFQUFDLE1BQU07WUFDVCxTQUFTLEVBQUMsSUFBSTtTQUNmO0tBQ0YsQ0FBQTtJQUNELFVBQVUsR0FBUTtRQUNoQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFDLENBQUM7b0JBQ3BDLElBQUksRUFBQyxlQUFlO29CQUNwQixFQUFFLEVBQUMsY0FBYztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLGVBQWU7b0JBQ3BCLEVBQUUsRUFBQyxlQUFlO2lCQUNuQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUMsV0FBVztvQkFDaEIsRUFBRSxFQUFDLFdBQVc7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLFFBQVE7b0JBQ2IsRUFBRSxFQUFDLFFBQVE7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLFFBQVE7b0JBQ2IsRUFBRSxFQUFDLFNBQVM7aUJBQ2I7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLFVBQVU7b0JBQ2YsRUFBRSxFQUFDLFNBQVM7aUJBQ2I7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLE9BQU87b0JBQ1osRUFBRSxFQUFDLE9BQU87aUJBQ1g7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLE9BQU87b0JBQ1osRUFBRSxFQUFDLE9BQU87aUJBQ1g7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFDLGNBQWM7b0JBQ25CLEVBQUUsRUFBQyxjQUFjO2lCQUNsQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUMsU0FBUztvQkFDZCxFQUFFLEVBQUMsU0FBUztpQkFDYjtnQkFDRDtvQkFDRSxJQUFJLEVBQUMsU0FBUztvQkFDZCxFQUFFLEVBQUMsU0FBUztpQkFDYjtnQkFDRDtvQkFDRSxJQUFJLEVBQUMsTUFBTTtvQkFDWCxFQUFFLEVBQUMsTUFBTTtpQkFDVjtnQkFDRDtvQkFDRSxJQUFJLEVBQUMsY0FBYztvQkFDbkIsRUFBRSxFQUFDLGFBQWE7aUJBQ2pCO2FBQ0YsRUFBQztLQUNELENBQUE7SUFDRCx5RUFBeUU7SUFDekUsV0FBVyxHQUFRLElBQUksQ0FBQztJQUV4QixnQkFBZ0IsQ0FBQyxJQUFTLEVBQUUsR0FBUTtRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxZQUFvQixVQUE0QixFQUFVLEVBQXFCLEVBQVUsWUFBc0I7UUFBM0YsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQzdHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7Z0JBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFBO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFBO2dCQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtnQkFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkYsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixzRUFBc0U7Z0JBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUU3QixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsRUFBRSxTQUFTLElBQUksT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDL0IsSUFBSSxPQUFPLEdBQXdCO1lBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRyxJQUFJLENBQUMsY0FBYztTQUNyQyxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQ3ZFO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUN4QztRQUVELGdEQUFnRDtRQUNoRCw4REFBOEQ7UUFDOUQsSUFBSTtRQUVKLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLGFBQWEsRUFBRTtZQUNqQixNQUFNLFlBQVksR0FBd0I7Z0JBQ3hDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDekIsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUFFO1lBQzdFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQUU7WUFDakgsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFBRTtZQUMzRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzFCLENBQUM7YUFDRixDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsb0RBQW9EO1NBQzdEO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2pELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUM5QixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO29CQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO29CQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO29CQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtvQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUE7b0JBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3hCO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtZQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3RFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDbEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1NBQ3ZCO0lBRUgsQ0FBQztJQUVELE1BQU0sR0FBUTtRQUNaLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0UsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdELFdBQVcsRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUMvQztRQUNELFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixZQUFZLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDakQ7S0FDRixDQUFDO0lBR0YsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBQzdCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUV4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUE7UUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDaEUsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLGVBQXVCO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRixDQUFDO0lBR0Qsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVBLGFBQWEsQ0FBQyxPQUFXO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRyxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVM7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLGFBQWEsRUFBRTtvQkFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRTtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtRQUNwQixJQUFJLE9BQU8sR0FBd0I7WUFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFHLElBQUksQ0FBQyxjQUFjO1NBQ3JDLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUE7U0FDM0U7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7U0FDdkU7UUFFQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDMUIsQ0FBQzt3R0ExWlkscUJBQXFCOzRGQUFyQixxQkFBcUIsdUhDakJsQyx5N1pBd0xBOzs0RkR2S2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs0SUFpQjdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IFwiZGF5anMvbG9jYWxlL2VuXCI7XHJcbmltcG9ydCB1dGMgZnJvbSBcImRheWpzL3BsdWdpbi91dGNcIjtcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gXCJkYXlqcy9wbHVnaW4vdGltZXpvbmVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2aXR5LWxvZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS1sb2dzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aXZpdHktbG9ncy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIGRheWpzID0gZGF5anNcclxuICBmaWx0ZXJCeVN0YXR1czogYW55O1xyXG4gIC8vIC0tLS0tIFNlbGYtY29udGFpbmVkIHN0b3JlIGZpbHRlciAoc2VhcmNoYWJsZSBzaW5nbGUtc2VsZWN0KS4gS2VwdCBsb2NhbCB0b1xyXG4gIC8vIHRoaXMgY29tcG9uZW50IHNvIGl0IGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgc2hhcmVkIGxpYi1maWx0ZXJzLiAtLS0tLVxyXG4gIHN0b3JlT3B0aW9uczogYW55W10gPSBbXTsgICAgICAgICAgLy8gZnVsbCBsaXN0OiBbeyBzdG9yZUlkLCBzdG9yZU5hbWUgfV1cclxuICBmaWx0ZXJlZFN0b3JlT3B0aW9uczogYW55W10gPSBbXTsgIC8vIHNlYXJjaC1maWx0ZXJlZCB2aWV3XHJcbiAgc3RvcmVTZWFyY2g6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkU3RvcmVJZDogc3RyaW5nID0gJyc7XHJcbiAgc2VsZWN0ZWRTdG9yZU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHN0b3JlRHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENsb3NlIHRoZSBzdG9yZSBkcm9wZG93biB3aGVuIGNsaWNraW5nIG91dHNpZGUgaXQuXHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuc3RvcmUtZmlsdGVyJykpIHtcclxuICAgICAgdGhpcy5zdG9yZURyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlU3RvcmVEcm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnN0b3JlRHJvcGRvd25PcGVuID0gIXRoaXMuc3RvcmVEcm9wZG93bk9wZW47XHJcbiAgfVxyXG5cclxuICBvblN0b3JlU2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHRlcm0gPSAoZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgJycpLnRyaW0oKTtcclxuICAgIHRoaXMuc3RvcmVTZWFyY2ggPSB0ZXJtO1xyXG4gICAgdGhpcy5maWx0ZXJlZFN0b3JlT3B0aW9ucyA9IHRlcm1cclxuICAgICAgPyB0aGlzLnN0b3JlT3B0aW9ucy5maWx0ZXIoKHMpID0+IG5ldyBSZWdFeHAodGVybSwgJ2knKS50ZXN0KHMuc3RvcmVOYW1lIHx8ICcnKSlcclxuICAgICAgOiB0aGlzLnN0b3JlT3B0aW9ucy5zbGljZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3RvcmUoc3RvcmU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlSWQgPSBzdG9yZT8uc3RvcmVJZCB8fCAnJztcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSBzdG9yZT8uc3RvcmVOYW1lIHx8ICcnO1xyXG4gICAgdGhpcy5zdG9yZURyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTdG9yZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmVJZCA9ICcnO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlTmFtZSA9ICcnO1xyXG4gICAgdGhpcy5zdG9yZVNlYXJjaCA9ICcnO1xyXG4gICAgdGhpcy5maWx0ZXJlZFN0b3JlT3B0aW9ucyA9IHRoaXMuc3RvcmVPcHRpb25zLnNsaWNlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKCk7XHJcbiAgfVxyXG5cclxuICBpdGVtc1BlclBhZ2UgPSAxMFxyXG4gIGN1cnJlbnRQYWdlID0gMVxyXG4gIHRvdGFsSXRlbXMgPSAwXHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdXHJcbiAgcGFnZVNpemUgPSAxMFxyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7XHJcbiAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgzMCwgXCJkYXlzXCIpLFxyXG4gICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpXHJcbiAgfTtcclxuICBjbGllbnRMaXN0OiBhbnkgPSBbXVxyXG4gIHNlbGVjdGVkQ2xpZW50OiBhbnlcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG4gIGxvZ0xpc3Q6IGFueTtcclxuICBmaWx0ZXJTdGFydERhdGU6IHN0cmluZyA9IHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgzMCwgXCJkYXlzXCIpLnRvSVNPU3RyaW5nKClcclxuICBmaWx0ZXJFbmREYXRlOiBzdHJpbmcgPXRoaXMuZGF5anMoKS5zdWJ0cmFjdCgwLCBcImRheXNcIikudG9JU09TdHJpbmcoKVxyXG4gIHNob3dGaWx0ZXJzOmJvb2xlYW4gPSBmYWxzZVxyXG4gIHBhZ2VTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdsb2FkZWQnIHwgJ2xvYWRpbmcnPignbG9hZGluZycpO1xyXG4gIGZpbHRlcnMgPSBbXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidCcmFuZCBkZXRhaWxzJyxcclxuICAgICAgaWQ6J2JyYW5kRGV0YWlscycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonQ29uZmlndXJhdGlvbicsXHJcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidEb2N1bWVudHMnLFxyXG4gICAgICBpZDonZG9jdW1lbnRzJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidTdG9yZXMnLFxyXG4gICAgICBpZDonc3RvcmVzJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sICAgXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidDbHVzdGVycycsXHJcbiAgICAgIGlkOidjbHVzdGVyJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidUZWFtcycsXHJcbiAgICAgIGlkOid0ZWFtcycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonU3Vic2NyaXB0aW9uJyxcclxuICAgICAgaWQ6J3N1YnNjcmlwdGlvbicsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonSW52b2ljZScsXHJcbiAgICAgIGlkOidpbnZvaWNlJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidCaWxsaW5nJyxcclxuICAgICAgaWQ6J2JpbGxpbmcnLFxyXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonQ2FtZXJhJyxcclxuICAgICAgaWQ6J2NhbWVyYXMnLFxyXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonWm9uZScsXHJcbiAgICAgIGlkOid6b25lJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgXVxyXG4gIGRhdGFPYmplY3Q6IGFueSA9IFtcclxuICAgIHsgRGVzY3JpcHRpb246ICdTdGF0dXMgTG9ncycsIElzc3Vlczpbe1xyXG4gICAgICB0ZXh0OidCcmFuZCBkZXRhaWxzJyxcclxuICAgICAgaWQ6J2JyYW5kRGV0YWlscycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidDb25maWd1cmF0aW9uJyxcclxuICAgICAgaWQ6J2NvbmZpZ3VyYXRpb24nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonRG9jdW1lbnRzJyxcclxuICAgICAgaWQ6J2RvY3VtZW50cycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidTdG9yZXMnLFxyXG4gICAgICBpZDonc3RvcmVzJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0NhbWVyYScsXHJcbiAgICAgIGlkOidjYW1lcmFzJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0NsdXN0ZXJzJyxcclxuICAgICAgaWQ6J2NsdXN0ZXInLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonVXNlcnMnLFxyXG4gICAgICBpZDondXNlcnMnLCBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J1RlYW1zJyxcclxuICAgICAgaWQ6J3RlYW1zJywgXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidTdWJzY3JpcHRpb24nLFxyXG4gICAgICBpZDonc3Vic2NyaXB0aW9uJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonSW52b2ljZScsXHJcbiAgICAgIGlkOidpbnZvaWNlJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonQmlsbGluZycsXHJcbiAgICAgIGlkOidiaWxsaW5nJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonWm9uZScsXHJcbiAgICAgIGlkOid6b25lJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonQW5nbGUgQ2hhbmdlJyxcclxuICAgICAgaWQ6J2FuZ2xlQ2hhbmdlJ1xyXG4gICAgfSxcclxuICBdfVxyXG4gIF1cclxuICAvLyBBbmdsZS1jaGFuZ2UgaW1hZ2UgcHJldmlldyAob3BlbmVkIGZyb20gdGhlIGV5ZSBpY29uIG9uIGFuIGFuZ2xlIHJvdykuXG4gIHByZXZpZXdJdGVtOiBhbnkgPSBudWxsO1xuXG4gIG9wZW5BbmdsZVByZXZpZXcoaXRlbTogYW55LCB0cGw6IGFueSkge1xuICAgIHRoaXMucHJldmlld0l0ZW0gPSBpdGVtO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odHBsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50SWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlSWQgPSAnJ1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSAnJ1xyXG4gICAgICAgIHRoaXMuc3RvcmVTZWFyY2ggPSAnJ1xyXG4gICAgICAgIHRoaXMubG9hZFN0b3Jlc0ZvckZpbHRlcigpXHJcbiAgICAgICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbG9hZFN0b3Jlc0ZvckZpbHRlcigpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRTdG9yZUxpc3QodGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RvcmVPcHRpb25zID0gcmVzPy5kYXRhPy5yZXN1bHQgfHwgW107XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZFN0b3JlT3B0aW9ucyA9IHRoaXMuc3RvcmVPcHRpb25zLnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgLy8gU3RvcmUgbGlzdCB1bmF2YWlsYWJsZSDihpIgZW1wdHkgb3B0aW9uczsgbG9ncyBzdGlsbCBsb2FkIHVuZmlsdGVyZWQuXHJcbiAgICAgICAgdGhpcy5zdG9yZU9wdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkU3RvcmVPcHRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5wYWdlU3RhdGUkLmNvbXBsZXRlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgc3RvcmVOYW1lQnlJZChzdG9yZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcyA9ICh0aGlzLnN0b3JlT3B0aW9ucyB8fCBbXSkuZmluZCgoeDogYW55KSA9PiB4LnN0b3JlSWQgPT09IHN0b3JlSWQpO1xyXG4gICAgcmV0dXJuIHM/LnN0b3JlTmFtZSB8fCBzdG9yZUlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZpdHlMb2dzKCkge1xyXG4gICAgY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUoJ2VuLVVTJyk7XHJcbiAgICB0aGlzLnBhZ2VTdGF0ZSQubmV4dCgnbG9hZGluZycpXHJcbiAgICBsZXQgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcclxuICAgICAgbGltaXQ6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIG9mZnNldDogdGhpcy5jdXJyZW50UGFnZSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGxvZ1R5cGVGaWx0ZXJzIDogdGhpcy5maWx0ZXJCeVN0YXR1cyxcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlclN0YXJ0RGF0ZSkge1xyXG4gICAgICBmaWx0ZXJzLnN0YXJ0RGF0ZSA9IGRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbHRlclN0YXJ0RGF0ZSwgJ3l5eXktTU0tZGQnKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVyRW5kRGF0ZSkge1xyXG4gICAgICBmaWx0ZXJzLmVuZERhdGUgPSBkYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5maWx0ZXJFbmREYXRlLCAneXl5eS1NTS1kZCcpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFN0b3JlSWQpIHtcclxuICAgICAgZmlsdGVycy5zdG9yZUlkID0gdGhpcy5zZWxlY3RlZFN0b3JlSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYodGhpcy5nZXRDaGVja2VkSWRzKHRoaXMuZmlsdGVycyk/Lmxlbmd0aCl7XHJcbiAgICAvLyAgIGZpbHRlcnMubG9nVHlwZUZpbHRlcnMgPSB0aGlzLmdldENoZWNrZWRJZHModGhpcy5maWx0ZXJzKVxyXG4gICAgLy8gfVxyXG5cclxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5maWx0ZXJCeVN0YXR1cyB8fCBbXTtcclxuICAgIGNvbnN0IGlzQW5nbGVDaGFuZ2UgPSBBcnJheS5pc0FycmF5KHR5cGVzKSAmJiB0eXBlcy5pbmNsdWRlcygnYW5nbGVDaGFuZ2UnKTtcclxuICAgIGlmIChpc0FuZ2xlQ2hhbmdlKSB7XHJcbiAgICAgIGNvbnN0IGFuZ2xlUGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcclxuICAgICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgICBsaW1pdDogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkU3RvcmVJZCkgeyBhbmdsZVBheWxvYWRbJ3N0b3JlSWQnXSA9IHRoaXMuc2VsZWN0ZWRTdG9yZUlkOyB9XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlclN0YXJ0RGF0ZSkgeyBhbmdsZVBheWxvYWRbJ3N0YXJ0RGF0ZSddID0gZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZmlsdGVyU3RhcnREYXRlLCAneXl5eS1NTS1kZCcpOyB9XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlckVuZERhdGUpIHsgYW5nbGVQYXlsb2FkWydlbmREYXRlJ10gPSBkYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5maWx0ZXJFbmREYXRlLCAneXl5eS1NTS1kZCcpOyB9XHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRBbmdsZUNoYW5nZUxvZ3MoYW5nbGVQYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VTdGF0ZSQubmV4dCgnbG9hZGVkJyk7XHJcbiAgICAgICAgICB0aGlzLmxvZ0xpc3QgPSBlPy5kYXRhPy5kYXRhIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gZT8uZGF0YT8uY291bnQgfHwgMDtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKTtcclxuICAgICAgICAgIHRoaXMubG9nTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMDtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47IC8vIHNlcGFyYXRlIG1vZGUg4oCUIHNraXAgdGhlIG5vcm1hbCBhY3Rpdml0eS1sb2cgY2FsbFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRBY3Rpdml0eUxvZ3MoZmlsdGVycykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICB0aGlzLnBhZ2VTdGF0ZSQubmV4dCgnbG9hZGVkJylcclxuICAgICAgICBpZiAoZT8uZGF0YT8uY291bnQpIHtcclxuICAgICAgICAgIHRoaXMubG9nTGlzdCA9IGUuZGF0YS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSBlLmRhdGEuY291bnRcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9nTGlzdCA9IFtdXHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwXHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnBhZ2VTdGF0ZSQubmV4dCgnbG9hZGVkJylcclxuICAgICAgICB0aGlzLmxvZ0xpc3QgPSBbXVxyXG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDBcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnN0YXJ0RGF0ZSB8fCBldmVudC5lbmREYXRlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxXHJcbiAgICAgIHRoaXMuZmlsdGVyU3RhcnREYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLnV0YygpLnRvSVNPU3RyaW5nKClcclxuICAgICAgdGhpcy5maWx0ZXJFbmREYXRlID0gdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS51dGMoKS50b0lTT1N0cmluZygpXHJcbiAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByYW5nZXM6IGFueSA9IHtcclxuICAgIFRvZGF5OiBbdGhpcy5kYXlqcygpLCB0aGlzLmRheWpzKCldLFxyXG4gICAgWWVzdGVyZGF5OiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKV0sXHJcbiAgICBcIlRoaXMgV2Vla1wiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDYsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpXSxcclxuICAgIFwiTGFzdCBXZWVrXCI6IFtcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEzLCBcImRheXNcIikuc3RhcnRPZihcImRheXNcIiksXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCg3LCBcImRheXNcIikuZW5kT2YoXCJkYXlzXCIpLFxyXG4gICAgXSxcclxuICAgIFwiVGhpcyBNb250aFwiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDMwLCBcImRheXNcIiksIC8vIFN0YXJ0IGRhdGUgaXMgMzAgZGF5cyBiZWZvcmUgdG9kYXlcclxuICAgICAgdGhpcy5kYXlqcygpXSwgXHJcbiAgICBcIkxhc3QgTW9udGhcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJtb250aFwiKS5zdGFydE9mKFwibW9udGhcIiksXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLmVuZE9mKFwibW9udGhcIiksXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZU9mZnNldFxyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG5cclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlcikgeyAgIFxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDEgXHJcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemVcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gcGFnZVNpemVcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoaW5wdXREYXRlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnNlZERhdGUgPSB0aGlzLmRheWpzKGlucHV0RGF0ZSk7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gcGFyc2VkRGF0ZS5mb3JtYXQoJ0RELU1NLVlZWVkgfCBoaDptbSBBJyk7XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIGNhbWVsQ2FzZVRvV29yZHMoY2FtZWxDYXNlU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdvcmRzID0gY2FtZWxDYXNlU3RyaW5nLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xyXG4gICAgcmV0dXJuIHdvcmRzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZHMuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGFycmF5VG9TdHJpbmcoYXJyYXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5LmpvaW4oJywgJyk7XHJcbiAgfVxyXG4gIG9iamVjdEtleXMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gMCA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGNoZWNrSWZBbGxTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZXZlcnkoKGl0ZW06YW55KSA9PiBpdGVtLmlzQ2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiBpdGVtLmlzQ2hlY2tlZCA9IHNlbGVjdEFsbCk7XHJcbiAgfVxyXG5cclxuICAgZ2V0Q2hlY2tlZElkcyhmaWx0ZXJzOmFueSkge1xyXG4gICAgY29uc3QgY2hlY2tlZElkcyA9IGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6YW55KSA9PiBmaWx0ZXIuaXNDaGVja2VkKS5tYXAoKGZpbHRlcjphbnkpID0+IGZpbHRlci5pZCk7XHJcbiAgICByZXR1cm4gY2hlY2tlZElkcztcclxufVxyXG5cclxuYXBwbHlGaWx0ZXIoKXtcclxuICB0aGlzLmN1cnJlbnRQYWdlID0gMVxyXG4gIHRoaXMuc2hvd0ZpbHRlcnMgPSBmYWxzZVxyXG4gIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKCk7XHJcbn1cclxuYXBwbHlGaWx0ZXJzKGV2ZW50OmFueSl7XHJcbiAgY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUoJ2VuLVVTJyk7XHJcbiAgaWYgKGV2ZW50Py5sZW5ndGgpIHtcclxuICAgIGV2ZW50LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC5EZXNjcmlwdGlvbiA9PT0gXCJTdGF0dXMgTG9nc1wiKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJCeVN0YXR1cyA9IGVsZW1lbnQuSXNzdWVzLm1hcCgodmFsOiBhbnkpID0+IHZhbD8uaWQpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICB0aGlzLmN1cnJlbnRQYWdlID0gMVxyXG4gIGxldCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgbGltaXQ6IHRoaXMucGFnZVNpemUsXHJcbiAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIGxvZ1R5cGVGaWx0ZXJzIDogdGhpcy5maWx0ZXJCeVN0YXR1cyxcclxuICB9XHJcbiAgaWYgKHRoaXMuZmlsdGVyU3RhcnREYXRlKSB7XHJcbiAgICBmaWx0ZXJzLnN0YXJ0RGF0ZSA9IGRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbHRlclN0YXJ0RGF0ZSwgJ3l5eXktTU0tZGQnKVxyXG4gIH1cclxuICBpZiAodGhpcy5maWx0ZXJFbmREYXRlKSB7XHJcbiAgICBmaWx0ZXJzLmVuZERhdGUgPSBkYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5maWx0ZXJFbmREYXRlLCAneXl5eS1NTS1kZCcpXHJcbiAgfVxyXG4gXHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpXHJcbn1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY2FyZFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTdGF0ZSQgfCBhc3luYyBhcyBwYWdlU3RhdGVcIiA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFnZVN0YXRlXCIgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbG9hZGVkJ1wiICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+QWN0aXZpdHkgTG9nczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgc3R5bGU9XCJtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtyYW5nZXNdPVwicmFuZ2VzXCIgW3Nob3dDdXN0b21SYW5nZUxhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiBbYXV0b0FwcGx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlYXJjaGFibGUgc2luZ2xlLXNlbGVjdCBzdG9yZSBmaWx0ZXIgKHNlbGYtY29udGFpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dzIHN0b3JlIG5hbWUsIHNlbmRzIHN0b3JlSWQgdG8gdGhlIGJhY2tlbmQpLiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlLWZpbHRlciBwb3NpdGlvbi1yZWxhdGl2ZSBtZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlU3RvcmVEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiAxODBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZFN0b3JlTmFtZSA/IHNlbGVjdGVkU3RvcmVOYW1lIDogJ0FsbCBTdG9yZXMnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwic2VsZWN0ZWRTdG9yZU5hbWVcIiAoY2xpY2spPVwiY2xlYXJTdG9yZSgkZXZlbnQpXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIGNsYXNzPVwibWUtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA1TDUgMTVNNSA1bDEwIDEwXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3RvcmVEcm9wZG93bk9wZW5cIiBjbGFzcz1cImNhcmQgcHktMSBwb3NpdGlvbi1hYnNvbHV0ZSB6LTEgZW5kLTBcIiBzdHlsZT1cIm1pbi13aWR0aDogMjIwcHg7IG1heC1oZWlnaHQ6IDI4MHB4OyBvdmVyZmxvdy15OiBhdXRvOyB0b3A6IDQ0cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTMgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic3RvcmVTZWFyY2hcIiAoaW5wdXQpPVwib25TdG9yZVNlYXJjaCgkZXZlbnQpXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBzdG9yZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHB5LTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXNlbGVjdGVkU3RvcmVJZCA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cInB4LTUgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiIChjbGljayk9XCJzZWxlY3RTdG9yZSh7fSlcIj5BbGwgU3RvcmVzPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzIG9mIGZpbHRlcmVkU3RvcmVPcHRpb25zXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRTdG9yZUlkID09PSBzLnN0b3JlSWQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHgtNSBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cInNlbGVjdFN0b3JlKHMpXCI+e3sgcy5zdG9yZU5hbWUgfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCIhZmlsdGVyZWRTdG9yZU9wdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJweC01IHB5LTIgdGV4dC1tdXRlZFwiPk5vIHN0b3JlcyBmb3VuZDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1maWx0ZXJzIFtkYXRhT2JqZWN0XT1cImRhdGFPYmplY3RcIiAoYXBwbGllZEZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIj48L2xpYi1maWx0ZXJzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dMaXN0Py5sZW5ndGhcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxvZ0xpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy50eXBlID09PSAnYW5nbGVDaGFuZ2UnOyBlbHNlIG5vcm1hbExvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb2ctY2FyZCBtYi04IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtZS0zXCI+e3sgc3RvcmVOYW1lQnlJZChpdGVtLnN0b3JlSWQpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbmdsZS1iYWRnZVwiPkFuZ2xlIENoYW5nZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG10LTFcIj57eyBpdGVtLnN0cmVhbSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lIG1lLTVcIj57eyBpdGVtLmRhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhbmdsZS1leWUtYnRuXCIgdGl0bGU9XCJQcmV2aWV3IGV4cGVjdGVkIHZzIGFjdHVhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkFuZ2xlUHJldmlldyhpdGVtLCBhbmdsZVByZXZpZXcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIgMTJzMy41LTcgMTAtNyAxMCA3IDEwIDctMy41IDctMTAgNy0xMC03LTEwLTdaXCIgc3Ryb2tlPVwiIzE3NUNEM1wiIHN0cm9rZS13aWR0aD1cIjEuOFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjNcIiBzdHJva2U9XCIjMTc1Q0QzXCIgc3Ryb2tlLXdpZHRoPVwiMS44XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbExvZz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2ctY2FyZCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtZS0xMCB3LTc1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lIG1lLTRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgbWUtNFwiPnt7Y2FtZWxDYXNlVG9Xb3JkcyhpdGVtPy5sb2dTdWJUeXBlKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj57e2Zvcm1hdERhdGUoaXRlbT8uZGF0ZSl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+e3thcnJheVRvU3RyaW5nKGl0ZW0/LmNoYW5nZXMpfX0gPHNwYW4gKm5nSWY9XCJpdGVtPy5ldmVudFR5cGVcIj57e2l0ZW0/LmV2ZW50VHlwZSArICdkJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Qnkge3tpdGVtPy51c2VyTmFtZX19IC0ge3tpdGVtPy5lbWFpbH19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nRm9yPVwibGV0IGtleSBvZiBvYmplY3RLZXlzKGl0ZW0/LnVwZGF0ZWRWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoZWFkZXIgbWUtNFwiPnt7Y2FtZWxDYXNlVG9Xb3JkcyhrZXkpfX08L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiB3LTc1IHRvb2x0aXAtY29udGFpbmVyXCIgIGNvbnRhaW5lcj1cImJvZHlcIj48Yj57eyBrZXkgfX08L2I+IGhhcyBiZWVuIHVwZGF0ZWQgZnJvbSA8c3BhbiBjbGFzcz1cInJlZC1iYWRnZVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbT8udXBkYXRlZFZhbHVlW2tleV0ucHJldmlvdXMgPT09XCJcIiB8fCBpdGVtPy51cGRhdGVkVmFsdWVba2V5XS5wcmV2aW91cyA9PT1udWxsfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLnByZXZpb3VzID09PXVuZGVmaW5lZCk/XCJudWxsXCI6aXRlbT8udXBkYXRlZFZhbHVlW2tleV0ucHJldmlvdXN9fTwvc3Bhbj4gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JlZW4tYmFkZ2VcIj4ge3tpdGVtPy51cGRhdGVkVmFsdWVba2V5XS5jdXJyZW50ID09PSBcIlwiIHx8IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLmN1cnJlbnQgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsIHx8aXRlbT8udXBkYXRlZFZhbHVlW2tleV0uY3VycmVudCA9PT0gdW5kZWZpbmVkP1wibnVsbFwiOiBpdGVtPy51cGRhdGVkVmFsdWVba2V5XS5jdXJyZW50IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcCB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2NhbWVsQ2FzZVRvV29yZHMoaXRlbT8ubG9nVHlwZSl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvZ0xpc3Q/Lmxlbmd0aFwiIGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIiAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2dMaXN0Py5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMzAwcHhcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbG9hZGluZydcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG5cbjwhLS0gQW5nbGUtY2hhbmdlIHByZXZpZXcgbW9kYWw6IEV4cGVjdGVkIHZzIEFjdHVhbCBjYW1lcmEgaW1hZ2VzLiAtLT5cbjxuZy10ZW1wbGF0ZSAjYW5nbGVQcmV2aWV3IGxldC1tb2RhbD5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWUtM1wiPnt7IHByZXZpZXdJdGVtPy5zdHJlYW0gfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFuZ2xlLWJhZGdlXCI+QW5nbGUgQ2hhbmdlZDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkIG1iLTRcIj57eyBzdG9yZU5hbWVCeUlkKHByZXZpZXdJdGVtPy5zdG9yZUlkKSB9fSDCtyB7eyBwcmV2aWV3SXRlbT8uZGF0ZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbWItNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmdsZS1pbWctd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwicHJldmlld0l0ZW0/LmV4cGVjdGVkXCIgW3NyY109XCJwcmV2aWV3SXRlbS5leHBlY3RlZFwiIGFsdD1cIkV4cGVjdGVkIGNhbWVyYSBhbmdsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld0l0ZW0/LmV4cGVjdGVkXCIgY2xhc3M9XCJhbmdsZS1pbWctZW1wdHlcIj5ObyBleHBlY3RlZCBpbWFnZTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmdsZS1pbWctbGFiZWxcIj5FeHBlY3RlZDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbWItNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmdsZS1pbWctd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwicHJldmlld0l0ZW0/LmFjdHVhbFwiIFtzcmNdPVwicHJldmlld0l0ZW0uYWN0dWFsXCIgYWx0PVwiQWN0dWFsIGNhbWVyYSBhbmdsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld0l0ZW0/LmFjdHVhbFwiIGNsYXNzPVwiYW5nbGUtaW1nLWVtcHR5XCI+Tm8gYWN0dWFsIGltYWdlPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuZ2xlLWltZy1sYWJlbFwiPkFjdHVhbDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBRzlHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBQzNDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU92QixNQUFNLE9BQU8scUJBQXFCO0lBdU1aO0lBQXNDO0lBQStCO0lBck16RixLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsY0FBYyxDQUFNO0lBQ3BCLDhFQUE4RTtJQUM5RSx3RUFBd0U7SUFDeEUsWUFBWSxHQUFVLEVBQUUsQ0FBQyxDQUFVLHNDQUFzQztJQUN6RSxvQkFBb0IsR0FBVSxFQUFFLENBQUMsQ0FBRSx1QkFBdUI7SUFDMUQsV0FBVyxHQUFXLEVBQUUsQ0FB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WSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDakU7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUE7UUFDcEIsSUFBSSxPQUFPLEdBQXdCO1lBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRyxJQUFJLENBQUMsY0FBYztTQUNyQyxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQ3ZFO1FBRUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQzFCLENBQUM7d0dBaGFZLHFCQUFxQjs0RkFBckIscUJBQXFCLHVIQ2pCbEMseTdaQXdMQTs7NEZEdkthLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7NElBaUI3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ2xpZW50QXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsaWVudC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hY3Rpdml0eS1sb2dzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FjdGl2aXR5LWxvZ3MuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBkYXlqcyA9IGRheWpzXHJcbiAgZmlsdGVyQnlTdGF0dXM6IGFueTtcclxuICAvLyAtLS0tLSBTZWxmLWNvbnRhaW5lZCBzdG9yZSBmaWx0ZXIgKHNlYXJjaGFibGUgc2luZ2xlLXNlbGVjdCkuIEtlcHQgbG9jYWwgdG9cclxuICAvLyB0aGlzIGNvbXBvbmVudCBzbyBpdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHNoYXJlZCBsaWItZmlsdGVycy4gLS0tLS1cclxuICBzdG9yZU9wdGlvbnM6IGFueVtdID0gW107ICAgICAgICAgIC8vIGZ1bGwgbGlzdDogW3sgc3RvcmVJZCwgc3RvcmVOYW1lIH1dXHJcbiAgZmlsdGVyZWRTdG9yZU9wdGlvbnM6IGFueVtdID0gW107ICAvLyBzZWFyY2gtZmlsdGVyZWQgdmlld1xyXG4gIHN0b3JlU2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBzZWxlY3RlZFN0b3JlSWQ6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkU3RvcmVOYW1lOiBzdHJpbmcgPSAnJztcclxuICBzdG9yZURyb3Bkb3duT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDbG9zZSB0aGUgc3RvcmUgZHJvcGRvd24gd2hlbiBjbGlja2luZyBvdXRzaWRlIGl0LlxyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLnN0b3JlLWZpbHRlcicpKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZVN0b3JlRHJvcGRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zdG9yZURyb3Bkb3duT3BlbiA9ICF0aGlzLnN0b3JlRHJvcGRvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgb25TdG9yZVNlYXJjaChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB0ZXJtID0gKGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnKS50cmltKCk7XHJcbiAgICB0aGlzLnN0b3JlU2VhcmNoID0gdGVybTtcclxuICAgIHRoaXMuZmlsdGVyZWRTdG9yZU9wdGlvbnMgPSB0ZXJtXHJcbiAgICAgID8gdGhpcy5zdG9yZU9wdGlvbnMuZmlsdGVyKChzKSA9PiBuZXcgUmVnRXhwKHRlcm0sICdpJykudGVzdChzLnN0b3JlTmFtZSB8fCAnJykpXHJcbiAgICAgIDogdGhpcy5zdG9yZU9wdGlvbnMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFN0b3JlKHN0b3JlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZUlkID0gc3RvcmU/LnN0b3JlSWQgfHwgJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmVOYW1lID0gc3RvcmU/LnN0b3JlTmFtZSB8fCAnJztcclxuICAgIHRoaXMuc3RvcmVEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyU3RvcmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlSWQgPSAnJztcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSAnJztcclxuICAgIHRoaXMuc3RvcmVTZWFyY2ggPSAnJztcclxuICAgIHRoaXMuZmlsdGVyZWRTdG9yZU9wdGlvbnMgPSB0aGlzLnN0b3JlT3B0aW9ucy5zbGljZSgpO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpO1xyXG4gIH1cclxuXHJcbiAgaXRlbXNQZXJQYWdlID0gMTBcclxuICBjdXJyZW50UGFnZSA9IDFcclxuICB0b3RhbEl0ZW1zID0gMFxyXG4gIHBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXVxyXG4gIHBhZ2VTaXplID0gMTBcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge1xyXG4gICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuc3VidHJhY3QoMzAsIFwiZGF5c1wiKSxcclxuICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKVxyXG4gIH07XHJcbiAgY2xpZW50TGlzdDogYW55ID0gW11cclxuICBzZWxlY3RlZENsaWVudDogYW55XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuICBsb2dMaXN0OiBhbnk7XHJcbiAgZmlsdGVyU3RhcnREYXRlOiBzdHJpbmcgPSB0aGlzLmRheWpzKCkuc3VidHJhY3QoMzAsIFwiZGF5c1wiKS50b0lTT1N0cmluZygpXHJcbiAgZmlsdGVyRW5kRGF0ZTogc3RyaW5nID10aGlzLmRheWpzKCkuc3VidHJhY3QoMCwgXCJkYXlzXCIpLnRvSVNPU3RyaW5nKClcclxuICBzaG93RmlsdGVyczpib29sZWFuID0gZmFsc2VcclxuICBwYWdlU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwnbG9hZGVkJyB8ICdsb2FkaW5nJz4oJ2xvYWRpbmcnKTtcclxuICBmaWx0ZXJzID0gW1xyXG4gICAge1xyXG4gICAgICBsYWJlbDonQnJhbmQgZGV0YWlscycsXHJcbiAgICAgIGlkOidicmFuZERldGFpbHMnLFxyXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6J0NvbmZpZ3VyYXRpb24nLFxyXG4gICAgICBpZDonY29uZmlndXJhdGlvbicsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonRG9jdW1lbnRzJyxcclxuICAgICAgaWQ6J2RvY3VtZW50cycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonU3RvcmVzJyxcclxuICAgICAgaWQ6J3N0b3JlcycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LCAgIFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonQ2x1c3RlcnMnLFxyXG4gICAgICBpZDonY2x1c3RlcicsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonVGVhbXMnLFxyXG4gICAgICBpZDondGVhbXMnLFxyXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6J1N1YnNjcmlwdGlvbicsXHJcbiAgICAgIGlkOidzdWJzY3JpcHRpb24nLFxyXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6J0ludm9pY2UnLFxyXG4gICAgICBpZDonaW52b2ljZScsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonQmlsbGluZycsXHJcbiAgICAgIGlkOidiaWxsaW5nJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0NhbWVyYScsXHJcbiAgICAgIGlkOidjYW1lcmFzJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J1pvbmUnLFxyXG4gICAgICBpZDonem9uZScsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gIF1cclxuICBkYXRhT2JqZWN0OiBhbnkgPSBbXHJcbiAgICB7IERlc2NyaXB0aW9uOiAnU3RhdHVzIExvZ3MnLCBJc3N1ZXM6W3tcclxuICAgICAgdGV4dDonQnJhbmQgZGV0YWlscycsXHJcbiAgICAgIGlkOidicmFuZERldGFpbHMnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonQ29uZmlndXJhdGlvbicsXHJcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0RvY3VtZW50cycsXHJcbiAgICAgIGlkOidkb2N1bWVudHMnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonU3RvcmVzJyxcclxuICAgICAgaWQ6J3N0b3JlcycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidDYW1lcmEnLFxyXG4gICAgICBpZDonY2FtZXJhcycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidDbHVzdGVycycsXHJcbiAgICAgIGlkOidjbHVzdGVyJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J1VzZXJzJyxcclxuICAgICAgaWQ6J3VzZXJzJywgXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidUZWFtcycsXHJcbiAgICAgIGlkOid0ZWFtcycsIFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonU3Vic2NyaXB0aW9uJyxcclxuICAgICAgaWQ6J3N1YnNjcmlwdGlvbidcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0ludm9pY2UnLFxyXG4gICAgICBpZDonaW52b2ljZSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0JpbGxpbmcnLFxyXG4gICAgICBpZDonYmlsbGluZydcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J1pvbmUnLFxyXG4gICAgICBpZDonem9uZSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIC8vIEN1c3RvbSByZXBvcnQgY3JlYXRlL3VwZGF0ZS9zY2hlZHVsZS9kZWxldGUgZW50cmllcyAobG9nVHlwZSAncmVwb3J0JyxcclxuICAgICAgLy8gd3JpdHRlbiBieSByZXRhaWwtYW5hbHlzaXMtcmVwb3J0LWFwaS12MydzIGN1c3RvbVJlcG9ydEFjdGl2aXR5TG9nKS5cclxuICAgICAgdGV4dDonUmVwb3J0JyxcclxuICAgICAgaWQ6J3JlcG9ydCdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0FuZ2xlIENoYW5nZScsXHJcbiAgICAgIGlkOidhbmdsZUNoYW5nZSdcclxuICAgIH0sXHJcbiAgXX1cclxuICBdXHJcbiAgLy8gQW5nbGUtY2hhbmdlIGltYWdlIHByZXZpZXcgKG9wZW5lZCBmcm9tIHRoZSBleWUgaWNvbiBvbiBhbiBhbmdsZSByb3cpLlxyXG4gIHByZXZpZXdJdGVtOiBhbnkgPSBudWxsO1xyXG5cclxuICBvcGVuQW5nbGVQcmV2aWV3KGl0ZW06IGFueSwgdHBsOiBhbnkpIHtcclxuICAgIHRoaXMucHJldmlld0l0ZW0gPSBpdGVtO1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0cGwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdsZycgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRJZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IGVcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmVJZCA9ICcnXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlTmFtZSA9ICcnXHJcbiAgICAgICAgdGhpcy5zdG9yZVNlYXJjaCA9ICcnXHJcbiAgICAgICAgdGhpcy5sb2FkU3RvcmVzRm9yRmlsdGVyKClcclxuICAgICAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBsb2FkU3RvcmVzRm9yRmlsdGVyKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldFN0b3JlTGlzdCh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZU9wdGlvbnMgPSByZXM/LmRhdGE/LnJlc3VsdCB8fCBbXTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkU3RvcmVPcHRpb25zID0gdGhpcy5zdG9yZU9wdGlvbnMuc2xpY2UoKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAvLyBTdG9yZSBsaXN0IHVuYXZhaWxhYmxlIOKGkiBlbXB0eSBvcHRpb25zOyBsb2dzIHN0aWxsIGxvYWQgdW5maWx0ZXJlZC5cclxuICAgICAgICB0aGlzLnN0b3JlT3B0aW9ucyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRTdG9yZU9wdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnBhZ2VTdGF0ZSQuY29tcGxldGUoKTtcclxuXHJcbiAgfVxyXG5cclxuICBzdG9yZU5hbWVCeUlkKHN0b3JlSWQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzID0gKHRoaXMuc3RvcmVPcHRpb25zIHx8IFtdKS5maW5kKCh4OiBhbnkpID0+IHguc3RvcmVJZCA9PT0gc3RvcmVJZCk7XHJcbiAgICByZXR1cm4gcz8uc3RvcmVOYW1lIHx8IHN0b3JlSWQ7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpdml0eUxvZ3MoKSB7XHJcbiAgICBjb25zdCBkYXRlUGlwZSA9IG5ldyBEYXRlUGlwZSgnZW4tVVMnKTtcclxuICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkaW5nJylcclxuICAgIGxldCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgICBsaW1pdDogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgbG9nVHlwZUZpbHRlcnMgOiB0aGlzLmZpbHRlckJ5U3RhdHVzLFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVyU3RhcnREYXRlKSB7XHJcbiAgICAgIGZpbHRlcnMuc3RhcnREYXRlID0gZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZmlsdGVyU3RhcnREYXRlLCAneXl5eS1NTS1kZCcpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWx0ZXJFbmREYXRlKSB7XHJcbiAgICAgIGZpbHRlcnMuZW5kRGF0ZSA9IGRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbHRlckVuZERhdGUsICd5eXl5LU1NLWRkJylcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RvcmVJZCkge1xyXG4gICAgICBmaWx0ZXJzLnN0b3JlSWQgPSB0aGlzLnNlbGVjdGVkU3RvcmVJZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZih0aGlzLmdldENoZWNrZWRJZHModGhpcy5maWx0ZXJzKT8ubGVuZ3RoKXtcclxuICAgIC8vICAgZmlsdGVycy5sb2dUeXBlRmlsdGVycyA9IHRoaXMuZ2V0Q2hlY2tlZElkcyh0aGlzLmZpbHRlcnMpXHJcbiAgICAvLyB9XHJcblxyXG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLmZpbHRlckJ5U3RhdHVzIHx8IFtdO1xyXG4gICAgY29uc3QgaXNBbmdsZUNoYW5nZSA9IEFycmF5LmlzQXJyYXkodHlwZXMpICYmIHR5cGVzLmluY2x1ZGVzKCdhbmdsZUNoYW5nZScpO1xyXG4gICAgaWYgKGlzQW5nbGVDaGFuZ2UpIHtcclxuICAgICAgY29uc3QgYW5nbGVQYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICAgIG9mZnNldDogdGhpcy5jdXJyZW50UGFnZSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTdG9yZUlkKSB7IGFuZ2xlUGF5bG9hZFsnc3RvcmVJZCddID0gdGhpcy5zZWxlY3RlZFN0b3JlSWQ7IH1cclxuICAgICAgaWYgKHRoaXMuZmlsdGVyU3RhcnREYXRlKSB7IGFuZ2xlUGF5bG9hZFsnc3RhcnREYXRlJ10gPSBkYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5maWx0ZXJTdGFydERhdGUsICd5eXl5LU1NLWRkJyk7IH1cclxuICAgICAgaWYgKHRoaXMuZmlsdGVyRW5kRGF0ZSkgeyBhbmdsZVBheWxvYWRbJ2VuZERhdGUnXSA9IGRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbHRlckVuZERhdGUsICd5eXl5LU1NLWRkJyk7IH1cclxuICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEFuZ2xlQ2hhbmdlTG9ncyhhbmdsZVBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKTtcclxuICAgICAgICAgIHRoaXMubG9nTGlzdCA9IGU/LmRhdGE/LmRhdGEgfHwgW107XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSBlPy5kYXRhPy5jb3VudCB8fCAwO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYWdlU3RhdGUkLm5leHQoJ2xvYWRlZCcpO1xyXG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gW107XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjsgLy8gc2VwYXJhdGUgbW9kZSDigJQgc2tpcCB0aGUgbm9ybWFsIGFjdGl2aXR5LWxvZyBjYWxsXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEFjdGl2aXR5TG9ncyhmaWx0ZXJzKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxyXG4gICAgICAgIGlmIChlPy5kYXRhPy5jb3VudCkge1xyXG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gZS5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGUuZGF0YS5jb3VudFxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gW11cclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDBcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxyXG4gICAgICAgIHRoaXMubG9nTGlzdCA9IFtdXHJcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMFxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQuc3RhcnREYXRlIHx8IGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDFcclxuICAgICAgdGhpcy5maWx0ZXJTdGFydERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkudXRjKCkudG9JU09TdHJpbmcoKVxyXG4gICAgICB0aGlzLmZpbHRlckVuZERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUpLnV0YygpLnRvSVNPU3RyaW5nKClcclxuICAgICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgVG9kYXk6IFt0aGlzLmRheWpzKCksIHRoaXMuZGF5anMoKV0sXHJcbiAgICBZZXN0ZXJkYXk6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcclxuICAgIFwiVGhpcyBXZWVrXCI6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoNiwgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCldLFxyXG4gICAgXCJMYXN0IFdlZWtcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMTMsIFwiZGF5c1wiKS5zdGFydE9mKFwiZGF5c1wiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDcsIFwiZGF5c1wiKS5lbmRPZihcImRheXNcIiksXHJcbiAgICBdLFxyXG4gICAgXCJUaGlzIE1vbnRoXCI6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMzAsIFwiZGF5c1wiKSwgLy8gU3RhcnQgZGF0ZSBpcyAzMCBkYXlzIGJlZm9yZSB0b2RheVxyXG4gICAgICB0aGlzLmRheWpzKCldLCBcclxuICAgIFwiTGFzdCBNb250aFwiOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLnN0YXJ0T2YoXCJtb250aFwiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwibW9udGhcIikuZW5kT2YoXCJtb250aFwiKSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlT2Zmc2V0XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpXHJcblxyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7ICAgXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMSBcclxuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZVxyXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZVxyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGF0ZShpbnB1dERhdGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMuZGF5anMoaW5wdXREYXRlKTtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBwYXJzZWREYXRlLmZvcm1hdCgnREQtTU0tWVlZWSB8IGhoOm1tIEEnKTtcclxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xyXG4gIH1cclxuXHJcbiAgY2FtZWxDYXNlVG9Xb3JkcyhjYW1lbENhc2VTdHJpbmc6IHN0cmluZykge1xyXG4gICAgY29uc3Qgd29yZHMgPSBjYW1lbENhc2VTdHJpbmcucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJyk7XHJcbiAgICByZXR1cm4gd29yZHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3Jkcy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb1N0cmluZyhhcnJheTogYW55KSB7XHJcbiAgICByZXR1cm4gYXJyYXkuam9pbignLCAnKTtcclxuICB9XHJcbiAgb2JqZWN0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPiAwID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xyXG4gIH1cclxuICBcclxuXHJcbiAgY2hlY2tJZkFsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVycy5ldmVyeSgoaXRlbTphbnkpID0+IGl0ZW0uaXNDaGVja2VkKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdEFsbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IGl0ZW0uaXNDaGVja2VkID0gc2VsZWN0QWxsKTtcclxuICB9XHJcblxyXG4gICBnZXRDaGVja2VkSWRzKGZpbHRlcnM6YW55KSB7XHJcbiAgICBjb25zdCBjaGVja2VkSWRzID0gZmlsdGVycy5maWx0ZXIoKGZpbHRlcjphbnkpID0+IGZpbHRlci5pc0NoZWNrZWQpLm1hcCgoZmlsdGVyOmFueSkgPT4gZmlsdGVyLmlkKTtcclxuICAgIHJldHVybiBjaGVja2VkSWRzO1xyXG59XHJcblxyXG5hcHBseUZpbHRlcigpe1xyXG4gIHRoaXMuY3VycmVudFBhZ2UgPSAxXHJcbiAgdGhpcy5zaG93RmlsdGVycyA9IGZhbHNlXHJcbiAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKTtcclxufVxyXG5hcHBseUZpbHRlcnMoZXZlbnQ6YW55KXtcclxuICBjb25zdCBkYXRlUGlwZSA9IG5ldyBEYXRlUGlwZSgnZW4tVVMnKTtcclxuICBpZiAoZXZlbnQ/Lmxlbmd0aCkge1xyXG4gICAgZXZlbnQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LkRlc2NyaXB0aW9uID09PSBcIlN0YXR1cyBMb2dzXCIpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckJ5U3RhdHVzID0gZWxlbWVudC5Jc3N1ZXMubWFwKCh2YWw6IGFueSkgPT4gdmFsPy5pZCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHRoaXMuY3VycmVudFBhZ2UgPSAxXHJcbiAgbGV0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XHJcbiAgICBsaW1pdDogdGhpcy5wYWdlU2l6ZSxcclxuICAgIG9mZnNldDogdGhpcy5jdXJyZW50UGFnZSxcclxuICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgbG9nVHlwZUZpbHRlcnMgOiB0aGlzLmZpbHRlckJ5U3RhdHVzLFxyXG4gIH1cclxuICBpZiAodGhpcy5maWx0ZXJTdGFydERhdGUpIHtcclxuICAgIGZpbHRlcnMuc3RhcnREYXRlID0gZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZmlsdGVyU3RhcnREYXRlLCAneXl5eS1NTS1kZCcpXHJcbiAgfVxyXG4gIGlmICh0aGlzLmZpbHRlckVuZERhdGUpIHtcclxuICAgIGZpbHRlcnMuZW5kRGF0ZSA9IGRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbHRlckVuZERhdGUsICd5eXl5LU1NLWRkJylcclxuICB9XHJcbiBcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcclxufVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhY3Rpdml0eS1jYXJkXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVN0YXRlJCB8IGFzeW5jIGFzIHBhZ2VTdGF0ZVwiID5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJwYWdlU3RhdGVcIiA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsb2FkZWQnXCIgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5BY3Rpdml0eSBMb2dzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbWUtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VhcmNoYWJsZSBzaW5nbGUtc2VsZWN0IHN0b3JlIGZpbHRlciAoc2VsZi1jb250YWluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd3Mgc3RvcmUgbmFtZSwgc2VuZHMgc3RvcmVJZCB0byB0aGUgYmFja2VuZCkuIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmUtZmlsdGVyIHBvc2l0aW9uLXJlbGF0aXZlIG1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVTdG9yZURyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDE4MHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNlbGVjdGVkU3RvcmVOYW1lID8gc2VsZWN0ZWRTdG9yZU5hbWUgOiAnQWxsIFN0b3JlcycgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJzZWxlY3RlZFN0b3JlTmFtZVwiIChjbGljayk9XCJjbGVhclN0b3JlKCRldmVudClcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtZS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVsMTAgMTBcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZURyb3Bkb3duT3BlblwiIGNsYXNzPVwiY2FyZCBweS0xIHBvc2l0aW9uLWFic29sdXRlIHotMSBlbmQtMFwiIHN0eWxlPVwibWluLXdpZHRoOiAyMjBweDsgbWF4LWhlaWdodDogMjgwcHg7IG92ZXJmbG93LXk6IGF1dG87IHRvcDogNDRweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMyBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJzdG9yZVNlYXJjaFwiIChpbnB1dCk9XCJvblN0b3JlU2VhcmNoKCRldmVudClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHN0b3JlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHktMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhc2VsZWN0ZWRTdG9yZUlkID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwicHgtNSBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cInNlbGVjdFN0b3JlKHt9KVwiPkFsbCBTdG9yZXM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHMgb2YgZmlsdGVyZWRTdG9yZU9wdGlvbnNcIiBbbmdDbGFzc109XCJzZWxlY3RlZFN0b3JlSWQgPT09IHMuc3RvcmVJZCA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweC01IGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0U3RvcmUocylcIj57eyBzLnN0b3JlTmFtZSB9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJlZFN0b3JlT3B0aW9ucy5sZW5ndGhcIiBjbGFzcz1cInB4LTUgcHktMiB0ZXh0LW11dGVkXCI+Tm8gc3RvcmVzIGZvdW5kPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLWZpbHRlcnMgW2RhdGFPYmplY3RdPVwiZGF0YU9iamVjdFwiIChhcHBsaWVkRmlsdGVycyk9XCJhcHBseUZpbHRlcnMoJGV2ZW50KVwiPjwvbGliLWZpbHRlcnM+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ0xpc3Q/Lmxlbmd0aFwiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbG9nTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0/LnR5cGUgPT09ICdhbmdsZUNoYW5nZSc7IGVsc2Ugbm9ybWFsTG9nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZy1jYXJkIG1iLTggZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1lLTNcIj57eyBzdG9yZU5hbWVCeUlkKGl0ZW0uc3RvcmVJZCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFuZ2xlLWJhZGdlXCI+QW5nbGUgQ2hhbmdlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMVwiPnt7IGl0ZW0uc3RyZWFtIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUgbWUtNVwiPnt7IGl0ZW0uZGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFuZ2xlLWV5ZS1idG5cIiB0aXRsZT1cIlByZXZpZXcgZXhwZWN0ZWQgdnMgYWN0dWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQW5nbGVQcmV2aWV3KGl0ZW0sIGFuZ2xlUHJldmlldylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMiAxMnMzLjUtNyAxMC03IDEwIDcgMTAgNy0zLjUgNy0xMCA3LTEwLTctMTAtN1pcIiBzdHJva2U9XCIjMTc1Q0QzXCIgc3Ryb2tlLXdpZHRoPVwiMS44XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiM1wiIHN0cm9rZT1cIiMxNzVDRDNcIiBzdHJva2Utd2lkdGg9XCIxLjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsTG9nPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZy1jYXJkIG1iLThcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1lLTEwIHctNzVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUgbWUtNFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBtZS00XCI+e3tjYW1lbENhc2VUb1dvcmRzKGl0ZW0/LmxvZ1N1YlR5cGUpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZVwiPnt7Zm9ybWF0RGF0ZShpdGVtPy5kYXRlKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj57e2FycmF5VG9TdHJpbmcoaXRlbT8uY2hhbmdlcyl9fSA8c3BhbiAqbmdJZj1cIml0ZW0/LmV2ZW50VHlwZVwiPnt7aXRlbT8uZXZlbnRUeXBlICsgJ2QnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5CeSB7e2l0ZW0/LnVzZXJOYW1lfX0gLSB7e2l0ZW0/LmVtYWlsfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIiAqbmdGb3I9XCJsZXQga2V5IG9mIG9iamVjdEtleXMoaXRlbT8udXBkYXRlZFZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImhlYWRlciBtZS00XCI+e3tjYW1lbENhc2VUb1dvcmRzKGtleSl9fTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIHctNzUgdG9vbHRpcC1jb250YWluZXJcIiAgY29udGFpbmVyPVwiYm9keVwiPjxiPnt7IGtleSB9fTwvYj4gaGFzIGJlZW4gdXBkYXRlZCBmcm9tIDxzcGFuIGNsYXNzPVwicmVkLWJhZGdlXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtPy51cGRhdGVkVmFsdWVba2V5XS5wcmV2aW91cyA9PT1cIlwiIHx8IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLnByZXZpb3VzID09PW51bGx8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udXBkYXRlZFZhbHVlW2tleV0ucHJldmlvdXMgPT09dW5kZWZpbmVkKT9cIm51bGxcIjppdGVtPy51cGRhdGVkVmFsdWVba2V5XS5wcmV2aW91c319PC9zcGFuPiB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmVlbi1iYWRnZVwiPiB7e2l0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLmN1cnJlbnQgPT09IFwiXCIgfHwgaXRlbT8udXBkYXRlZFZhbHVlW2tleV0uY3VycmVudCA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgfHxpdGVtPy51cGRhdGVkVmFsdWVba2V5XS5jdXJyZW50ID09PSB1bmRlZmluZWQ/XCJudWxsXCI6IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLmN1cnJlbnQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FtZWxDYXNlVG9Xb3JkcyhpdGVtPy5sb2dUeXBlKX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nTGlzdD8ubGVuZ3RoXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvZ0xpc3Q/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgd2lkdGg9XCIzMDBweFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsb2FkaW5nJ1wiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcblxuPCEtLSBBbmdsZS1jaGFuZ2UgcHJldmlldyBtb2RhbDogRXhwZWN0ZWQgdnMgQWN0dWFsIGNhbWVyYSBpbWFnZXMuIC0tPlxuPG5nLXRlbXBsYXRlICNhbmdsZVByZXZpZXcgbGV0LW1vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtZS0zXCI+e3sgcHJldmlld0l0ZW0/LnN0cmVhbSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYW5nbGUtYmFkZ2VcIj5BbmdsZSBDaGFuZ2VkPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWQgbWItNFwiPnt7IHN0b3JlTmFtZUJ5SWQocHJldmlld0l0ZW0/LnN0b3JlSWQpIH19IMK3IHt7IHByZXZpZXdJdGVtPy5kYXRlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtYi00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuZ2xlLWltZy13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJwcmV2aWV3SXRlbT8uZXhwZWN0ZWRcIiBbc3JjXT1cInByZXZpZXdJdGVtLmV4cGVjdGVkXCIgYWx0PVwiRXhwZWN0ZWQgY2FtZXJhIGFuZ2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3SXRlbT8uZXhwZWN0ZWRcIiBjbGFzcz1cImFuZ2xlLWltZy1lbXB0eVwiPk5vIGV4cGVjdGVkIGltYWdlPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuZ2xlLWltZy1sYWJlbFwiPkV4cGVjdGVkPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtYi00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuZ2xlLWltZy13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJwcmV2aWV3SXRlbT8uYWN0dWFsXCIgW3NyY109XCJwcmV2aWV3SXRlbS5hY3R1YWxcIiBhbHQ9XCJBY3R1YWwgY2FtZXJhIGFuZ2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3SXRlbT8uYWN0dWFsXCIgY2xhc3M9XCJhbmdsZS1pbWctZW1wdHlcIj5ObyBhY3R1YWwgaW1hZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5nbGUtaW1nLWxhYmVsXCI+QWN0dWFsPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|