tango-app-ui-analyse-trax 3.6.1 → 3.6.2-bulktask-2

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.
Files changed (43) hide show
  1. package/esm2022/lib/components/action-centre/action-centre.component.mjs +3 -3
  2. package/esm2022/lib/components/activity-log-v2/activity-log-v2.component.mjs +3 -2
  3. package/esm2022/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.mjs +3 -3
  4. package/esm2022/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.mjs +3 -3
  5. package/esm2022/lib/components/add-multitask/add-multitask.component.mjs +538 -0
  6. package/esm2022/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.mjs +269 -0
  7. package/esm2022/lib/components/add-multitask/create-task.data.mjs +306 -0
  8. package/esm2022/lib/components/add-multitask/create-task.interface.mjs +2 -0
  9. package/esm2022/lib/components/add-multitask/unique-string-validator.mjs +10 -0
  10. package/esm2022/lib/components/add-multitask/whitespace-validator.mjs +10 -0
  11. package/esm2022/lib/components/add-task/add-task.component.mjs +3 -1
  12. package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +3 -3
  13. package/esm2022/lib/components/dashboard/dashboard.component.mjs +3 -3
  14. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +1 -1
  15. package/esm2022/lib/components/disabled-select/disabled-select.component.mjs +158 -0
  16. package/esm2022/lib/components/flags/flags.component.mjs +1 -1
  17. package/esm2022/lib/components/flags-info/flags-info.component.mjs +1 -1
  18. package/esm2022/lib/components/gallery/gallery.component.mjs +170 -24
  19. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +6 -3
  20. package/esm2022/lib/components/task-configure/task-configure.component.mjs +5 -5
  21. package/esm2022/lib/components/task-info/task-info.component.mjs +1 -1
  22. package/esm2022/lib/services/trax.service.mjs +17 -2
  23. package/esm2022/lib/tango-analyse-trax.module.mjs +12 -5
  24. package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BeDM0cg8.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs} +7 -7
  25. package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BeDM0cg8.mjs.map → tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs.map} +1 -1
  26. package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-CscGaVfu.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs} +1670 -241
  27. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs.map +1 -0
  28. package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
  29. package/lib/components/activity-log-v2/activity-log-v2.component.d.ts +1 -0
  30. package/lib/components/add-multitask/add-multitask.component.d.ts +95 -0
  31. package/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.d.ts +42 -0
  32. package/lib/components/add-multitask/create-task.data.d.ts +244 -0
  33. package/lib/components/add-multitask/create-task.interface.d.ts +147 -0
  34. package/lib/components/add-multitask/unique-string-validator.d.ts +2 -0
  35. package/lib/components/add-multitask/whitespace-validator.d.ts +2 -0
  36. package/lib/components/disabled-select/disabled-select.component.d.ts +34 -0
  37. package/lib/components/gallery/gallery.component.d.ts +19 -1
  38. package/lib/components/reactive-select/reactive-select.component.d.ts +2 -2
  39. package/lib/components/task-configure/task-configure.component.d.ts +2 -2
  40. package/lib/services/trax.service.d.ts +5 -1
  41. package/lib/tango-analyse-trax.module.d.ts +11 -8
  42. package/package.json +1 -1
  43. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-CscGaVfu.mjs.map +0 -1
@@ -125,6 +125,7 @@ export class AddTaskComponent {
125
125
  "section_id": this.sectionInfo.section_id,
126
126
  "sectionName": this.sectionInfo.sectionName,
127
127
  "qno": response[0].questions[0].qno,
128
+ "uniqueNo": this.inputData.uniqueNo ? this.inputData.uniqueNo : "",
128
129
  "checklistDescription": this.taskForm.value.checklistDescription,
129
130
  "parentQuestion": this.inputData.parentQuestion ? this.inputData.parentQuestion : this.inputData.qno,
130
131
  },
@@ -163,6 +164,7 @@ export class AddTaskComponent {
163
164
  "sectionId": this.sectionInfo.section_id,
164
165
  "sectionName": this.sectionInfo.sectionName,
165
166
  "qno": this.inputData.qno,
167
+ "uniqueNo": this.inputData.uniqueNo ? this.inputData.uniqueNo : "",
166
168
  "parentQuestion": this.inputData.parentQuestion ? this.inputData.parentQuestion : this.inputData.qno,
167
169
  "question": [
168
170
  {
@@ -488,4 +490,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
488
490
  type: ViewChild,
489
491
  args: ['fileInput']
490
492
  }] } });
491
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRhc2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGFzay9hZGQtdGFzay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC10YXNrL2FkZC10YXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBMEIsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw2QkFBNkIsRUFBRSxrQ0FBa0MsRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSw4QkFBOEIsRUFBRSx3Q0FBd0MsRUFBRSxzQ0FBc0MsRUFBRSwrQkFBK0IsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RaLE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sZ0JBQWdCO0lBc0NQO0lBQXlCO0lBQXFDO0lBQWdDO0lB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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDbHRCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtLQUM3MUIsQ0FBQTtJQUdELFlBQW9CLEVBQWUsRUFBVSxXQUEyQixFQUFV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Ozs0RkR0bEJPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjOytRQU1mLElBQUk7c0JBQVosS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBdUJHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQThTTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBcUlsQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFuc3dlciwgQW5zd2VyRm9ybSwgQW5zd2VyVHlwZSwgSGVhZGVyRmlsdGVyLCBJVGFzaywgUXVlc3Rpb24sIFF1ZXN0aW9uRm9ybSwgU2VjdGlvbiwgU2VjdGlvbkZvcm0sIFRhc2tGb3JtLCBWYWxpZGF0aW9uVHlwZSB9IGZyb20gJy4vY3JlYXRlLXRhc2suaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgZGF0ZV9xdWVzdGlvbl90ZW1wbGF0ZSwgZGVzY3JpcHRpdmVfcXVlc3Rpb25fdGVtcGxhdGUsIGRlc2NyaXB0aXZlSW1hZ2VfcXVlc3Rpb25fdGVtcGxhdGUsIGltYWdlX3F1ZXN0aW9uX3RlbXBsYXRlLCBsaW5lYXJzY2FsZV9xdWVzdGlvbl90ZW1wbGF0ZSwgbXVsdGlwbGVjaG9pY2VfYW5zd2VyX3RlbXBsYXRlLCBtdWx0aXBsZWNob2ljZW11bHRpcGxlX3F1ZXN0aW9uX3RlbXBsYXRlLCBtdWx0aXBsZWNob2ljZXNpbmdsZV9xdWVzdGlvbl90ZW1wbGF0ZSwgbXVsdGlwbGVJbWFnZV9xdWVzdGlvbl90ZW1wbGF0ZSwgdGltZV9xdWVzdGlvbl90ZW1wbGF0ZSwgdmlkZW9fcXVlc3Rpb25fdGVtcGxhdGUsIHllc29ybm9fcXVlc3Rpb25fdGVtcGxhdGUgfSBmcm9tICcuL2NyZWF0ZS10YXNrLmRhdGEnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4vd2hpdGVzcGFjZS12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB1bmlxdWVTdHJpbmdWYWxpZGF0b3IgfSBmcm9tICcuL3VuaXF1ZS1zdHJpbmctdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgVGltZVBlcmlvZCB9IGZyb20gJ25neC1kYXRlcmFuZ2VwaWNrZXItbWF0ZXJpYWwvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtdGFzaycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10YXNrLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLXRhc2suY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUYXNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0YXNrRm9ybTogRm9ybUdyb3VwPFRhc2tGb3JtPjtcclxuICBASW5wdXQoKSB0eXBlOiBhbnlcclxuICBASW5wdXQoKSBzb3VyY2VDaGVja0xpc3RfaWQ6IGFueVxyXG5cclxuICBzdWJtaXR0ZWQ6Ym9vbGVhbiA9ICBmYWxzZVxyXG4gIGhlYWRlckRhdGE6IEhlYWRlckZpbHRlciB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgYW5zd2VyVHlwZXM6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IEFuc3dlclR5cGUgfVtdID0gW1xyXG4gICAgeyBsYWJlbDogJ0Rlc2NyaXB0aXZlIEFuc3dlcicsIHZhbHVlOiAnZGVzY3JpcHRpdmUnIH0sXHJcbiAgICB7IGxhYmVsOiAnQS9CIFF1ZXN0aW9uJywgdmFsdWU6ICd5ZXMvbm8nIH0sXHJcbiAgICB7IGxhYmVsOiAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC0gU2luZ2xlIEFuc3dlcicsIHZhbHVlOiAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIH0sXHJcbiAgICB7IGxhYmVsOiAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC0gTXVsdGlwbGUgQW5zd2VyJywgdmFsdWU6ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgSW1hZ2Ugd2l0aCBEZXNjcmlwdGlvbicsIHZhbHVlOiAnZGVzY3JpcHRpdmVJbWFnZScgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIEltYWdlIGFzIGFuc3dlcicsIHZhbHVlOiAnaW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSB2aWRlbyBhcyBhbnN3ZXInLCB2YWx1ZTogJ3ZpZGVvJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgTXVsdGlwbGUgSW1hZ2UnLCB2YWx1ZTogJ211bHRpcGxlSW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnRGF0ZSAtIEREL01NL1lZWVknLCB2YWx1ZTogJ2RhdGUnIH0sXHJcbiAgICB7IGxhYmVsOiAnTGluZWFyIFNjYWxlJywgdmFsdWU6ICdsaW5lYXJzY2FsZScgfSxcclxuICAgIHsgbGFiZWw6ICdUaW1lJywgdmFsdWU6ICd0aW1lJyB9XVxyXG4gIHZhbGlkYXRpb25UeXBlczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogVmFsaWRhdGlvblR5cGUgfVtdID0gW1xyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgSW1hZ2UnLCB2YWx1ZTogJ0NhcHR1cmUgSW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnRGVzY3JpcHRpdmUgQW5zd2VyJywgdmFsdWU6ICdEZXNjcmlwdGl2ZSBBbnN3ZXInIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSBWaWRlbycsIHZhbHVlOiAnQ2FwdHVyZSBWaWRlbycgfV1cclxuICBlbnZpcm9ubWVudDogYW55O1xyXG4gIHRhc2tDb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSB0YXNrRGV0YWlsczogYW55XHJcbiAgQElucHV0KCkgaW5wdXREYXRhOiBhbnlcclxuICBASW5wdXQoKSBjaGVja2xpc3RJbmZvOiBhbnlcclxuICBASW5wdXQoKSBzdG9yZVByb2ZpbGU6IGFueVxyXG4gIEBJbnB1dCgpIHNlY3Rpb25JbmZvOiBhbnlcclxuICBASW5wdXQoKSBvcGVyYXRpb250eXBlOiBhbnlcclxuICAgIGNsaWVudElkOmFueVxyXG4gIHRpbWVEZXRhaWxzOiBhbnkgPSBbeyBpZDogJzAwOjAwJywgdGV4dDogXCIwMDowMFwiIH0sIHsgaWQ6ICcwMDozMCcsIHRleHQ6IFwiMDA6MzBcIiB9LCB7IGlkOiAnMDE6MDAnLCB0ZXh0OiBcIjAxOjAwXCIgfSwgeyBpZDogJzAxOjMwJywgdGV4dDogXCIwMTozMFwiIH0sIHsgaWQ6ICcwMjowMCcsIHRleHQ6IFwiMDI6MDBcIiB9LCB7IGlkOiAnMDI6MzAnLCB0ZXh0OiBcIjAyOjMwXCIgfSwgeyBpZDogJzAzOjAwJywgdGV4dDogXCIwMzowMFwiIH0sIHsgaWQ6ICcwMzozMCcsIHRleHQ6IFwiMDM6MzBcIiB9LCB7IGlkOiAnMDQ6MDAnLCB0ZXh0OiBcIjA0OjAwXCIgfSwgeyBpZDogJzA0OjMwJywgdGV4dDogXCIwNDozMFwiIH0sIHsgaWQ6ICcwNTowMCcsIHRleHQ6IFwiMDU6MDBcIiB9LCB7IGlkOiAnMDU6MzAnLCB0ZXh0OiBcIjA1OjMwXCIgfSwgeyBpZDogJzA2OjAwJywgdGV4dDogXCIwNjowMFwiIH0sIHsgaWQ6ICcwNjozMCcsIHRleHQ6IFwiMDY6MzBcIiB9LCB7IGlkOiAnMDc6MDAnLCB0ZXh0OiBcIjA3OjAwXCIgfSwgeyBpZDogJzA3OjMwJywgdGV4dDogXCIwNzozMFwiIH0sIHsgaWQ6ICcwODowMCcsIHRleHQ6IFwiMDg6MDBcIiB9LCB7IGlkOiAnMDg6MzAnLCB0ZXh0OiBcIjA4OjMwXCIgfSwgeyBpZDogJzA5OjAwJywgdGV4dDogXCIwOTowMFwiIH0sIHsgaWQ6ICcwOTozMCcsIHRleHQ6IFwiMDk6MzBcIiB9LCB7IGlkOiAnMTA6MDAnLCB0ZXh0OiBcIjEwOjAwXCIgfSwgeyBpZDogJzEwOjMwJywgdGV4dDogXCIxMDozMFwiIH0sXHJcbiAgeyBpZDogJzExOjAwJywgdGV4dDogXCIxMTowMFwiIH0sIHsgaWQ6ICcxMTozMCcsIHRleHQ6IFwiMTE6MzBcIiB9LCB7IGlkOiAnMTI6MDAnLCB0ZXh0OiBcIjEyOjAwXCIgfSwgeyBpZDogJzEyOjMwJywgdGV4dDogXCIxMjozMFwiIH0sIHsgaWQ6ICcxMzowMCcsIHRleHQ6IFwiMTM6MDBcIiB9LCB7IGlkOiAnMTM6MzAnLCB0ZXh0OiBcIjEzOjMwXCIgfSwgeyBpZDogJzE0OjAwJywgdGV4dDogXCIxNDowMFwiIH0sIHsgaWQ6ICcxNDozMCcsIHRleHQ6IFwiMTQ6MzBcIiB9LCB7IGlkOiAnMTU6MDAnLCB0ZXh0OiBcIjE1OjAwXCIgfSwgeyBpZDogJzE1OjMwJywgdGV4dDogXCIxNTozMFwiIH0sIHsgaWQ6ICcxNjowMCcsIHRleHQ6IFwiMTY6MDBcIiB9LCB7IGlkOiAnMTY6MzAnLCB0ZXh0OiBcIjE2OjMwXCIgfSwgeyBpZDogJzE3OjAwJywgdGV4dDogXCIxNzowMFwiIH0sIHsgaWQ6ICcxNzozMCcsIHRleHQ6IFwiMTc6MzBcIiB9LCB7IGlkOiAnMTg6MDAnLCB0ZXh0OiBcIjE4OjAwXCIgfSwgeyBpZDogJzE4OjMwJywgdGV4dDogXCIxODozMFwiIH0sIHsgaWQ6ICcxOTowMCcsIHRleHQ6IFwiMTk6MDBcIiB9LCB7IGlkOiAnMTk6MzAnLCB0ZXh0OiBcIjE5OjMwXCIgfSwgeyBpZDogJzIwOjAwJywgdGV4dDogXCIyMDowMFwiIH0sIHsgaWQ6ICcyMDozMCcsIHRleHQ6IFwiMjA6MzBcIiB9LCB7IGlkOiAnMjE6MDAnLCB0ZXh0OiBcIjIxOjAwXCIgfSwgeyBpZDogJzIxOjMwJywgdGV4dDogXCIyMTozMFwiIH0sIHsgaWQ6ICcyMjowMCcsIHRleHQ6IFwiMjI6MDBcIiB9LCB7IGlkOiAnMjI6MzAnLCB0ZXh0OiBcIjIyOjMwXCIgfSwgeyBpZDogJzIzOjAwJywgdGV4dDogXCIyMzowMFwiIH0sIHsgaWQ6ICcyMzozMCcsIHRleHQ6IFwiMjM6MzBcIiB9LCB7IGlkOiAnMjQ6MDAnLCB0ZXh0OiBcIjI0OjAwXCIgfVxyXG4gIF1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuaGVhZGVyRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgYXMgc3RyaW5nKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYodGhpcy5oZWFkZXJEYXRhPy5jbGllbnQpe1xyXG4gICAgICB0aGlzLmNsaWVudElkID0gIHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICBpZiAodXNlcmluZm8gJiYgdXNlcmluZm8/LmNsaWVudElkKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IHVzZXJpbmZvPy5jbGllbnRJZFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoKS51dGMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW50VGltZSgpXHJcbiAgfVxyXG4gIHRhc2tzOiBudW1iZXJbXSA9IFsxXTsgLy8gTGlzdCBvZiB0YXNrIElEc1xyXG4gIHRhc2tDb3VudGVyOiBudW1iZXIgPSAxOyAvLyBDb3VudGVyIHRvIGdlbmVyYXRlIHVuaXF1ZSB0YXNrIElEc1xyXG5cclxuXHJcbiAgdXBkYXRlRm9ybSgpIHtcclxuICAgIHRoaXMudGFza0Zvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGNoZWNrbGlzdE5hbWU6IHRoaXMudGFza0RldGFpbHMuY2hlY2tMaXN0TmFtZSA/PyAnJyxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMudGFza0RldGFpbHMuY2hlY2tMaXN0RGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICB9KVxyXG4gICBcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YXNrRGV0YWlscz8uc2VjdGlvbnM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuYWRkU2VjdGlvbkZvcm0odGhpcy50YXNrRGV0YWlscy5zZWN0aW9uc1tpXSk7XHJcbiAgICAgIFxyXG5cclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnRhc2tEZXRhaWxzLnNlY3Rpb25zW2ldPy5xdWVzdGlvbnM/Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdGhpcy5hZGRRdWVzdGlvbkZvcm0odGhpcy50YXNrRGV0YWlscy5zZWN0aW9uc1tpXT8ucXVlc3Rpb25zW2pdLCBpKTtcclxuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHRoaXMudGFza0RldGFpbHMuc2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ubGVuZ3RoOyBrKyspIHsgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5hZGRBbnN3ZXJGb3JtKHRoaXMudGFza0RldGFpbHMuc2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vyc1trXSwgaSwgaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJylcclxuICAgIGNvbnN0IHRyaWdnZXJCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdHJpZ2dlckJ1dHRvbklkJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB0cmlnZ2VyQnV0dG9uPy5mb2N1cygpO1xyXG4gIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZVxyXG4gICAgbGV0IHJlc3BvbnNlOiBhbnkgPSB0aGlzLnRhc2tGb3JtLnZhbHVlLnNlY3Rpb25zXHJcbiAgXHJcbiAgICBjb25zdCB0aW1lID0gZGF5anModGhpcy5zZWxlY3RlZEl0ZW0sIFwiSEg6bW1cIilcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdyZWRvJykge1xyXG4gICAgICBsZXQgaW5wdXQgPSB7XHJcbiAgICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLnN0b3JlUHJvZmlsZS5jbGllbnRfaWQsXHJcbiAgICAgICAgXCJwYXlsb2FkXCI6IHtcclxuICAgICAgICAgIFwiX2lkXCI6IHRoaXMuY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZCxcclxuICAgICAgICAgIFwic2VjdGlvbl9pZFwiOnRoaXMuc2VjdGlvbkluZm8uc2VjdGlvbl9pZCxcclxuICAgICAgICAgIFwic2VjdGlvbk5hbWVcIjp0aGlzLnNlY3Rpb25JbmZvLnNlY3Rpb25OYW1lLFxyXG4gICAgICAgICAgXCJxbm9cIjogcmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLnFubyxcclxuICAgICAgICAgIFwiY2hlY2tsaXN0RGVzY3JpcHRpb25cIjp0aGlzLnRhc2tGb3JtLnZhbHVlLmNoZWNrbGlzdERlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgXCJwYXJlbnRRdWVzdGlvblwiOnRoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uP3RoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uOnRoaXMuaW5wdXREYXRhLnFubyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwidXBzZXJ0XCI6IHtcclxuICAgICAgICAgIFwicmVkb1N0YXR1c1wiOiB0cnVlLFxyXG4gICAgICAgICAgXCJyZWRvXCI6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBpZih0aGlzLm9wZXJhdGlvbnR5cGUgPT0gJ3Rhc2snKXtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlZG9UYXNrKGlucHV0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzJiZyZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3VibWl0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlZG9UYXNrY2hlY2tsaXN0KGlucHV0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzJiZyZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3VibWl0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBlbHNlIHsgIFxyXG4gICAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogdGhpcy50YXNrRm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogdGhpcy50YXNrRm9ybS52YWx1ZS5jaGVja2xpc3REZXNjcmlwdGlvbixcclxuICAgICAgICBcInByb2Nlc3NlZENoZWNrbGlzdElkXCI6IHRoaXMuY2hlY2tsaXN0SW5mbz8uY2hlY2tsaXN0SWQsXHJcbiAgICAgICAgXCJjaGVja0xpc3RJZFwiOnRoaXMuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgIFwic2VjdGlvbklkXCI6dGhpcy5zZWN0aW9uSW5mby5zZWN0aW9uX2lkLFxyXG4gICAgICAgIFwic2VjdGlvbk5hbWVcIjp0aGlzLnNlY3Rpb25JbmZvLnNlY3Rpb25OYW1lLFxyXG4gICAgICAgIFwicW5vXCI6IHRoaXMuaW5wdXREYXRhLnFubyxcclxuICAgICAgICBcInBhcmVudFF1ZXN0aW9uXCI6dGhpcy5pbnB1dERhdGEucGFyZW50UXVlc3Rpb24/dGhpcy5pbnB1dERhdGEucGFyZW50UXVlc3Rpb246dGhpcy5pbnB1dERhdGEucW5vLFxyXG4gICAgICAgIFwicXVlc3Rpb25cIjogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcInFub1wiOjEsXHJcbiAgICAgICAgICAgIFwicW5hbWVcIjogdGhpcy50YXNrRm9ybS52YWx1ZS5jaGVja2xpc3REZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHJlc3BvbnNlWzBdLnF1ZXN0aW9uc1swXS5hbnN3ZXJUeXBlLFxyXG4gICAgICAgICAgICBcInJ1bkFJXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICBcInJ1bkFJRGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgICAgXCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI6IHJlc3BvbnNlWzBdLnF1ZXN0aW9uc1swXS5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5LFxyXG4gICAgICAgICAgICBcImxpbmtUeXBlXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICBcInF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy51cGxvYWRlZEZpbGVzJiZ0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoPjA/dGhpcy51cGxvYWRlZEZpbGVzOnJlc3BvbnNlWzBdLnF1ZXN0aW9uc1swXS5xdWVzdGlvblJlZmVyZW5jZUltYWdlLFxyXG4gICAgICAgICAgICBcImRlc2NyaXB0aXZldHlwZVwiOiByZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uZGVzY3JpcHRpdmV0eXBlLFxyXG4gICAgICAgICAgICBcImFuc3dlcnNcIjogcmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLmFuc3dlcnNcclxuICAgICAgICAgIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIFwic2NoZWR1bGVEYXRlXCI6IGRheWpzKHRoaXMuc2VsZWN0ZWREYXRlLnN0YXJ0RGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgICBcInNjaGVkdWxlRW5kVGltZVwiOiB0aW1lLmZvcm1hdChcImhoOm1tIEFcIiksXHJcbiAgICAgICAgXCJ1c2VyRW1haWxcIjogdGhpcy5jaGVja2xpc3RJbmZvPy51c2VyRW1haWwsXHJcbiAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5LFxyXG4gICAgICAgIFwic3RvcmVOYW1lXCI6IHRoaXMuc3RvcmVQcm9maWxlPy5zdG9yZU5hbWU/dGhpcy5zdG9yZVByb2ZpbGU/LnN0b3JlTmFtZTpcIlwiLFxyXG4gICAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5zdG9yZVByb2ZpbGU/LmNsaWVudF9pZCxcclxuICAgICAgICBcImNoZWNrTGlzdFR5cGVcIjogXCJjaGVja2xpc3RUYXNrXCIgIC8vIFsnY2hlY2tsaXN0VGFzaycsJ2NjdHZdXHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBpZihyZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uYW5zd2VyVHlwZT09PSdpbWFnZSd8fHJlc3BvbnNlWzBdLnF1ZXN0aW9uc1swXS5hbnN3ZXJUeXBlPT09J2Rlc2NyaXB0aXZlSW1hZ2UnfHxyZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uYW5zd2VyVHlwZT09PSdtdWx0aXBsZUltYWdlJyl7XHJcbiAgICAgICAgaWYodGhpcy51cGxvYWRlZEZpbGVzJiZ0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgcGF5bG9hZC5xdWVzdGlvbi5mb3JFYWNoKChkYXRhOmFueSk9PntcclxuICAgICAgICAgICAgZGF0YT8uYW5zd2Vycy5mb3JFYWNoKChhbnM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGFucy5yZWZlcmVuY2VJbWFnZSA9IHRoaXMudXBsb2FkZWRGaWxlc1xyXG4gICAgICAgICAgICB9KTsgICBcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UuQ3JlYXRlY2hlY2tsaXN0VGFzayhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Ym1pdCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBcclxuXHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMudGFza0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hlY2tsaXN0TmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV1dLFxyXG4gICAgICBjaGVja2xpc3REZXNjcmlwdGlvbjogWycnLFtWYWxpZGF0b3JzLnJlcXVpcmVkLF1dLFxyXG4gICAgICBzZWN0aW9uczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PihbXSlcclxuICAgIH0pXHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0oKVxyXG5cclxuICB9XHJcbiAgYWRkU2VjdGlvbkZvcm0oc2VjdGlvbj86IFNlY3Rpb24pIHtcclxuXHJcbiAgICBjb25zdCBzZWN0aW9uRm9ybURhdGE6IEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaWQ6IFtzZWN0aW9uPy5pZCA/PyAnJ10sXHJcbiAgICAgIG5hbWU6IFtzZWN0aW9uPy5uYW1lID8/ICcnXSxcclxuICAgICAgcXVlc3Rpb25zOiB0aGlzLmZiLmFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkZvcm0+PihbXSlcclxuICAgIH0pO1xyXG5cclxuICAgICh0aGlzLnRhc2tGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pLnB1c2goc2VjdGlvbkZvcm1EYXRhKVxyXG4gIH1cclxuXHJcbiAgYWRkUXVlc3Rpb25Gb3JtKHF1ZXN0aW9uOiBRdWVzdGlvbiwgc2VjdGlvbkluZGV4OiBudW1iZXIsIGluc2VydEluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBxdWVzdGlvbkZvcm1EYXRhOiBGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPiA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBxbm86IFtxdWVzdGlvbj8ucW5vID8/ICh0aGlzLmdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXgpPy5sZW5ndGggPyB0aGlzLmdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXgpLmxlbmd0aCArIDEgOiAxKSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcW5hbWU6IFtxdWVzdGlvbj8ucW5hbWUgPz8gJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXV0sXHJcbiAgICAgIGFuc3dlclR5cGU6IFtxdWVzdGlvbj8uYW5zd2VyVHlwZSA/PyAnZGVzY3JpcHRpdmUnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBydW5BSTogW3F1ZXN0aW9uPy5ydW5BSSA/PyBmYWxzZV0sXHJcbiAgICAgIHJ1bkFJRGVzY3JpcHRpb246IFtxdWVzdGlvbj8ucnVuQUlEZXNjcmlwdGlvbiA/PyAnJ10sXHJcbiAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IFtxdWVzdGlvbj8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/PyBmYWxzZV0sXHJcbiAgICAgIGxpbmtUeXBlOiBbcXVlc3Rpb24/LmxpbmtUeXBlID8/IGZhbHNlXSxcclxuICAgICAgcXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogW1suLi5xdWVzdGlvbj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA/PyAnJ11dLFxyXG4gICAgICBhbnN3ZXJzOiB0aGlzLmZiLmFycmF5PEZvcm1Hcm91cDxBbnN3ZXJGb3JtPj4oW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocXVlc3Rpb24uYW5zd2VyVHlwZSA9PT0gJ2Rlc2NyaXB0aXZlJyB8fCBxdWVzdGlvbi5hbnN3ZXJUeXBlID09PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgcXVlc3Rpb25Gb3JtRGF0YS5hZGRDb250cm9sKCdkZXNjcmlwdGl2ZXR5cGUnLCBuZXcgRm9ybUNvbnRyb2wocXVlc3Rpb24/LmRlc2NyaXB0aXZldHlwZSA/PyAndGV4dCcpKVxyXG4gICAgfVxyXG4gaWYgKHF1ZXN0aW9uLmFuc3dlclR5cGUgPT09ICd5ZXMvbm8nIHx8IHF1ZXN0aW9uLmFuc3dlclR5cGUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgfHwgcXVlc3Rpb24uYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnKSB7XHJcbiAgICAgIHF1ZXN0aW9uRm9ybURhdGEuZ2V0KCdhbnN3ZXJzJyk/LmFkZFZhbGlkYXRvcnModW5pcXVlU3RyaW5nVmFsaWRhdG9yKCkpXHJcbiAgICB9XHJcbiAgICBpZiAoaW5zZXJ0SW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAoKHRoaXMudGFza0Zvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PilcclxuICAgICAgICAuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPj4pLmluc2VydChpbnNlcnRJbmRleCwgcXVlc3Rpb25Gb3JtRGF0YSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgKCh0aGlzLnRhc2tGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pXHJcbiAgICAgIC5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkZvcm0+PikucHVzaChxdWVzdGlvbkZvcm1EYXRhKVxyXG4gIH1cclxuXHJcbiAgYWRkQW5zd2VyRm9ybShhbnN3ZXI6IEFuc3dlciwgc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgaW5zZXJ0SW5kZXg/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGFuc3dlckZvcm1EYXRhOiBGb3JtR3JvdXA8QW5zd2VyRm9ybT4gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgYW5zd2VyOiBbYW5zd2VyPy5hbnN3ZXIgPz8gJyddLFxyXG4gICAgICBhbnN3ZXJvcHRpb25OdW1iZXI6IFthbnN3ZXI/LmFuc3dlcm9wdGlvbk51bWJlciA/PyAodGhpcy5nZXRBbnN3ZXJzKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCk/Lmxlbmd0aCA/IHRoaXMuZ2V0QW5zd2VycyhzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgpLmxlbmd0aCArIDEgOiAxKSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgc29wRmxhZzogW2Fuc3dlcj8uc29wRmxhZyA/PyBmYWxzZV0sXHJcbiAgICAgIHZhbGlkYXRpb246IFthbnN3ZXI/LnZhbGlkYXRpb24gPz8gZmFsc2VdLFxyXG4gICAgICB2YWxpZGF0aW9uVHlwZTogW2Fuc3dlcj8udmFsaWRhdGlvblR5cGUgPz8gJyddLFxyXG4gICAgICByZWZlcmVuY2VJbWFnZTogW1suLi5hbnN3ZXI/LnJlZmVyZW5jZUltYWdlID8/ICcnXV0sXHJcbiAgICAgIHNob3dMaW5rZWQ6IFthbnN3ZXI/LnNob3dMaW5rZWQgPz8gZmFsc2VdLFxyXG4gICAgICBsaW5rZWRRdWVzdGlvbjogW2Fuc3dlcj8ubGlua2VkUXVlc3Rpb24gPz8gMF0sXHJcbiAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbYW5zd2VyPy5uZXN0ZWRRdWVzdGlvbiA/PyBbXV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBhbnN3ZXJUeXBlOiBBbnN3ZXJUeXBlID0gKCh0aGlzLnRhc2tGb3JtPy5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpPy5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCk/LmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZTtcclxuXHJcbiAgICBpZiAoYW5zd2VyVHlwZSA9PT0gJ2Rlc2NyaXB0aXZlJyB8fCBhbnN3ZXJUeXBlID09PSAnZGVzY3JpcHRpdmVJbWFnZScgfHwgYW5zd2VyVHlwZSA9PT0gJ2ltYWdlJyB8fCBhbnN3ZXJUeXBlID09PSAnbXVsdGlwbGVJbWFnZScgfHwgYW5zd2VyVHlwZSA9PT0gJ2RhdGUnIHx8IGFuc3dlclR5cGUgPT09ICdsaW5lYXJzY2FsZScgfHwgYW5zd2VyVHlwZSA9PT0gJ3RpbWUnKSB7XHJcbiAgICAgIGFuc3dlckZvcm1EYXRhLmFkZENvbnRyb2woJ3ZhbGlkYXRpb25BbnN3ZXInLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy52YWxpZGF0aW9uQW5zd2VyID8/ICcnKSlcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYW5zd2VyVHlwZSA9PT0gJ3llcy9ubycgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB8fCBhbnN3ZXJUeXBlID09PSAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScpIHtcclxuICAgICAgYW5zd2VyRm9ybURhdGEuYWRkQ29udHJvbCgnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeScsIG5ldyBGb3JtQ29udHJvbChhbnN3ZXI/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPz8gZmFsc2UpKTtcclxuICAgICAgYW5zd2VyRm9ybURhdGEuYWRkQ29udHJvbCgncnVuQUknLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy5ydW5BSSA/PyBmYWxzZSkpO1xyXG4gICAgICBhbnN3ZXJGb3JtRGF0YS5nZXQoJ2Fuc3dlcicpPy5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFuc3dlclR5cGUgPT09ICdsaW5lYXJzY2FsZScpIHtcclxuICAgICAgYW5zd2VyRm9ybURhdGEuYWRkQ29udHJvbCgncmFuZ2VTdGFydCcsIG5ldyBGb3JtQ29udHJvbChhbnN3ZXI/LnJhbmdlU3RhcnQgPz8gMCkpO1xyXG4gICAgICBhbnN3ZXJGb3JtRGF0YS5hZGRDb250cm9sKCdyYW5nZUVuZCcsIG5ldyBGb3JtQ29udHJvbChhbnN3ZXI/LnJhbmdlRW5kID8/IDApKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYW5zd2VyVHlwZSA9PT0gJ3llcy9ubycgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB8fCBhbnN3ZXJUeXBlID09PSAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlSW1hZ2UnKSB7XHJcbiAgICAgIGFuc3dlckZvcm1EYXRhLmFkZENvbnRyb2woJ2Rlc2NyaXB0aXZldHlwZScsIG5ldyBGb3JtQ29udHJvbChhbnN3ZXI/LmRlc2NyaXB0aXZldHlwZSA/PyAndGV4dCcpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5zZXJ0SW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAoKCh0aGlzLnRhc2tGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pXHJcbiAgICAgICAgLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uRm9ybT4+KVxyXG4gICAgICAgIC5hdChxdWVzdGlvbkluZGV4KS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPEFuc3dlckZvcm0+PikuaW5zZXJ0KGluc2VydEluZGV4LCBhbnN3ZXJGb3JtRGF0YSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgKCgodGhpcy50YXNrRm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4+KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPj4pXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPEFuc3dlckZvcm0+PikucHVzaChhbnN3ZXJGb3JtRGF0YSlcclxuICB9XHJcblxyXG4gIGdldCBnZXRTZWN0aW9ucygpIHtcclxuICAgIHJldHVybiAodGhpcy50YXNrRm9ybT8uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PilcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuICgodGhpcy50YXNrRm9ybT8uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PikuYXQoc2VjdGlvbkluZGV4KT8uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uRm9ybT4+KVxyXG4gIH1cclxuICBpc0ludmFsaWRBbnN3ZXIoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIpIHtcclxuICAgIGxldCBhbnN3ZXIgPSB0aGlzLmdldEFuc3dlcnMoc2VjSWR4LHFuSWR4KTtcclxuICAgIGlmKGFuc3dlci52YWx1ZS5sZW5ndGggPiAyKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0QW5zd2VycyhzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCgodGhpcy50YXNrRm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4+KS5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkZvcm0+PikuYXQocXVlc3Rpb25JbmRleCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxBbnN3ZXJGb3JtPj4pXHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGV2ZW50OiBhbnksIHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc3dlckluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmZpbGVzICE9IHVuZGVmaW5lZCAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY2xpZW50SWQnLCB0aGlzLmNsaWVudElkIGFzIHN0cmluZylcclxuICAgICAgdGhpcy50cmF4U2VydmljZS50YXNrSW1hZ2V1cGxvYWQoZm9ybURhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhLmltZ1VybCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XHJcbiAgICAgICAgICAgIHRoaXMucHJldmlld1VybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7IFxyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMucHVzaChyZXMuZGF0YS5pbWdVcmwpXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ1NvbWV0aGluZyB3ZW50IHdyb25nJylcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBjbG9zZURyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgIFxyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7IFxyXG4gIH1cclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kcm9wRG93biA9ICF0aGlzLmRyb3BEb3duO1xyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdGVkSXRlbTogYW55ID0gJzAwOjAwJztcclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1cnJlbnRUaW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgdXBkYXRlQ3VycmVudFRpbWUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgbmV4dEhvdXIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbmV4dEhvdXIuc2V0SG91cnMobm93LmdldEhvdXJzKCkgKyAxKTsgXHJcbiAgXHJcbiAgICBjb25zdCBob3VycyA9IFN0cmluZyhub3cuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoTWF0aC5mbG9vcihub3cuZ2V0TWludXRlcygpIC8gMzApICogMzApLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gYCR7aG91cnN9OiR7bWludXRlc31gO1xyXG4gIFxyXG4gICAgY29uc3QgbmV4dEhvdXJTdHIgPSBgJHtTdHJpbmcobmV4dEhvdXIuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKX06MDBgO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnRpbWVEZXRhaWxzW3RoaXMudGltZURldGFpbHMubGVuZ3RoLTJdLmlkOyBcclxuICB9XHJcbiAgXHJcbiAgaXNEaXNhYmxlZCh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zb2xlLmxvZyhkYXlqcyhub3cpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLGRheWpzKHRoaXMuc2VsZWN0ZWREYXRlLnN0YXJ0RGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSlcclxuICAgIGlmKGRheWpzKG5vdykuZm9ybWF0KCdZWVlZLU1NLUREJyk9PT1kYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZS5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIikpe1xyXG4gICAgICBub3cuc2V0SG91cnMobm93LmdldEhvdXJzKCkgKyAxKTsgXHJcbiAgICAgIGNvbnN0IGRpc2FibGVkVGhyZXNob2xkID0gYCR7U3RyaW5nKG5vdy5nZXRIb3VycygpKS5wYWRTdGFydCgyLCAnMCcpfTowMGA7XHJcbiAgICAgIGNvbnNvbGUubG9nKGRpc2FibGVkVGhyZXNob2xkKVxyXG4gICAgICByZXR1cm4gdGltZSA8IGRpc2FibGVkVGhyZXNob2xkO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfSAgICBcclxuICB9XHJcbiAgXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25BbnN3ZXJEZWxldGUoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYW5zd2VySW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5nZXRBbnN3ZXJzKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCkucmVtb3ZlQXQoYW5zd2VySW5kZXgpXHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QoJ0Fuc3dlciBkZWxldGVkIHN1Y2Nlc3NmdWxseScpXHJcblxyXG4gIH1cclxuXHJcbiAgb25WYWxpZGF0ZVJlc3BvbnNlQ2hhbmdlKGV2ZW50OiBhbnksIHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc3dlckluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmdldEFuc3dlcnMoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4KS5hdChhbnN3ZXJJbmRleCkuZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKVxyXG4gICAgfVxyXG4gIH1cclxuICBhZGROZXdBbnN3ZXIoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgdHlwZTogQW5zd2VyVHlwZSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgfHwgdHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnKSB7XHJcbiAgICAgIHRoaXMuYWRkQW5zd2VyRm9ybShtdWx0aXBsZWNob2ljZV9hbnN3ZXJfdGVtcGxhdGUgYXMgQW5zd2VyLCBzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgpXHJcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdCgnQW5zd2VyIGFkZGVkIHN1Y2Nlc3NmdWxseScpXHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBvblF1ZXN0aW9uQ2hhbmdlKGV2ZW50OiBhbnksIHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBxdWVzdGlvblxyXG4gICAgY29uc3QgYW5zd2VyVHlwZTogQW5zd2VyVHlwZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxyXG4gICAgc3dpdGNoIChhbnN3ZXJUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ2Rlc2NyaXB0aXZlJzogcXVlc3Rpb24gPSBkZXNjcmlwdGl2ZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd5ZXMvbm8nOiBxdWVzdGlvbiA9IHllc29ybm9fcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnOiBxdWVzdGlvbiA9IG11bHRpcGxlY2hvaWNlc2luZ2xlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnOiBxdWVzdGlvbiA9IG11bHRpcGxlY2hvaWNlbXVsdGlwbGVfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZGVzY3JpcHRpdmVJbWFnZSc6IHF1ZXN0aW9uID0gZGVzY3JpcHRpdmVJbWFnZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdpbWFnZSc6IHF1ZXN0aW9uID0gaW1hZ2VfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmlkZW8nOiBxdWVzdGlvbiA9IHZpZGVvX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlSW1hZ2UnOiBxdWVzdGlvbiA9IG11bHRpcGxlSW1hZ2VfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZGF0ZSc6IHF1ZXN0aW9uID0gZGF0ZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsaW5lYXJzY2FsZSc6IHF1ZXN0aW9uID0gbGluZWFyc2NhbGVfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGltZSc6IHF1ZXN0aW9uID0gdGltZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OiBxdWVzdGlvbiA9IGRlc2NyaXB0aXZlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjb25zdCBxdWVzdGlvbk5hbWUgPSB0aGlzLmdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXgpLmF0KHF1ZXN0aW9uSW5kZXgpLmdldCgncW5hbWUnKT8udmFsdWUgfHwgJydcclxuXHJcbiAgICB0aGlzLmdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXgpLnJlbW92ZUF0KHF1ZXN0aW9uSW5kZXgpXHJcblxyXG4gICAgdGhpcy5hZGRRdWVzdGlvbkZvcm0ocXVlc3Rpb24gYXMgUXVlc3Rpb24sIHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleClcclxuXHJcbiAgICB0aGlzLmdldFF1ZXN0aW9ucyhzZWN0aW9uSW5kZXgpLmF0KHF1ZXN0aW9uSW5kZXgpLmdldCgncW5hbWUnKT8uc2V0VmFsdWUocXVlc3Rpb25OYW1lKVxyXG5cclxuICAgIGlmIChxdWVzdGlvbj8uYW5zd2Vycy5sZW5ndGgpIHtcclxuICAgICAgcXVlc3Rpb24uYW5zd2Vycy5mb3JFYWNoKChlbGVtZW50LCBpZHgpID0+IHtcclxuICAgICAgICB0aGlzLmFkZEFuc3dlckZvcm0oZWxlbWVudCBhcyBBbnN3ZXIsIHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgaWR4KVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnkgPSB7fTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICByZXR1cm4gbS5pc0JlZm9yZSh0aGlzLmRheWpzKCksICdkYXknKSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBUaW1lUGVyaW9kKSB7XHJcbiAgICBpZiAoIWV2ZW50LmVuZERhdGUgfHwgIWV2ZW50LnN0YXJ0RGF0ZSkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB1cGxvYWRlZEZpbGVzOiBGaWxlW10gPSBbXTtcclxuXHJcbiAgXHJcbiAgc2VsZWN0ZWRGaWxlPzogRmlsZTsgXHJcbiAgcHJldmlld1VybD86IGFueTsgXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBcclxuICByZW1vdmVJbWFnZShpbmRleDphbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5wcmV2aWV3VXJsID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsMSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgZ3JvdXAtZGVsZXRlIHB5LTBcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdjcmVhdGV0YXNrJ1wiIGNsYXNzPVwiY2FyZC1ib2R5IHB5LTAgZC1mbGV4IGZsZXgtc3RhcnQgZmxleC1jb2x1bW4gcC05IFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcHgtMCBweS01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zMCAxOEgyMkMyMS40Njk2IDE4IDIwLjk2MDkgMTguMjEwNyAyMC41ODU4IDE4LjU4NThDMjAuMjEwNyAxOC45NjA5IDIwIDE5LjQ2OTYgMjAgMjBWMzZDMjAgMzYuNTMwNCAyMC4yMTA3IDM3LjAzOTEgMjAuNTg1OCAzNy40MTQyQzIwLjk2MDkgMzcuNzg5MyAyMS40Njk2IDM4IDIyIDM4SDM0QzM0LjUzMDQgMzggMzUuMDM5MSAzNy43ODkzIDM1LjQxNDIgMzcuNDE0MkMzNS43ODkzIDM3LjAzOTEgMzYgMzYuNTMwNCAzNiAzNlYyNE0zMCAxOEwzNiAyNE0zMCAxOFYyNEgzNk0yOCAzNFYyOE0yNSAzMUgzMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHctMTAwIHAtMSAgc2Nyb2xsIGN1c3RvbS1zY3JvbGxcIiA+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidGFza0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZ2V0U2VjdGlvbnM/LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cInNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0UXVlc3Rpb25zKGkpPy5jb250cm9sczsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cInF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXNrIE5hbWU8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJ0YXNrRm9ybS5jb250cm9scy5jaGVja2xpc3ROYW1lXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBUYXNrIE5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcGx1Z2lucy1tZXNzYWdlLWNvbnRhaW5lciBmdi1wbHVnaW5zLW1lc3NhZ2UtY29udGFpbmVyLS1lbmFibGVkIGludmFsaWQtZmVlZGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwXCI+VGhpcyBUYXNrIGlzIGxpbmtlZCB0byA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24uZ2V0KCdxbm8nKT8udmFsdWV9fS4ge3txdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LnZhbHVlfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCIgKm5nSWY9XCJpbnB1dERhdGEuYW5zd2VyVHlwZT09PSd2aWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5wdXREYXRhLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlVwbG9hZGVkIFZpZGVvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJyZWNhcC1pbWcgcC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdpbWFnZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2Rlc2NyaXB0aXZlSW1hZ2UnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdtdWx0aXBsZUltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dERhdGEudXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLmFuc3dlcn19XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VzaW5nbGUnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSd5ZXMvbm8nfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdkYXRlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0ndGltZScgfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdtdWx0aXBsZWNob2ljZW11bHRpcGxlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbGluZWFyc2NhbGUnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdkZXNjcmlwdGl2ZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dERhdGEudXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0xXCI+e3tpdGVtLmFuc3dlcn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhc2sgRGVzY3JpcHRpb248c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFtmb3JtQ29udHJvbF09XCJ0YXNrRm9ybS5jb250cm9scy5jaGVja2xpc3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGEgY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiTWFpbiBlbnRyYW5jZSBzaWduYWdlIGlzIGNyYWNrZWQsIGFuZCBsaWdodHMgYXJlIGZsaWNrZXJpbmcuIFBsZWFzZSByZXRha2UgdGhlIGltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCI0XCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zZSBUeXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJvblF1ZXN0aW9uQ2hhbmdlKCRldmVudCwgaSwgailcIiBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGFuc3dlclR5cGVzXCIgW3ZhbHVlXT1cImFuc3dlci52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YW5zd2VyLmxhYmVsfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09J3RpbWUnJiZxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgIT09J2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUxIG15LTNcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnN3ZXIgT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCIncXVlc3Rpb24tJyArIGkgKyBqXCIgY2xhc3M9XCJxdWVzdGlvbi1jb250YWluZXIgbWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdkZXNjcmlwdGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0ZXh0XCIgW2lkXT1cIidkZXNjcmlwdGl2ZXR5cGVfdGV4dCcgKyBpICsgalwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2Rlc2NyaXB0aXZldHlwZV90ZXh0JyArIGkgKyBqXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibnVtYmVyXCIgW2lkXT1cIidkZXNjcmlwdGl2ZXR5cGVfbnVtYmVyJyArIGkgKyBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInZGVzY3JpcHRpdmV0eXBlX251bWJlcicgKyBpICsgalwiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICd5ZXMvbm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEFuc3dlcnMoaSwgaikuY29udHJvbHM7IGxldCBrID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGFuc3dlciBoZXJlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaW52YWxpZCAmJiBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcigncmVxdWlyZWQnKXx8IGFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTJcIj4qIEFuc3dlciBpcyByZXF1aXJlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB8fCBxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBnZXRBbnN3ZXJzKGksIGopLmNvbnRyb2xzOyBsZXQgayA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBhbnN3ZXIgaGVyZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc0ludmFsaWRBbnN3ZXIoaSxqKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgIChjbGljayk9XCJvbkFuc3dlckRlbGV0ZShpLCBqLCBrKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIGFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRlc3RcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggX25nY29udGVudC1uZy1jMTQ5MTA0NDE3MD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaW52YWxpZCAmJiBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcigncmVxdWlyZWQnKXx8YW5zd2VyLmdldCgnYW5zd2VyJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtMlwiPiogQW5zd2VyIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZE5ld0Fuc3dlcihpLCBqLCAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRkLXJlZmVyZW5jZS1idG4gbWItNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgTW9yZSBBbnN3ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2Rlc2NyaXB0aXZlSW1hZ2UnIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2ltYWdlJ1wiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBnZXRBbnN3ZXJzKGksIGopLmNvbnRyb2xzOyBsZXQgayA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHBzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1ZXN0aW9uLmNvbnRyb2xzLmFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2FsbG93X3VwbG9hZF9mcm9tX2dhbGxlcnknICsgaSArIGpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInYWxsb3dfdXBsb2FkX2Zyb21fZ2FsbGVyeScgKyBpICsgalwiPkFsbG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZCBmcm9tIGdhbGxlcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAndmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIHBzLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInYWxsb3dfdXBsb2FkX2Zyb21fZ2FsbGVyeScgKyBpICsgalwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIidhbGxvd191cGxvYWRfZnJvbV9nYWxsZXJ5JyArIGkgKyBqXCI+QWxsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkIGZyb20gZ2FsbGVyeTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgZ2V0QW5zd2VycyhpLCBqKS5jb250cm9sczsgbGV0IGsgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBwcy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWVzdGlvbi5jb250cm9scy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidhbGxvd191cGxvYWRfZnJvbV9nYWxsZXJ5JyArIGkgKyBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2FsbG93X3VwbG9hZF9mcm9tX2dhbGxlcnknICsgaSArIGpcIj5BbGxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQgZnJvbSBnYWxsZXJ5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCIgKm5nSWY9XCJxdWVzdGlvbi5jb250cm9scy5kZXNjcmlwdGl2ZXR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJxdWVzdGlvbi5jb250cm9scy5kZXNjcmlwdGl2ZXR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Rlc2NyaXB0aXZlX2Fuc3dlcl92YWxpZGF0aW9uX3RleHQnICsgaSArIGogKyBrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInZGVzY3JpcHRpdmVfYW5zd2VyX3ZhbGlkYXRpb25fdGV4dCcgKyBpICsgaiArIGtcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwicXVlc3Rpb24uY29udHJvbHMuZGVzY3JpcHRpdmV0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Rlc2NyaXB0aXZlX2Fuc3dlcl92YWxpZGF0aW9uX251bWJlcicgKyBpICsgaiArIGtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIidkZXNjcmlwdGl2ZV9hbnN3ZXJfdmFsaWRhdGlvbl9udW1iZXInICsgaSArIGogKyBrXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2RhdGUnIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3RpbWUnXCI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdsaW5lYXJzY2FsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgZ2V0QW5zd2VycyhpLCBqKS5jb250cm9sczsgbGV0IGsgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VTdGFydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0yIGNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VFbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEdWUgZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBbYXV0b0FwcGx5XT1cInRydWVcIiBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPkR1ZSB0aW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgbXQtMSB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBoLTQ1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NVY0Ljk5OTg0TTYuNjY2NjcgMS42NjY1VjQuOTk5ODRNMi41IDguMzMzMTdIMTcuNU00LjE2NjY3IDMuMzMzMTdIMTUuODMzM0MxNi43NTM4IDMuMzMzMTcgMTcuNSA0LjA3OTM2IDE3LjUgNC45OTk4NFYxNi42NjY1QzE3LjUgMTcuNTg3IDE2Ljc1MzggMTguMzMzMiAxNS44MzMzIDE4LjMzMzJINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzIgMi41IDE3LjU4NyAyLjUgMTYuNjY2NVY0Ljk5OTg0QzIuNSA0LjA3OTM2IDMuMjQ2MTkgMy4zMzMxNyA0LjE2NjY3IDMuMzMzMTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHMtMTJcIj57eyBzZWxlY3RlZEl0ZW0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRyb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTEgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgei0xIGgtMjAwcHggc2Nyb2xsLXkgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGltZURldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkSXRlbSA9PT0gaXRlbS50ZXh0ID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChpdGVtLnRleHQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtLnRleHQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQXNzaWduIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFt2YWx1ZV09XCJ0aGlzLmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5XCIgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbXktMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1hdHRhY2ggY29sLW1kLTMgY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cInRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGg8M1wiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy44NjY2IDkuMjA4MUwxMC4yMDgyIDE2Ljg2NjRDOS4yNzAwNSAxNy44MDQ2IDcuOTk3NTcgMTguMzMxNyA2LjY3MDc1IDE4LjMzMTdDNS4zNDM5MyAxOC4zMzE3IDQuMDcxNDUgMTcuODA0NiAzLjEzMzI1IDE2Ljg2NjRDMi4xOTUwNSAxNS45MjgyIDEuNjY3OTcgMTQuNjU1OCAxLjY2Nzk3IDEzLjMyODlDMS42Njc5NyAxMi4wMDIxIDIuMTk1MDUgMTAuNzI5NiAzLjEzMzI1IDkuNzkxNDRMMTAuNzkxNiAyLjEzMzFDMTEuNDE3MSAxLjUwNzYzIDEyLjI2NTQgMS4xNTYyNSAxMy4xNDk5IDEuMTU2MjVDMTQuMDM0NSAxLjE1NjI1IDE0Ljg4MjggMS41MDc2MyAxNS41MDgyIDIuMTMzMUMxNi4xMzM3IDIuNzU4NTcgMTYuNDg1MSAzLjYwNjg5IDE2LjQ4NTEgNC40OTE0NEMxNi40ODUxIDUuMzc1OTggMTYuMTMzNyA2LjIyNDMgMTUuNTA4MiA2Ljg0OTc3TDcuODQxNTggMTQuNTA4MUM3LjUyODg1IDE0LjgyMDggNy4xMDQ2OSAxNC45OTY1IDYuNjYyNDIgMTQuOTk2NUM2LjIyMDE0IDE0Ljk5NjUgNS43OTU5OCAxNC44MjA4IDUuNDgzMjUgMTQuNTA4MUM1LjE3MDUxIDE0LjE5NTQgNC45OTQ4MiAxMy43NzEyIDQuOTk0ODIgMTMuMzI4OUM0Ljk5NDgyIDEyLjg4NjcgNS4xNzA1MSAxMi40NjI1IDUuNDgzMjUgMTIuMTQ5OEwxMi41NTgyIDUuMDgzMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCI+QWRkIEF0dGFjaG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiLnBuZywgLmpwZywgLmpwZWcsIC5zdmcsIC5naWZcIiAoY2hhbmdlKT1cInVwbG9hZEZpbGUoJGV2ZW50LDAsMCwwKVwiIGhpZGRlbiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGltYWdlLXByZXZpZXcgbXQtMlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVwbG9hZGVkRmlsZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZS1pY29uXCIgKGNsaWNrKT1cInJlbW92ZUltYWdlKGkpXCI+4pyWPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtXCIgYWx0PVwiUHJldmlld1wiIC8+ICBcclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHctMTAwIG1vZGFsLWZvb3RlciBweC0wIHB0LTMgcGItNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiIFtkaXNhYmxlZF09XCIhdGhpcy50YXNrRm9ybS52YWxpZHx8c3VibWl0dGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPkNyZWF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIFRhc2s8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J3JlZG8nXCIgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgc2Nyb2xsIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOSAyMC4wMDAxVjI2LjAwMDFNMzkgMjYuMDAwMUgzM00zOSAyNi4wMDAxTDM0LjM2IDIxLjY0MDFDMzMuMjg1MyAyMC41NjQ4IDMxLjk1NTYgMTkuNzc5MyAzMC40OTUyIDE5LjM1NjhDMjkuMDM0OCAxOC45MzQ0IDI3LjQ5MTEgMTguODg4OCAyNi4wMDgzIDE5LjIyNDNDMjQuNTI1NSAxOS41NTk4IDIzLjE1MTggMjAuMjY1NSAyMi4wMTU1IDIxLjI3NTVDMjAuODc5MSAyMi4yODU1IDIwLjAxNzIgMjMuNTY2OSAxOS41MSAyNS4wMDAxTTE3IDM2LjAwMDFWMzAuMDAwMU0xNyAzMC4wMDAxSDIzTTE3IDMwLjAwMDFMMjEuNjQgMzQuMzYwMUMyMi43MTQ3IDM1LjQzNTQgMjQuMDQ0NCAzNi4yMjA5IDI1LjUwNDggMzYuNjQzM0MyNi45NjUyIDM3LjA2NTcgMjguNTA4OSAzNy4xMTEzIDI5Ljk5MTcgMzYuNzc1OEMzMS40NzQ1IDM2LjQ0MDMgMzIuODQ4MiAzNS43MzQ2IDMzLjk4NDUgMzQuNzI0N0MzNS4xMjA5IDMzLjcxNDcgMzUuOTgyOCAzMi40MzMzIDM2LjQ5IDMxLjAwMDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZ2V0U2VjdGlvbnM/LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBnZXRRdWVzdGlvbnMoaSk/LmNvbnRyb2xzOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cInF1ZXN0aW9uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSB3LTEwMCBwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cImxhYmVsLW5hbWUxIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibGFiZWwtbmFtZTEgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0SW5mby5jaGVja2xpc3ROYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24uZ2V0KCdxbm8nKT8udmFsdWV9fS4ge3txdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LnZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCIgKm5nSWY9XCJpbnB1dERhdGEuYW5zd2VyVHlwZT09PSd2aWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dERhdGEudXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBWaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgY2xhc3M9XCJyZWNhcC1pbWcgcC0zIHZpZGVvLXNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0uYW5zd2VyfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2ltYWdlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nZGVzY3JpcHRpdmVJbWFnZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J211bHRpcGxlSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5wdXREYXRhLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvXCIgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0uYW5zd2VyfX1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J211bHRpcGxlY2hvaWNlc2luZ2xlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0neWVzL25vJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VtdWx0aXBsZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2RhdGUnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSd0aW1lJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbGluZWFyc2NhbGUnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdkZXNjcmlwdGl2ZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGlucHV0RGF0YS51c2VyQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMVwiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidGFza0Zvcm1cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbZm9ybUNvbnRyb2xdPVwidGFza0Zvcm0uY29udHJvbHMuY2hlY2tsaXN0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIGNvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIk1haW4gZW50cmFuY2Ugc2lnbmFnZSBpcyBjcmFja2VkLCBhbmQgbGlnaHRzIGFyZSBmbGlja2VyaW5nLiBQbGVhc2UgcmV0YWtlIHRoZSBpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiNFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZnYtcm93IG15LTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWF0dGFjaCBjb2wtbWQtMyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy44NjY2IDkuMjA4MUwxMC4yMDgyIDE2Ljg2NjRDOS4yNzAwNSAxNy44MDQ2IDcuOTk3NTcgMTguMzMxNyA2LjY3MDc1IDE4LjMzMTdDNS4zNDM5MyAxOC4zMzE3IDQuMDcxNDUgMTcuODA0NiAzLjEzMzI1IDE2Ljg2NjRDMi4xOTUwNSAxNS45MjgyIDEuNjY3OTcgMTQuNjU1OCAxLjY2Nzk3IDEzLjMyODlDMS42Njc5NyAxMi4wMDIxIDIuMTk1MDUgMTAuNzI5NiAzLjEzMzI1IDkuNzkxNDRMMTAuNzkxNiAyLjEzMzFDMTEuNDE3MSAxLjUwNzYzIDEyLjI2NTQgMS4xNTYyNSAxMy4xNDk5IDEuMTU2MjVDMTQuMDM0NSAxLjE1NjI1IDE0Ljg4MjggMS41MDc2MyAxNS41MDgyIDIuMTMzMUMxNi4xMzM3IDIuNzU4NTcgMTYuNDg1MSAzLjYwNjg5IDE2LjQ4NTEgNC40OTE0NEMxNi40ODUxIDUuMzc1OTggMTYuMTMzNyA2LjIyNDMgMTUuNTA4MiA2Ljg0OTc3TDcuODQxNTggMTQuNTA4MUM3LjUyODg1IDE0LjgyMDggNy4xMDQ2OSAxNC45OTY1IDYuNjYyNDIgMTQuOTk2NUM2LjIyMDE0IDE0Ljk5NjUgNS43OTU5OCAxNC44MjA4IDUuNDgzMjUgMTQuNTA4MUM1LjE3MDUxIDE0LjE5NTQgNC45OTQ4MiAxMy43NzEyIDQuOTk0ODIgMTMuMzI4OUM0Ljk5NDgyIDEyLjg4NjcgNS4xNzA1MSAxMi40NjI1IDUuNDgzMjUgMTIuMTQ5OEwxMi41NTgyIDUuMDgzMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj5BZGQgQXR0YWNobWVudDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiLnBuZywgLmpwZywgLmpwZWcsIC5zdmcsIC5naWZcIiAoY2hhbmdlKT1cInVwbG9hZEZpbGUoJGV2ZW50LDAsMCwwKVwiIGhpZGRlbiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1wcmV2aWV3IG10LTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVtb3ZlLWljb25cIiAoY2xpY2spPVwicmVtb3ZlSW1hZ2UoaSlcIj7inJY8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtXCIgYWx0PVwiUHJldmlld1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHVlIGRhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwiZmFsc2VcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+RHVlIHRpbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIG10LTEgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC00NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NVY0Ljk5OTg0TTYuNjY2NjcgMS42NjY1VjQuOTk5ODRNMi41IDguMzMzMTdIMTcuNU00LjE2NjY3IDMuMzMzMTdIMTUuODMzM0MxNi43NTM4IDMuMzMzMTcgMTcuNSA0LjA3OTM2IDE3LjUgNC45OTk4NFYxNi42NjY1QzE3LjUgMTcuNTg3IDE2Ljc1MzggMTguMzMzMiAxNS44MzMzIDE4LjMzMzJINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzIgMi41IDE3LjU4NyAyLjUgMTYuNjY2NVY0Ljk5OTg0QzIuNSA0LjA3OTM2IDMuMjQ2MTkgMy4zMzMxNyA0LjE2NjY3IDMuMzMzMTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcy0xMlwiPnt7IHNlbGVjdGVkSXRlbSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHotMSBoLTIwMHB4IHNjcm9sbC15IHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRpbWVEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRJdGVtID09PSBpdGVtLnRleHQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoaXRlbS50ZXh0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0udGV4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzaWduIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3ZhbHVlXT1cInRoaXMuY2hlY2tsaXN0SW5mbz8uc3VibWl0dGVkQnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJcIiBpZD1cImZsZXhDaGVja0RlZmF1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBsYWJlbC1uYW1lXCIgZm9yPVwiZmxleENoZWNrRGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5IGltYWdlIHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0zXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRhc2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGFzay9hZGQtdGFzay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC10YXNrL2FkZC10YXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBMEIsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw2QkFBNkIsRUFBRSxrQ0FBa0MsRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSw4QkFBOEIsRUFBRSx3Q0FBd0MsRUFBRSxzQ0FBc0MsRUFBRSwrQkFBK0IsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RaLE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sZ0JBQWdCO0lBc0NQO0lBQXlCO0lBQXFDO0lBQWdDO0lB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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDbHRCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtLQUM3MUIsQ0FBQTtJQUdELFlBQW9CLEVBQWUsRUFBVSxXQUEyQixFQUFV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LElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7d0dBNWRVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLGtkQ3JCN0IsdXBnREEybUJNOzs0RkR0bEJPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjOytRQU1mLElBQUk7c0JBQVosS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBdUJHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQWdUTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBcUlsQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFuc3dlciwgQW5zd2VyRm9ybSwgQW5zd2VyVHlwZSwgSGVhZGVyRmlsdGVyLCBJVGFzaywgUXVlc3Rpb24sIFF1ZXN0aW9uRm9ybSwgU2VjdGlvbiwgU2VjdGlvbkZvcm0sIFRhc2tGb3JtLCBWYWxpZGF0aW9uVHlwZSB9IGZyb20gJy4vY3JlYXRlLXRhc2suaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgZGF0ZV9xdWVzdGlvbl90ZW1wbGF0ZSwgZGVzY3JpcHRpdmVfcXVlc3Rpb25fdGVtcGxhdGUsIGRlc2NyaXB0aXZlSW1hZ2VfcXVlc3Rpb25fdGVtcGxhdGUsIGltYWdlX3F1ZXN0aW9uX3RlbXBsYXRlLCBsaW5lYXJzY2FsZV9xdWVzdGlvbl90ZW1wbGF0ZSwgbXVsdGlwbGVjaG9pY2VfYW5zd2VyX3RlbXBsYXRlLCBtdWx0aXBsZWNob2ljZW11bHRpcGxlX3F1ZXN0aW9uX3RlbXBsYXRlLCBtdWx0aXBsZWNob2ljZXNpbmdsZV9xdWVzdGlvbl90ZW1wbGF0ZSwgbXVsdGlwbGVJbWFnZV9xdWVzdGlvbl90ZW1wbGF0ZSwgdGltZV9xdWVzdGlvbl90ZW1wbGF0ZSwgdmlkZW9fcXVlc3Rpb25fdGVtcGxhdGUsIHllc29ybm9fcXVlc3Rpb25fdGVtcGxhdGUgfSBmcm9tICcuL2NyZWF0ZS10YXNrLmRhdGEnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4vd2hpdGVzcGFjZS12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB1bmlxdWVTdHJpbmdWYWxpZGF0b3IgfSBmcm9tICcuL3VuaXF1ZS1zdHJpbmctdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgVGltZVBlcmlvZCB9IGZyb20gJ25neC1kYXRlcmFuZ2VwaWNrZXItbWF0ZXJpYWwvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtdGFzaycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10YXNrLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLXRhc2suY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUYXNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0YXNrRm9ybTogRm9ybUdyb3VwPFRhc2tGb3JtPjtcclxuICBASW5wdXQoKSB0eXBlOiBhbnlcclxuICBASW5wdXQoKSBzb3VyY2VDaGVja0xpc3RfaWQ6IGFueVxyXG5cclxuICBzdWJtaXR0ZWQ6Ym9vbGVhbiA9ICBmYWxzZVxyXG4gIGhlYWRlckRhdGE6IEhlYWRlckZpbHRlciB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgYW5zd2VyVHlwZXM6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IEFuc3dlclR5cGUgfVtdID0gW1xyXG4gICAgeyBsYWJlbDogJ0Rlc2NyaXB0aXZlIEFuc3dlcicsIHZhbHVlOiAnZGVzY3JpcHRpdmUnIH0sXHJcbiAgICB7IGxhYmVsOiAnQS9CIFF1ZXN0aW9uJywgdmFsdWU6ICd5ZXMvbm8nIH0sXHJcbiAgICB7IGxhYmVsOiAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC0gU2luZ2xlIEFuc3dlcicsIHZhbHVlOiAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIH0sXHJcbiAgICB7IGxhYmVsOiAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uIC0gTXVsdGlwbGUgQW5zd2VyJywgdmFsdWU6ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgSW1hZ2Ugd2l0aCBEZXNjcmlwdGlvbicsIHZhbHVlOiAnZGVzY3JpcHRpdmVJbWFnZScgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIEltYWdlIGFzIGFuc3dlcicsIHZhbHVlOiAnaW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSB2aWRlbyBhcyBhbnN3ZXInLCB2YWx1ZTogJ3ZpZGVvJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgTXVsdGlwbGUgSW1hZ2UnLCB2YWx1ZTogJ211bHRpcGxlSW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnRGF0ZSAtIEREL01NL1lZWVknLCB2YWx1ZTogJ2RhdGUnIH0sXHJcbiAgICB7IGxhYmVsOiAnTGluZWFyIFNjYWxlJywgdmFsdWU6ICdsaW5lYXJzY2FsZScgfSxcclxuICAgIHsgbGFiZWw6ICdUaW1lJywgdmFsdWU6ICd0aW1lJyB9XVxyXG4gIHZhbGlkYXRpb25UeXBlczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogVmFsaWRhdGlvblR5cGUgfVtdID0gW1xyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgSW1hZ2UnLCB2YWx1ZTogJ0NhcHR1cmUgSW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnRGVzY3JpcHRpdmUgQW5zd2VyJywgdmFsdWU6ICdEZXNjcmlwdGl2ZSBBbnN3ZXInIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSBWaWRlbycsIHZhbHVlOiAnQ2FwdHVyZSBWaWRlbycgfV1cclxuICBlbnZpcm9ubWVudDogYW55O1xyXG4gIHRhc2tDb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSB0YXNrRGV0YWlsczogYW55XHJcbiAgQElucHV0KCkgaW5wdXREYXRhOiBhbnlcclxuICBASW5wdXQoKSBjaGVja2xpc3RJbmZvOiBhbnlcclxuICBASW5wdXQoKSBzdG9yZVByb2ZpbGU6IGFueVxyXG4gIEBJbnB1dCgpIHNlY3Rpb25JbmZvOiBhbnlcclxuICBASW5wdXQoKSBvcGVyYXRpb250eXBlOiBhbnlcclxuICAgIGNsaWVudElkOmFueVxyXG4gIHRpbWVEZXRhaWxzOiBhbnkgPSBbeyBpZDogJzAwOjAwJywgdGV4dDogXCIwMDowMFwiIH0sIHsgaWQ6ICcwMDozMCcsIHRleHQ6IFwiMDA6MzBcIiB9LCB7IGlkOiAnMDE6MDAnLCB0ZXh0OiBcIjAxOjAwXCIgfSwgeyBpZDogJzAxOjMwJywgdGV4dDogXCIwMTozMFwiIH0sIHsgaWQ6ICcwMjowMCcsIHRleHQ6IFwiMDI6MDBcIiB9LCB7IGlkOiAnMDI6MzAnLCB0ZXh0OiBcIjAyOjMwXCIgfSwgeyBpZDogJzAzOjAwJywgdGV4dDogXCIwMzowMFwiIH0sIHsgaWQ6ICcwMzozMCcsIHRleHQ6IFwiMDM6MzBcIiB9LCB7IGlkOiAnMDQ6MDAnLCB0ZXh0OiBcIjA0OjAwXCIgfSwgeyBpZDogJzA0OjMwJywgdGV4dDogXCIwNDozMFwiIH0sIHsgaWQ6ICcwNTowMCcsIHRleHQ6IFwiMDU6MDBcIiB9LCB7IGlkOiAnMDU6MzAnLCB0ZXh0OiBcIjA1OjMwXCIgfSwgeyBpZDogJzA2OjAwJywgdGV4dDogXCIwNjowMFwiIH0sIHsgaWQ6ICcwNjozMCcsIHRleHQ6IFwiMDY6MzBcIiB9LCB7IGlkOiAnMDc6MDAnLCB0ZXh0OiBcIjA3OjAwXCIgfSwgeyBpZDogJzA3OjMwJywgdGV4dDogXCIwNzozMFwiIH0sIHsgaWQ6ICcwODowMCcsIHRleHQ6IFwiMDg6MDBcIiB9LCB7IGlkOiAnMDg6MzAnLCB0ZXh0OiBcIjA4OjMwXCIgfSwgeyBpZDogJzA5OjAwJywgdGV4dDogXCIwOTowMFwiIH0sIHsgaWQ6ICcwOTozMCcsIHRleHQ6IFwiMDk6MzBcIiB9LCB7IGlkOiAnMTA6MDAnLCB0ZXh0OiBcIjEwOjAwXCIgfSwgeyBpZDogJzEwOjMwJywgdGV4dDogXCIxMDozMFwiIH0sXHJcbiAgeyBpZDogJzExOjAwJywgdGV4dDogXCIxMTowMFwiIH0sIHsgaWQ6ICcxMTozMCcsIHRleHQ6IFwiMTE6MzBcIiB9LCB7IGlkOiAnMTI6MDAnLCB0ZXh0OiBcIjEyOjAwXCIgfSwgeyBpZDogJzEyOjMwJywgdGV4dDogXCIxMjozMFwiIH0sIHsgaWQ6ICcxMzowMCcsIHRleHQ6IFwiMTM6MDBcIiB9LCB7IGlkOiAnMTM6MzAnLCB0ZXh0OiBcIjEzOjMwXCIgfSwgeyBpZDogJzE0OjAwJywgdGV4dDogXCIxNDowMFwiIH0sIHsgaWQ6ICcxNDozMCcsIHRleHQ6IFwiMTQ6MzBcIiB9LCB7IGlkOiAnMTU6MDAnLCB0ZXh0OiBcIjE1OjAwXCIgfSwgeyBpZDogJzE1OjMwJywgdGV4dDogXCIxNTozMFwiIH0sIHsgaWQ6ICcxNjowMCcsIHRleHQ6IFwiMTY6MDBcIiB9LCB7IGlkOiAnMTY6MzAnLCB0ZXh0OiBcIjE2OjMwXCIgfSwgeyBpZDogJzE3OjAwJywgdGV4dDogXCIxNzowMFwiIH0sIHsgaWQ6ICcxNzozMCcsIHRleHQ6IFwiMTc6MzBcIiB9LCB7IGlkOiAnMTg6MDAnLCB0ZXh0OiBcIjE4OjAwXCIgfSwgeyBpZDogJzE4OjMwJywgdGV4dDogXCIxODozMFwiIH0sIHsgaWQ6ICcxOTowMCcsIHRleHQ6IFwiMTk6MDBcIiB9LCB7IGlkOiAnMTk6MzAnLCB0ZXh0OiBcIjE5OjMwXCIgfSwgeyBpZDogJzIwOjAwJywgdGV4dDogXCIyMDowMFwiIH0sIHsgaWQ6ICcyMDozMCcsIHRleHQ6IFwiMjA6MzBcIiB9LCB7IGlkOiAnMjE6MDAnLCB0ZXh0OiBcIjIxOjAwXCIgfSwgeyBpZDogJzIxOjMwJywgdGV4dDogXCIyMTozMFwiIH0sIHsgaWQ6ICcyMjowMCcsIHRleHQ6IFwiMjI6MDBcIiB9LCB7IGlkOiAnMjI6MzAnLCB0ZXh0OiBcIjIyOjMwXCIgfSwgeyBpZDogJzIzOjAwJywgdGV4dDogXCIyMzowMFwiIH0sIHsgaWQ6ICcyMzozMCcsIHRleHQ6IFwiMjM6MzBcIiB9LCB7IGlkOiAnMjQ6MDAnLCB0ZXh0OiBcIjI0OjAwXCIgfVxyXG4gIF1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuaGVhZGVyRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgYXMgc3RyaW5nKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYodGhpcy5oZWFkZXJEYXRhPy5jbGllbnQpe1xyXG4gICAgICB0aGlzLmNsaWVudElkID0gIHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHVzZXJpbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcIlwiKVxyXG4gICAgICBpZiAodXNlcmluZm8gJiYgdXNlcmluZm8/LmNsaWVudElkKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IHVzZXJpbmZvPy5jbGllbnRJZFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoKS51dGMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW50VGltZSgpXHJcbiAgfVxyXG4gIHRhc2tzOiBudW1iZXJbXSA9IFsxXTsgLy8gTGlzdCBvZiB0YXNrIElEc1xyXG4gIHRhc2tDb3VudGVyOiBudW1iZXIgPSAxOyAvLyBDb3VudGVyIHRvIGdlbmVyYXRlIHVuaXF1ZSB0YXNrIElEc1xyXG5cclxuXHJcbiAgdXBkYXRlRm9ybSgpIHtcclxuICAgIHRoaXMudGFza0Zvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGNoZWNrbGlzdE5hbWU6IHRoaXMudGFza0RldGFpbHMuY2hlY2tMaXN0TmFtZSA/PyAnJyxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMudGFza0RldGFpbHMuY2hlY2tMaXN0RGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICB9KVxyXG4gICBcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YXNrRGV0YWlscz8uc2VjdGlvbnM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuYWRkU2VjdGlvbkZvcm0odGhpcy50YXNrRGV0YWlscy5zZWN0aW9uc1tpXSk7XHJcbiAgICAgIFxyXG5cclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnRhc2tEZXRhaWxzLnNlY3Rpb25zW2ldPy5xdWVzdGlvbnM/Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdGhpcy5hZGRRdWVzdGlvbkZvcm0odGhpcy50YXNrRGV0YWlscy5zZWN0aW9uc1tpXT8ucXVlc3Rpb25zW2pdLCBpKTtcclxuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHRoaXMudGFza0RldGFpbHMuc2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ubGVuZ3RoOyBrKyspIHsgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5hZGRBbnN3ZXJGb3JtKHRoaXMudGFza0RldGFpbHMuc2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vyc1trXSwgaSwgaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJylcclxuICAgIGNvbnN0IHRyaWdnZXJCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdHJpZ2dlckJ1dHRvbklkJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB0cmlnZ2VyQnV0dG9uPy5mb2N1cygpO1xyXG4gIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZVxyXG4gICAgbGV0IHJlc3BvbnNlOiBhbnkgPSB0aGlzLnRhc2tGb3JtLnZhbHVlLnNlY3Rpb25zXHJcbiAgXHJcbiAgICBjb25zdCB0aW1lID0gZGF5anModGhpcy5zZWxlY3RlZEl0ZW0sIFwiSEg6bW1cIilcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdyZWRvJykge1xyXG4gICAgICBsZXQgaW5wdXQgPSB7XHJcbiAgICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLnN0b3JlUHJvZmlsZS5jbGllbnRfaWQsXHJcbiAgICAgICAgXCJwYXlsb2FkXCI6IHtcclxuICAgICAgICAgIFwiX2lkXCI6IHRoaXMuY2hlY2tsaXN0SW5mby5jaGVja2xpc3RJZCxcclxuICAgICAgICAgIFwic2VjdGlvbl9pZFwiOnRoaXMuc2VjdGlvbkluZm8uc2VjdGlvbl9pZCxcclxuICAgICAgICAgIFwic2VjdGlvbk5hbWVcIjp0aGlzLnNlY3Rpb25JbmZvLnNlY3Rpb25OYW1lLFxyXG4gICAgICAgICAgXCJxbm9cIjogcmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLnFubyxcclxuICAgICAgICAgIFwidW5pcXVlTm9cIjogdGhpcy5pbnB1dERhdGEudW5pcXVlTm8/dGhpcy5pbnB1dERhdGEudW5pcXVlTm86XCJcIixcclxuICAgICAgICAgIFwiY2hlY2tsaXN0RGVzY3JpcHRpb25cIjp0aGlzLnRhc2tGb3JtLnZhbHVlLmNoZWNrbGlzdERlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgXCJwYXJlbnRRdWVzdGlvblwiOnRoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uP3RoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uOnRoaXMuaW5wdXREYXRhLnFubyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwidXBzZXJ0XCI6IHtcclxuICAgICAgICAgIFwicmVkb1N0YXR1c1wiOiB0cnVlLFxyXG4gICAgICAgICAgXCJyZWRvXCI6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBpZih0aGlzLm9wZXJhdGlvbnR5cGUgPT0gJ3Rhc2snKXtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlZG9UYXNrKGlucHV0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzJiZyZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3VibWl0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlZG9UYXNrY2hlY2tsaXN0KGlucHV0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzJiZyZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3VibWl0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBlbHNlIHsgIFxyXG4gICAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgICBcImNoZWNrTGlzdE5hbWVcIjogdGhpcy50YXNrRm9ybS52YWx1ZS5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgIFwiY2hlY2tMaXN0RGVzY3JpcHRpb25cIjogdGhpcy50YXNrRm9ybS52YWx1ZS5jaGVja2xpc3REZXNjcmlwdGlvbixcclxuICAgICAgICBcInByb2Nlc3NlZENoZWNrbGlzdElkXCI6IHRoaXMuY2hlY2tsaXN0SW5mbz8uY2hlY2tsaXN0SWQsXHJcbiAgICAgICAgXCJjaGVja0xpc3RJZFwiOnRoaXMuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgIFwic2VjdGlvbklkXCI6dGhpcy5zZWN0aW9uSW5mby5zZWN0aW9uX2lkLFxyXG4gICAgICAgIFwic2VjdGlvbk5hbWVcIjp0aGlzLnNlY3Rpb25JbmZvLnNlY3Rpb25OYW1lLFxyXG4gICAgICAgIFwicW5vXCI6IHRoaXMuaW5wdXREYXRhLnFubyxcclxuICAgICAgICBcInVuaXF1ZU5vXCI6IHRoaXMuaW5wdXREYXRhLnVuaXF1ZU5vP3RoaXMuaW5wdXREYXRhLnVuaXF1ZU5vOlwiXCIsXHJcbiAgICAgICAgXCJwYXJlbnRRdWVzdGlvblwiOnRoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uP3RoaXMuaW5wdXREYXRhLnBhcmVudFF1ZXN0aW9uOnRoaXMuaW5wdXREYXRhLnFubyxcclxuICAgICAgICBcInF1ZXN0aW9uXCI6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJxbm9cIjoxLFxyXG4gICAgICAgICAgICBcInFuYW1lXCI6IHRoaXMudGFza0Zvcm0udmFsdWUuY2hlY2tsaXN0RGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIFwiYW5zd2VyVHlwZVwiOiByZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uYW5zd2VyVHlwZSxcclxuICAgICAgICAgICAgXCJydW5BSVwiOiBmYWxzZSxcclxuICAgICAgICAgICAgXCJydW5BSURlc2NyaXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICAgIFwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiOiByZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSxcclxuICAgICAgICAgICAgXCJsaW5rVHlwZVwiOiBmYWxzZSxcclxuICAgICAgICAgICAgXCJxdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6IHRoaXMudXBsb2FkZWRGaWxlcyYmdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aD4wP3RoaXMudXBsb2FkZWRGaWxlczpyZXNwb25zZVswXS5xdWVzdGlvbnNbMF0ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSxcclxuICAgICAgICAgICAgXCJkZXNjcmlwdGl2ZXR5cGVcIjogcmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLmRlc2NyaXB0aXZldHlwZSxcclxuICAgICAgICAgICAgXCJhbnN3ZXJzXCI6IHJlc3BvbnNlWzBdLnF1ZXN0aW9uc1swXS5hbnN3ZXJzXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBcInNjaGVkdWxlRGF0ZVwiOiBkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZS5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgXCJzY2hlZHVsZUVuZFRpbWVcIjogdGltZS5mb3JtYXQoXCJoaDptbSBBXCIpLFxyXG4gICAgICAgIFwidXNlckVtYWlsXCI6IHRoaXMuY2hlY2tsaXN0SW5mbz8udXNlckVtYWlsLFxyXG4gICAgICAgIFwidXNlck5hbWVcIjogdGhpcy5jaGVja2xpc3RJbmZvPy5zdWJtaXR0ZWRCeSxcclxuICAgICAgICBcInN0b3JlTmFtZVwiOiB0aGlzLnN0b3JlUHJvZmlsZT8uc3RvcmVOYW1lP3RoaXMuc3RvcmVQcm9maWxlPy5zdG9yZU5hbWU6XCJcIixcclxuICAgICAgICBcImNsaWVudElkXCI6IHRoaXMuc3RvcmVQcm9maWxlPy5jbGllbnRfaWQsXHJcbiAgICAgICAgXCJjaGVja0xpc3RUeXBlXCI6IFwiY2hlY2tsaXN0VGFza1wiICAvLyBbJ2NoZWNrbGlzdFRhc2snLCdjY3R2XVxyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgaWYocmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLmFuc3dlclR5cGU9PT0naW1hZ2UnfHxyZXNwb25zZVswXS5xdWVzdGlvbnNbMF0uYW5zd2VyVHlwZT09PSdkZXNjcmlwdGl2ZUltYWdlJ3x8cmVzcG9uc2VbMF0ucXVlc3Rpb25zWzBdLmFuc3dlclR5cGU9PT0nbXVsdGlwbGVJbWFnZScpe1xyXG4gICAgICAgIGlmKHRoaXMudXBsb2FkZWRGaWxlcyYmdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aD4wKXtcclxuICAgICAgICAgIHBheWxvYWQucXVlc3Rpb24uZm9yRWFjaCgoZGF0YTphbnkpPT57XHJcbiAgICAgICAgICAgIGRhdGE/LmFuc3dlcnMuZm9yRWFjaCgoYW5zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBhbnMucmVmZXJlbmNlSW1hZ2UgPSB0aGlzLnVwbG9hZGVkRmlsZXNcclxuICAgICAgICAgICAgfSk7ICAgXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICB0aGlzLnRyYXhTZXJ2aWNlLkNyZWF0ZWNoZWNrbGlzdFRhc2socGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKVxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgXHJcblxyXG4gIGNyZWF0ZUZvcm0oKSB7XHJcbiAgICB0aGlzLnRhc2tGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGNoZWNrbGlzdE5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldXSxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IFsnJyxbVmFsaWRhdG9ycy5yZXF1aXJlZCxdXSxcclxuICAgICAgc2VjdGlvbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4oW10pXHJcbiAgICB9KVxyXG4gICAgdGhpcy51cGRhdGVGb3JtKClcclxuXHJcbiAgfVxyXG4gIGFkZFNlY3Rpb25Gb3JtKHNlY3Rpb24/OiBTZWN0aW9uKSB7XHJcblxyXG4gICAgY29uc3Qgc2VjdGlvbkZvcm1EYXRhOiBGb3JtR3JvdXA8U2VjdGlvbkZvcm0+ID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlkOiBbc2VjdGlvbj8uaWQgPz8gJyddLFxyXG4gICAgICBuYW1lOiBbc2VjdGlvbj8ubmFtZSA/PyAnJ10sXHJcbiAgICAgIHF1ZXN0aW9uczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPj4oW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICAodGhpcy50YXNrRm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4+KS5wdXNoKHNlY3Rpb25Gb3JtRGF0YSlcclxuICB9XHJcblxyXG4gIGFkZFF1ZXN0aW9uRm9ybShxdWVzdGlvbjogUXVlc3Rpb24sIHNlY3Rpb25JbmRleDogbnVtYmVyLCBpbnNlcnRJbmRleD86IG51bWJlcikge1xyXG4gICAgY29uc3QgcXVlc3Rpb25Gb3JtRGF0YTogRm9ybUdyb3VwPFF1ZXN0aW9uRm9ybT4gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgcW5vOiBbcXVlc3Rpb24/LnFubyA/PyAodGhpcy5nZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4KT8ubGVuZ3RoID8gdGhpcy5nZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4KS5sZW5ndGggKyAxIDogMSksIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHFuYW1lOiBbcXVlc3Rpb24/LnFuYW1lID8/ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV1dLFxyXG4gICAgICBhbnN3ZXJUeXBlOiBbcXVlc3Rpb24/LmFuc3dlclR5cGUgPz8gJ2Rlc2NyaXB0aXZlJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcnVuQUk6IFtxdWVzdGlvbj8ucnVuQUkgPz8gZmFsc2VdLFxyXG4gICAgICBydW5BSURlc2NyaXB0aW9uOiBbcXVlc3Rpb24/LnJ1bkFJRGVzY3JpcHRpb24gPz8gJyddLFxyXG4gICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBbcXVlc3Rpb24/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPz8gZmFsc2VdLFxyXG4gICAgICBsaW5rVHlwZTogW3F1ZXN0aW9uPy5saW5rVHlwZSA/PyBmYWxzZV0sXHJcbiAgICAgIHF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFtbLi4ucXVlc3Rpb24/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPz8gJyddXSxcclxuICAgICAgYW5zd2VyczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8QW5zd2VyRm9ybT4+KFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLmFuc3dlclR5cGUgPT09ICdkZXNjcmlwdGl2ZScgfHwgcXVlc3Rpb24uYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlSW1hZ2UnKSB7XHJcbiAgICAgIHF1ZXN0aW9uRm9ybURhdGEuYWRkQ29udHJvbCgnZGVzY3JpcHRpdmV0eXBlJywgbmV3IEZvcm1Db250cm9sKHF1ZXN0aW9uPy5kZXNjcmlwdGl2ZXR5cGUgPz8gJ3RleHQnKSlcclxuICAgIH1cclxuIGlmIChxdWVzdGlvbi5hbnN3ZXJUeXBlID09PSAneWVzL25vJyB8fCBxdWVzdGlvbi5hbnN3ZXJUeXBlID09PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIHx8IHF1ZXN0aW9uLmFuc3dlclR5cGUgPT09ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJykge1xyXG4gICAgICBxdWVzdGlvbkZvcm1EYXRhLmdldCgnYW5zd2VycycpPy5hZGRWYWxpZGF0b3JzKHVuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpKVxyXG4gICAgfVxyXG4gICAgaWYgKGluc2VydEluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgKCh0aGlzLnRhc2tGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pXHJcbiAgICAgICAgLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uRm9ybT4+KS5pbnNlcnQoaW5zZXJ0SW5kZXgsIHF1ZXN0aW9uRm9ybURhdGEpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgICgodGhpcy50YXNrRm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4+KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPj4pLnB1c2gocXVlc3Rpb25Gb3JtRGF0YSlcclxuICB9XHJcblxyXG4gIGFkZEFuc3dlckZvcm0oYW5zd2VyOiBBbnN3ZXIsIHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGluc2VydEluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBhbnN3ZXJGb3JtRGF0YTogRm9ybUdyb3VwPEFuc3dlckZvcm0+ID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGFuc3dlcjogW2Fuc3dlcj8uYW5zd2VyID8/ICcnXSxcclxuICAgICAgYW5zd2Vyb3B0aW9uTnVtYmVyOiBbYW5zd2VyPy5hbnN3ZXJvcHRpb25OdW1iZXIgPz8gKHRoaXMuZ2V0QW5zd2VycyhzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgpPy5sZW5ndGggPyB0aGlzLmdldEFuc3dlcnMoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4KS5sZW5ndGggKyAxIDogMSksIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHNvcEZsYWc6IFthbnN3ZXI/LnNvcEZsYWcgPz8gZmFsc2VdLFxyXG4gICAgICB2YWxpZGF0aW9uOiBbYW5zd2VyPy52YWxpZGF0aW9uID8/IGZhbHNlXSxcclxuICAgICAgdmFsaWRhdGlvblR5cGU6IFthbnN3ZXI/LnZhbGlkYXRpb25UeXBlID8/ICcnXSxcclxuICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtbLi4uYW5zd2VyPy5yZWZlcmVuY2VJbWFnZSA/PyAnJ11dLFxyXG4gICAgICBzaG93TGlua2VkOiBbYW5zd2VyPy5zaG93TGlua2VkID8/IGZhbHNlXSxcclxuICAgICAgbGlua2VkUXVlc3Rpb246IFthbnN3ZXI/LmxpbmtlZFF1ZXN0aW9uID8/IDBdLFxyXG4gICAgICBuZXN0ZWRRdWVzdGlvbjogW2Fuc3dlcj8ubmVzdGVkUXVlc3Rpb24gPz8gW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYW5zd2VyVHlwZTogQW5zd2VyVHlwZSA9ICgodGhpcy50YXNrRm9ybT8uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KT8uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpPy5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWU7XHJcblxyXG4gICAgaWYgKGFuc3dlclR5cGUgPT09ICdkZXNjcmlwdGl2ZScgfHwgYW5zd2VyVHlwZSA9PT0gJ2Rlc2NyaXB0aXZlSW1hZ2UnIHx8IGFuc3dlclR5cGUgPT09ICdpbWFnZScgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlSW1hZ2UnIHx8IGFuc3dlclR5cGUgPT09ICdkYXRlJyB8fCBhbnN3ZXJUeXBlID09PSAnbGluZWFyc2NhbGUnIHx8IGFuc3dlclR5cGUgPT09ICd0aW1lJykge1xyXG4gICAgICBhbnN3ZXJGb3JtRGF0YS5hZGRDb250cm9sKCd2YWxpZGF0aW9uQW5zd2VyJywgbmV3IEZvcm1Db250cm9sKGFuc3dlcj8udmFsaWRhdGlvbkFuc3dlciA/PyAnJykpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFuc3dlclR5cGUgPT09ICd5ZXMvbm8nIHx8IGFuc3dlclR5cGUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnKSB7XHJcbiAgICAgIGFuc3dlckZvcm1EYXRhLmFkZENvbnRyb2woJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8/IGZhbHNlKSk7XHJcbiAgICAgIGFuc3dlckZvcm1EYXRhLmFkZENvbnRyb2woJ3J1bkFJJywgbmV3IEZvcm1Db250cm9sKGFuc3dlcj8ucnVuQUkgPz8gZmFsc2UpKTtcclxuICAgICAgYW5zd2VyRm9ybURhdGEuZ2V0KCdhbnN3ZXInKT8uYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbnN3ZXJUeXBlID09PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgIGFuc3dlckZvcm1EYXRhLmFkZENvbnRyb2woJ3JhbmdlU3RhcnQnLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy5yYW5nZVN0YXJ0ID8/IDApKTtcclxuICAgICAgYW5zd2VyRm9ybURhdGEuYWRkQ29udHJvbCgncmFuZ2VFbmQnLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy5yYW5nZUVuZCA/PyAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFuc3dlclR5cGUgPT09ICd5ZXMvbm8nIHx8IGFuc3dlclR5cGUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgfHwgYW5zd2VyVHlwZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnIHx8IGFuc3dlclR5cGUgPT09ICdtdWx0aXBsZUltYWdlJykge1xyXG4gICAgICBhbnN3ZXJGb3JtRGF0YS5hZGRDb250cm9sKCdkZXNjcmlwdGl2ZXR5cGUnLCBuZXcgRm9ybUNvbnRyb2woYW5zd2VyPy5kZXNjcmlwdGl2ZXR5cGUgPz8gJ3RleHQnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluc2VydEluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgKCgodGhpcy50YXNrRm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxTZWN0aW9uRm9ybT4+KVxyXG4gICAgICAgIC5hdChzZWN0aW9uSW5kZXgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkZvcm0+PilcclxuICAgICAgICAuYXQocXVlc3Rpb25JbmRleCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxBbnN3ZXJGb3JtPj4pLmluc2VydChpbnNlcnRJbmRleCwgYW5zd2VyRm9ybURhdGEpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgICgoKHRoaXMudGFza0Zvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PilcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uRm9ybT4+KVxyXG4gICAgICAuYXQocXVlc3Rpb25JbmRleCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxBbnN3ZXJGb3JtPj4pLnB1c2goYW5zd2VyRm9ybURhdGEpXHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0U2VjdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMudGFza0Zvcm0/LmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pXHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoKHRoaXMudGFza0Zvcm0/LmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPFNlY3Rpb25Gb3JtPj4pLmF0KHNlY3Rpb25JbmRleCk/LmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkZvcm0+PilcclxuICB9XHJcbiAgaXNJbnZhbGlkQW5zd2VyKHNlY0lkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgYW5zd2VyID0gdGhpcy5nZXRBbnN3ZXJzKHNlY0lkeCxxbklkeCk7XHJcbiAgICBpZihhbnN3ZXIudmFsdWUubGVuZ3RoID4gMikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEFuc3dlcnMoc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuICgoKHRoaXMudGFza0Zvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8U2VjdGlvbkZvcm0+PikuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8UXVlc3Rpb25Gb3JtPj4pLmF0KHF1ZXN0aW9uSW5kZXgpLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA8QW5zd2VyRm9ybT4+KVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShldmVudDogYW55LCBzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnN3ZXJJbmRleD86IG51bWJlcikge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcyAhPSB1bmRlZmluZWQgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2NsaWVudElkJywgdGhpcy5jbGllbnRJZCBhcyBzdHJpbmcpXHJcbiAgICAgIHRoaXMudHJheFNlcnZpY2UudGFza0ltYWdldXBsb2FkKGZvcm1EYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMuZGF0YS5pbWdVcmwpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlO1xyXG4gICAgICAgICAgICB0aGlzLnByZXZpZXdVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOyBcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gocmVzLmRhdGEuaW1nVXJsKVxyXG4gICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdTb21ldGhpbmcgd2VudCB3cm9uZycpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xvc2VEcm9wZG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICBcclxuICAgICAgdGhpcy5kcm9wRG93biA9IGZhbHNlOyBcclxuICB9XHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuXHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEl0ZW06IGFueSA9ICcwMDowMCc7XHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50VGltZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIHVwZGF0ZUN1cnJlbnRUaW1lKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IG5leHRIb3VyID0gbmV3IERhdGUoKTtcclxuICAgIG5leHRIb3VyLnNldEhvdXJzKG5vdy5nZXRIb3VycygpICsgMSk7IFxyXG4gIFxyXG4gICAgY29uc3QgaG91cnMgPSBTdHJpbmcobm93LmdldEhvdXJzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKE1hdGguZmxvb3Iobm93LmdldE1pbnV0ZXMoKSAvIDMwKSAqIDMwKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IGAke2hvdXJzfToke21pbnV0ZXN9YDtcclxuICBcclxuICAgIGNvbnN0IG5leHRIb3VyU3RyID0gYCR7U3RyaW5nKG5leHRIb3VyLmdldEhvdXJzKCkpLnBhZFN0YXJ0KDIsICcwJyl9OjAwYDtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy50aW1lRGV0YWlsc1t0aGlzLnRpbWVEZXRhaWxzLmxlbmd0aC0yXS5pZDsgXHJcbiAgfVxyXG4gIFxyXG4gIGlzRGlzYWJsZWQodGltZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc29sZS5sb2coZGF5anMobm93KS5mb3JtYXQoJ1lZWVktTU0tREQnKSxkYXlqcyh0aGlzLnNlbGVjdGVkRGF0ZS5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIikpXHJcbiAgICBpZihkYXlqcyhub3cpLmZvcm1hdCgnWVlZWS1NTS1ERCcpPT09ZGF5anModGhpcy5zZWxlY3RlZERhdGUuc3RhcnREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpKXtcclxuICAgICAgbm93LnNldEhvdXJzKG5vdy5nZXRIb3VycygpICsgMSk7IFxyXG4gICAgICBjb25zdCBkaXNhYmxlZFRocmVzaG9sZCA9IGAke1N0cmluZyhub3cuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKX06MDBgO1xyXG4gICAgICBjb25zb2xlLmxvZyhkaXNhYmxlZFRocmVzaG9sZClcclxuICAgICAgcmV0dXJuIHRpbWUgPCBkaXNhYmxlZFRocmVzaG9sZDtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH0gICAgXHJcbiAgfVxyXG4gIFxyXG4gIHNlbGVjdEl0ZW0odmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB2YWx1ZTtcclxuICAgIHRoaXMuZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQW5zd2VyRGVsZXRlKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc3dlckluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZ2V0QW5zd2VycyhzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgpLnJlbW92ZUF0KGFuc3dlckluZGV4KVxyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KCdBbnN3ZXIgZGVsZXRlZCBzdWNjZXNzZnVsbHknKVxyXG5cclxuICB9XHJcblxyXG4gIG9uVmFsaWRhdGVSZXNwb25zZUNoYW5nZShldmVudDogYW55LCBzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnN3ZXJJbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5nZXRBbnN3ZXJzKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCkuYXQoYW5zd2VySW5kZXgpLmdldCgnc2hvd0xpbmtlZCcpPy5zZXRWYWx1ZShmYWxzZSlcclxuICAgIH1cclxuICB9XHJcbiAgYWRkTmV3QW5zd2VyKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIHR5cGU6IEFuc3dlclR5cGUpIHtcclxuICAgIGlmICh0eXBlID09PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIHx8IHR5cGUgPT09ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJykge1xyXG4gICAgICB0aGlzLmFkZEFuc3dlckZvcm0obXVsdGlwbGVjaG9pY2VfYW5zd2VyX3RlbXBsYXRlIGFzIEFuc3dlciwgc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4KVxyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QoJ0Fuc3dlciBhZGRlZCBzdWNjZXNzZnVsbHknKVxyXG5cclxuICAgIH1cclxuICB9XHJcbiAgb25RdWVzdGlvbkNoYW5nZShldmVudDogYW55LCBzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25cclxuICAgIGNvbnN0IGFuc3dlclR5cGU6IEFuc3dlclR5cGUgPSBldmVudC50YXJnZXQudmFsdWVcclxuICAgIHN3aXRjaCAoYW5zd2VyVHlwZSkge1xyXG4gICAgICBjYXNlICdkZXNjcmlwdGl2ZSc6IHF1ZXN0aW9uID0gZGVzY3JpcHRpdmVfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAneWVzL25vJzogcXVlc3Rpb24gPSB5ZXNvcm5vX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlY2hvaWNlc2luZ2xlJzogcXVlc3Rpb24gPSBtdWx0aXBsZWNob2ljZXNpbmdsZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJzogcXVlc3Rpb24gPSBtdWx0aXBsZWNob2ljZW11bHRpcGxlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Rlc2NyaXB0aXZlSW1hZ2UnOiBxdWVzdGlvbiA9IGRlc2NyaXB0aXZlSW1hZ2VfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaW1hZ2UnOiBxdWVzdGlvbiA9IGltYWdlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3ZpZGVvJzogcXVlc3Rpb24gPSB2aWRlb19xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtdWx0aXBsZUltYWdlJzogcXVlc3Rpb24gPSBtdWx0aXBsZUltYWdlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOiBxdWVzdGlvbiA9IGRhdGVfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGluZWFyc2NhbGUnOiBxdWVzdGlvbiA9IGxpbmVhcnNjYWxlX3F1ZXN0aW9uX3RlbXBsYXRlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RpbWUnOiBxdWVzdGlvbiA9IHRpbWVfcXVlc3Rpb25fdGVtcGxhdGVcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDogcXVlc3Rpb24gPSBkZXNjcmlwdGl2ZV9xdWVzdGlvbl90ZW1wbGF0ZVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcXVlc3Rpb25OYW1lID0gdGhpcy5nZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4KS5hdChxdWVzdGlvbkluZGV4KS5nZXQoJ3FuYW1lJyk/LnZhbHVlIHx8ICcnXHJcblxyXG4gICAgdGhpcy5nZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4KS5yZW1vdmVBdChxdWVzdGlvbkluZGV4KVxyXG5cclxuICAgIHRoaXMuYWRkUXVlc3Rpb25Gb3JtKHF1ZXN0aW9uIGFzIFF1ZXN0aW9uLCBzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgpXHJcblxyXG4gICAgdGhpcy5nZXRRdWVzdGlvbnMoc2VjdGlvbkluZGV4KS5hdChxdWVzdGlvbkluZGV4KS5nZXQoJ3FuYW1lJyk/LnNldFZhbHVlKHF1ZXN0aW9uTmFtZSlcclxuXHJcbiAgICBpZiAocXVlc3Rpb24/LmFuc3dlcnMubGVuZ3RoKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmFuc3dlcnMuZm9yRWFjaCgoZWxlbWVudCwgaWR4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRBbnN3ZXJGb3JtKGVsZW1lbnQgYXMgQW5zd2VyLCBzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsIGlkeClcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdGVkRGF0ZTogYW55ID0ge307XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKTtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG0uaXNCZWZvcmUodGhpcy5kYXlqcygpLCAnZGF5JykgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogVGltZVBlcmlvZCkge1xyXG4gICAgaWYgKCFldmVudC5lbmREYXRlIHx8ICFldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgdXBsb2FkZWRGaWxlczogRmlsZVtdID0gW107XHJcblxyXG4gIFxyXG4gIHNlbGVjdGVkRmlsZT86IEZpbGU7IFxyXG4gIHByZXZpZXdVcmw/OiBhbnk7IFxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgXHJcbiAgcmVtb3ZlSW1hZ2UoaW5kZXg6YW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucHJldmlld1VybCA9IHVuZGVmaW5lZDtcclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMuc3BsaWNlKGluZGV4LDEpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGdyb3VwLWRlbGV0ZSBweS0wXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0nY3JlYXRldGFzaydcIiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHB4LTAgcHktNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzAgMThIMjJDMjEuNDY5NiAxOCAyMC45NjA5IDE4LjIxMDcgMjAuNTg1OCAxOC41ODU4QzIwLjIxMDcgMTguOTYwOSAyMCAxOS40Njk2IDIwIDIwVjM2QzIwIDM2LjUzMDQgMjAuMjEwNyAzNy4wMzkxIDIwLjU4NTggMzcuNDE0MkMyMC45NjA5IDM3Ljc4OTMgMjEuNDY5NiAzOCAyMiAzOEgzNEMzNC41MzA0IDM4IDM1LjAzOTEgMzcuNzg5MyAzNS40MTQyIDM3LjQxNDJDMzUuNzg5MyAzNy4wMzkxIDM2IDM2LjUzMDQgMzYgMzZWMjRNMzAgMThMMzYgMjRNMzAgMThWMjRIMzZNMjggMzRWMjhNMjUgMzFIMzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSB3LTEwMCBwLTEgIHNjcm9sbCBjdXN0b20tc2Nyb2xsXCIgPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRhc2tGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25zPy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGdldFF1ZXN0aW9ucyhpKT8uY29udHJvbHM7IGxldCBqID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJxdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFzayBOYW1lPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwidGFza0Zvcm0uY29udHJvbHMuY2hlY2tsaXN0TmFtZVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgVGFzayBOYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXBsdWdpbnMtbWVzc2FnZS1jb250YWluZXIgZnYtcGx1Z2lucy1tZXNzYWdlLWNvbnRhaW5lci0tZW5hYmxlZCBpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTYwMFwiPlRoaXMgVGFzayBpcyBsaW5rZWQgdG8gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3F1ZXN0aW9uLmdldCgncW5vJyk/LnZhbHVlfX0uIHt7cXVlc3Rpb24uZ2V0KCdxbmFtZScpPy52YWx1ZX19XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiICpuZ0lmPVwiaW5wdXREYXRhLmFuc3dlclR5cGU9PT0ndmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGlucHV0RGF0YS51c2VyQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBWaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNvbnRyb2xzIGNsYXNzPVwicmVjYXAtaW1nIHAtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2l0ZW0uYW5zd2VyfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLmFuc3dlclR5cGU9PT0naW1hZ2UnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdkZXNjcmlwdGl2ZUltYWdlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbXVsdGlwbGVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5wdXREYXRhLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlVwbG9hZGVkIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aXRlbS5hbnN3ZXJ9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J211bHRpcGxlY2hvaWNlc2luZ2xlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0neWVzL25vJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nZGF0ZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J3RpbWUnIHx8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nbXVsdGlwbGVjaG9pY2VtdWx0aXBsZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2xpbmVhcnNjYWxlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nZGVzY3JpcHRpdmUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5wdXREYXRhLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMVwiPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXNrIERlc2NyaXB0aW9uPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbZm9ybUNvbnRyb2xdPVwidGFza0Zvcm0uY29udHJvbHMuY2hlY2tsaXN0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIGNvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIk1haW4gZW50cmFuY2Ugc2lnbmFnZSBpcyBjcmFja2VkLCBhbmQgbGlnaHRzIGFyZSBmbGlja2VyaW5nLiBQbGVhc2UgcmV0YWtlIHRoZSBpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiNFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2UgVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPVwib25RdWVzdGlvbkNoYW5nZSgkZXZlbnQsIGksIGopXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGFuc3dlciBvZiBhbnN3ZXJUeXBlc1wiIFt2YWx1ZV09XCJhbnN3ZXIudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Fuc3dlci5sYWJlbH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSd0aW1lJyYmcXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lMSBteS0zXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5zd2VyIE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaWRdPVwiJ3F1ZXN0aW9uLScgKyBpICsgalwiIGNsYXNzPVwicXVlc3Rpb24tY29udGFpbmVyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnZGVzY3JpcHRpdmUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidGV4dFwiIFtpZF09XCInZGVzY3JpcHRpdmV0eXBlX3RleHQnICsgaSArIGpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIidkZXNjcmlwdGl2ZXR5cGVfdGV4dCcgKyBpICsgalwiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm51bWJlclwiIFtpZF09XCInZGVzY3JpcHRpdmV0eXBlX251bWJlcicgKyBpICsgalwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2Rlc2NyaXB0aXZldHlwZV9udW1iZXInICsgaSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAneWVzL25vJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBnZXRBbnN3ZXJzKGksIGopLmNvbnRyb2xzOyBsZXQgayA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBhbnN3ZXIgaGVyZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnYW5zd2VyJyk/LmludmFsaWQgJiYgYW5zd2VyLmdldCgnYW5zd2VyJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJyl8fCBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaGFzRXJyb3IoJ3doaXRlc3BhY2UnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yXCI+KiBBbnN3ZXIgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgfHwgcXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgZ2V0QW5zd2VycyhpLCBqKS5jb250cm9sczsgbGV0IGsgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgYW5zd2VyIGhlcmVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNJbnZhbGlkQW5zd2VyKGksailcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiICAoY2xpY2spPVwib25BbnN3ZXJEZWxldGUoaSwgaiwgaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIF9uZ2NvbnRlbnQtbmctYzE0OTEwNDQxNzA9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNSA1TDUgMTVNNSA1TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnYW5zd2VyJyk/LmludmFsaWQgJiYgYW5zd2VyLmdldCgnYW5zd2VyJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJyl8fGFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTJcIj4qIEFuc3dlciBpcyByZXF1aXJlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJhZGROZXdBbnN3ZXIoaSwgaiwgJ211bHRpcGxlY2hvaWNlc2luZ2xlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZC1yZWZlcmVuY2UtYnRuIG1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIE1vcmUgQW5zd2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdkZXNjcmlwdGl2ZUltYWdlJyB8fCBxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZSdcIj5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgZ2V0QW5zd2VycyhpLCBqKS5jb250cm9sczsgbGV0IGsgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBwcy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWVzdGlvbi5jb250cm9scy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidhbGxvd191cGxvYWRfZnJvbV9nYWxsZXJ5JyArIGkgKyBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2FsbG93X3VwbG9hZF9mcm9tX2dhbGxlcnknICsgaSArIGpcIj5BbGxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQgZnJvbSBnYWxsZXJ5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3ZpZGVvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBwcy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2FsbG93X3VwbG9hZF9mcm9tX2dhbGxlcnknICsgaSArIGpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInYWxsb3dfdXBsb2FkX2Zyb21fZ2FsbGVyeScgKyBpICsgalwiPkFsbG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZCBmcm9tIGdhbGxlcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEFuc3dlcnMoaSwgaikuY29udHJvbHM7IGxldCBrID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggcHMtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVlc3Rpb24uY29udHJvbHMuYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInYWxsb3dfdXBsb2FkX2Zyb21fZ2FsbGVyeScgKyBpICsgalwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIidhbGxvd191cGxvYWRfZnJvbV9nYWxsZXJ5JyArIGkgKyBqXCI+QWxsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkIGZyb20gZ2FsbGVyeTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiICpuZ0lmPVwicXVlc3Rpb24uY29udHJvbHMuZGVzY3JpcHRpdmV0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwicXVlc3Rpb24uY29udHJvbHMuZGVzY3JpcHRpdmV0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidkZXNjcmlwdGl2ZV9hbnN3ZXJfdmFsaWRhdGlvbl90ZXh0JyArIGkgKyBqICsga1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2Rlc2NyaXB0aXZlX2Fuc3dlcl92YWxpZGF0aW9uX3RleHQnICsgaSArIGogKyBrXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cInF1ZXN0aW9uLmNvbnRyb2xzLmRlc2NyaXB0aXZldHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidkZXNjcmlwdGl2ZV9hbnN3ZXJfdmFsaWRhdGlvbl9udW1iZXInICsgaSArIGogKyBrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCInZGVzY3JpcHRpdmVfYW5zd2VyX3ZhbGlkYXRpb25fbnVtYmVyJyArIGkgKyBqICsga1wiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdkYXRlJyB8fCBxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICd0aW1lJ1wiPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbGluZWFyc2NhbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEFuc3dlcnMoaSwgaikuY29udHJvbHM7IGxldCBrID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInJhbmdlU3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMiBjaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInJhbmdlRW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYi0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRHVlIGRhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2F1dG9BcHBseV09XCJ0cnVlXCIgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lIG15LTJcIj5EdWUgdGltZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIG10LTEgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC00NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjVWNC45OTk4NE02LjY2NjY3IDEuNjY2NVY0Ljk5OTg0TTIuNSA4LjMzMzE3SDE3LjVNNC4xNjY2NyAzLjMzMzE3SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzE3IDE3LjUgNC4wNzkzNiAxNy41IDQuOTk5ODRWMTYuNjY2NUMxNy41IDE3LjU4NyAxNi43NTM4IDE4LjMzMzIgMTUuODMzMyAxOC4zMzMySDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMyIDIuNSAxNy41ODcgMi41IDE2LjY2NjVWNC45OTk4NEMyLjUgNC4wNzkzNiAzLjI0NjE5IDMuMzMzMTcgNC4xNjY2NyAzLjMzMzE3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBzLTEyXCI+e3sgc2VsZWN0ZWRJdGVtIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHotMSBoLTIwMHB4IHNjcm9sbC15IHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRpbWVEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZEl0ZW0gPT09IGl0ZW0udGV4dCA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoaXRlbS50ZXh0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbS50ZXh0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtbmFtZSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFzc2lnbiB0b1xyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbdmFsdWVdPVwidGhpcy5jaGVja2xpc3RJbmZvPy5zdWJtaXR0ZWRCeVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG15LTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItYXR0YWNoIGNvbC1tZC0zIGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJ0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoPDNcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODFMMTAuMjA4MiAxNi44NjY0QzkuMjcwMDUgMTcuODA0NiA3Ljk5NzU3IDE4LjMzMTcgNi42NzA3NSAxOC4zMzE3QzUuMzQzOTMgMTguMzMxNyA0LjA3MTQ1IDE3LjgwNDYgMy4xMzMyNSAxNi44NjY0QzIuMTk1MDUgMTUuOTI4MiAxLjY2Nzk3IDE0LjY1NTggMS42Njc5NyAxMy4zMjg5QzEuNjY3OTcgMTIuMDAyMSAyLjE5NTA1IDEwLjcyOTYgMy4xMzMyNSA5Ljc5MTQ0TDEwLjc5MTYgMi4xMzMxQzExLjQxNzEgMS41MDc2MyAxMi4yNjU0IDEuMTU2MjUgMTMuMTQ5OSAxLjE1NjI1QzE0LjAzNDUgMS4xNTYyNSAxNC44ODI4IDEuNTA3NjMgMTUuNTA4MiAyLjEzMzFDMTYuMTMzNyAyLjc1ODU3IDE2LjQ4NTEgMy42MDY4OSAxNi40ODUxIDQuNDkxNDRDMTYuNDg1MSA1LjM3NTk4IDE2LjEzMzcgNi4yMjQzIDE1LjUwODIgNi44NDk3N0w3Ljg0MTU4IDE0LjUwODFDNy41Mjg4NSAxNC44MjA4IDcuMTA0NjkgMTQuOTk2NSA2LjY2MjQyIDE0Ljk5NjVDNi4yMjAxNCAxNC45OTY1IDUuNzk1OTggMTQuODIwOCA1LjQ4MzI1IDE0LjUwODFDNS4xNzA1MSAxNC4xOTU0IDQuOTk0ODIgMTMuNzcxMiA0Ljk5NDgyIDEzLjMyODlDNC45OTQ4MiAxMi44ODY3IDUuMTcwNTEgMTIuNDYyNSA1LjQ4MzI1IDEyLjE0OThMMTIuNTU4MiA1LjA4MzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPkFkZCBBdHRhY2htZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5wbmcsIC5qcGcsIC5qcGVnLCAuc3ZnLCAuZ2lmXCIgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudCwwLDAsMClcIiBoaWRkZW4gLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1wcmV2aWV3IG10LTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJyZW1vdmUtaWNvblwiIChjbGljayk9XCJyZW1vdmVJbWFnZShpKVwiPuKcljwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbVwiIGFsdD1cIlByZXZpZXdcIiAvPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiB3LTEwMCBtb2RhbC1mb290ZXIgcHgtMCBwdC0zIHBiLTVcIj5cclxuICAgICAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBtdC0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTNcIiBbZGlzYWJsZWRdPVwiIXRoaXMudGFza0Zvcm0udmFsaWR8fHN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5DcmVhdGVcclxuICAgICAgICAgICAgICAgICAgICBUYXNrPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdyZWRvJ1wiIGNsYXNzPVwiY2FyZC1ib2R5IHB5LTAgZC1mbGV4IGZsZXgtc3RhcnQgZmxleC1jb2x1bW4gcC05IHNjcm9sbCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzkgMjAuMDAwMVYyNi4wMDAxTTM5IDI2LjAwMDFIMzNNMzkgMjYuMDAwMUwzNC4zNiAyMS42NDAxQzMzLjI4NTMgMjAuNTY0OCAzMS45NTU2IDE5Ljc3OTMgMzAuNDk1MiAxOS4zNTY4QzI5LjAzNDggMTguOTM0NCAyNy40OTExIDE4Ljg4ODggMjYuMDA4MyAxOS4yMjQzQzI0LjUyNTUgMTkuNTU5OCAyMy4xNTE4IDIwLjI2NTUgMjIuMDE1NSAyMS4yNzU1QzIwLjg3OTEgMjIuMjg1NSAyMC4wMTcyIDIzLjU2NjkgMTkuNTEgMjUuMDAwMU0xNyAzNi4wMDAxVjMwLjAwMDFNMTcgMzAuMDAwMUgyM00xNyAzMC4wMDAxTDIxLjY0IDM0LjM2MDFDMjIuNzE0NyAzNS40MzU0IDI0LjA0NDQgMzYuMjIwOSAyNS41MDQ4IDM2LjY0MzNDMjYuOTY1MiAzNy4wNjU3IDI4LjUwODkgMzcuMTExMyAyOS45OTE3IDM2Ljc3NThDMzEuNDc0NSAzNi40NDAzIDMyLjg0ODIgMzUuNzM0NiAzMy45ODQ1IDM0LjcyNDdDMzUuMTIwOSAzMy43MTQ3IDM1Ljk4MjggMzIuNDMzMyAzNi40OSAzMS4wMDAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25zPy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwic2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0UXVlc3Rpb25zKGkpPy5jb250cm9sczsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJxdWVzdGlvblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgdy0xMDAgcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJsYWJlbC1uYW1lMSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVkb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cImxhYmVsLW5hbWUxIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdEluZm8uY2hlY2tsaXN0TmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3F1ZXN0aW9uLmdldCgncW5vJyk/LnZhbHVlfX0uIHt7cXVlc3Rpb24uZ2V0KCdxbmFtZScpPy52YWx1ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiICpuZ0lmPVwiaW5wdXREYXRhLmFuc3dlclR5cGU9PT0ndmlkZW8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5wdXREYXRhLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgVmlkZW88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNvbnRyb2xzIGNsYXNzPVwicmVjYXAtaW1nIHAtMyB2aWRlby1zaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLmFuc3dlcn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdpbWFnZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2Rlc2NyaXB0aXZlSW1hZ2UnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdtdWx0aXBsZUltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGlucHV0RGF0YS51c2VyQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlVwbG9hZGVkIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cInt7ZW52aXJvbm1lbnQuVHJheEFuc3dlckNETn19e3tpdGVtLmFuc3dlcn19XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdtdWx0aXBsZWNob2ljZXNpbmdsZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J3llcy9ubyd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J211bHRpcGxlY2hvaWNlbXVsdGlwbGUnfHxpbnB1dERhdGEuYW5zd2VyVHlwZT09PSdkYXRlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0ndGltZSd8fGlucHV0RGF0YS5hbnN3ZXJUeXBlPT09J2xpbmVhcnNjYWxlJ3x8aW5wdXREYXRhLmFuc3dlclR5cGU9PT0nZGVzY3JpcHRpdmUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dERhdGEudXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTFcIj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRhc2tGb3JtXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgW2Zvcm1Db250cm9sXT1cInRhc2tGb3JtLmNvbnRyb2xzLmNoZWNrbGlzdERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYSBjb21tZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJNYWluIGVudHJhbmNlIHNpZ25hZ2UgaXMgY3JhY2tlZCwgYW5kIGxpZ2h0cyBhcmUgZmxpY2tlcmluZy4gUGxlYXNlIHJldGFrZSB0aGUgaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjRcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZ2LXJvdyBteS0zIGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1hdHRhY2ggY29sLW1kLTMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODFMMTAuMjA4MiAxNi44NjY0QzkuMjcwMDUgMTcuODA0NiA3Ljk5NzU3IDE4LjMzMTcgNi42NzA3NSAxOC4zMzE3QzUuMzQzOTMgMTguMzMxNyA0LjA3MTQ1IDE3LjgwNDYgMy4xMzMyNSAxNi44NjY0QzIuMTk1MDUgMTUuOTI4MiAxLjY2Nzk3IDE0LjY1NTggMS42Njc5NyAxMy4zMjg5QzEuNjY3OTcgMTIuMDAyMSAyLjE5NTA1IDEwLjcyOTYgMy4xMzMyNSA5Ljc5MTQ0TDEwLjc5MTYgMi4xMzMxQzExLjQxNzEgMS41MDc2MyAxMi4yNjU0IDEuMTU2MjUgMTMuMTQ5OSAxLjE1NjI1QzE0LjAzNDUgMS4xNTYyNSAxNC44ODI4IDEuNTA3NjMgMTUuNTA4MiAyLjEzMzFDMTYuMTMzNyAyLjc1ODU3IDE2LjQ4NTEgMy42MDY4OSAxNi40ODUxIDQuNDkxNDRDMTYuNDg1MSA1LjM3NTk4IDE2LjEzMzcgNi4yMjQzIDE1LjUwODIgNi44NDk3N0w3Ljg0MTU4IDE0LjUwODFDNy41Mjg4NSAxNC44MjA4IDcuMTA0NjkgMTQuOTk2NSA2LjY2MjQyIDE0Ljk5NjVDNi4yMjAxNCAxNC45OTY1IDUuNzk1OTggMTQuODIwOCA1LjQ4MzI1IDE0LjUwODFDNS4xNzA1MSAxNC4xOTU0IDQuOTk0ODIgMTMuNzcxMiA0Ljk5NDgyIDEzLjMyODlDNC45OTQ4MiAxMi44ODY3IDUuMTcwNTEgMTIuNDYyNSA1LjQ4MzI1IDEyLjE0OThMMTIuNTU4MiA1LjA4MzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCI+QWRkIEF0dGFjaG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5wbmcsIC5qcGcsIC5qcGVnLCAuc3ZnLCAuZ2lmXCIgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudCwwLDAsMClcIiBoaWRkZW4gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgaW1hZ2UtcHJldmlldyBtdC0yXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZS1pY29uXCIgKGNsaWNrKT1cInJlbW92ZUltYWdlKGkpXCI+4pyWPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbVwiIGFsdD1cIlByZXZpZXdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3cgbWItMyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1ZSBkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDdXN0b21SYW5nZUxhYmVsXT1cImZhbHNlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cInRydWVcIiBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLW5hbWUgbXktMlwiPkR1ZSB0aW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyBtdC0xIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGgtNDVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjVWNC45OTk4NE02LjY2NjY3IDEuNjY2NVY0Ljk5OTg0TTIuNSA4LjMzMzE3SDE3LjVNNC4xNjY2NyAzLjMzMzE3SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzE3IDE3LjUgNC4wNzkzNiAxNy41IDQuOTk5ODRWMTYuNjY2NUMxNy41IDE3LjU4NyAxNi43NTM4IDE4LjMzMzIgMTUuODMzMyAxOC4zMzMySDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMyIDIuNSAxNy41ODcgMi41IDE2LjY2NjVWNC45OTk4NEMyLjUgNC4wNzkzNiAzLjI0NjE5IDMuMzMzMTcgNC4xNjY2NyAzLjMzMzE3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHMtMTJcIj57eyBzZWxlY3RlZEl0ZW0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSB6LTEgaC0yMDBweCBzY3JvbGwteSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0aW1lRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkSXRlbSA9PT0gaXRlbS50ZXh0ID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0udGV4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtLnRleHQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50ZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTMgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1uYW1lIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc2lnbiB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFt2YWx1ZV09XCJ0aGlzLmNoZWNrbGlzdEluZm8/LnN1Ym1pdHRlZEJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiXCIgaWQ9XCJmbGV4Q2hlY2tEZWZhdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgbGFiZWwtbmFtZVwiIGZvcj1cImZsZXhDaGVja0RlZmF1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmRhdG9yeSBpbWFnZSByZXNwb25zZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiIFtkaXNhYmxlZF09XCJzdWJtaXR0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19