@alfresco/adf-process-services 8.1.0-14701637708 → 8.1.0-14711395239

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 (100) hide show
  1. package/esm2022/lib/app-list/apps-list.component.mjs +4 -4
  2. package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +4 -4
  3. package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +4 -4
  4. package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +4 -4
  5. package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +4 -4
  6. package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +4 -4
  7. package/esm2022/lib/form/form-custom-outcomes.component.mjs +4 -4
  8. package/esm2022/lib/form/form-list/form-list.component.mjs +4 -4
  9. package/esm2022/lib/form/form.component.mjs +4 -4
  10. package/esm2022/lib/form/process-form-rendering.service.mjs +4 -4
  11. package/esm2022/lib/form/services/activiti-alfresco.service.mjs +4 -4
  12. package/esm2022/lib/form/services/ecm-model.service.mjs +4 -4
  13. package/esm2022/lib/form/services/editor.service.mjs +4 -4
  14. package/esm2022/lib/form/services/external-alfresco-api.service.mjs +4 -4
  15. package/esm2022/lib/form/services/model.service.mjs +4 -4
  16. package/esm2022/lib/form/services/process-content.service.mjs +4 -4
  17. package/esm2022/lib/form/services/process-definition.service.mjs +4 -4
  18. package/esm2022/lib/form/services/task-form.service.mjs +4 -4
  19. package/esm2022/lib/form/services/task.service.mjs +4 -4
  20. package/esm2022/lib/form/start-form/start-form.component.mjs +4 -4
  21. package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +4 -4
  22. package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +4 -4
  23. package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +4 -4
  24. package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +4 -4
  25. package/esm2022/lib/form/widgets/document/content.widget.mjs +4 -4
  26. package/esm2022/lib/form/widgets/document/document.widget.mjs +4 -4
  27. package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +4 -4
  28. package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +4 -4
  29. package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +4 -4
  30. package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +4 -4
  31. package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +4 -4
  32. package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +4 -4
  33. package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +4 -4
  34. package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +4 -4
  35. package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +4 -4
  36. package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +4 -4
  37. package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +4 -4
  38. package/esm2022/lib/form/widgets/people/people.widget.mjs +4 -4
  39. package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +4 -4
  40. package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +4 -4
  41. package/esm2022/lib/form/widgets/upload/upload.widget.mjs +4 -4
  42. package/esm2022/lib/people/components/people/people.component.mjs +4 -4
  43. package/esm2022/lib/people/components/people-list/people-list.component.mjs +4 -4
  44. package/esm2022/lib/people/components/people-search/people-search.component.mjs +4 -4
  45. package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +4 -4
  46. package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +4 -4
  47. package/esm2022/lib/process-comments/process-comments.component.mjs +4 -4
  48. package/esm2022/lib/process-comments/services/comment-process.service.mjs +4 -4
  49. package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +4 -4
  50. package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +4 -4
  51. package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +4 -4
  52. package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +4 -4
  53. package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +4 -4
  54. package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +4 -4
  55. package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +5 -5
  56. package/esm2022/lib/process-list/services/process-filter.service.mjs +4 -4
  57. package/esm2022/lib/process-list/services/process.service.mjs +4 -4
  58. package/esm2022/lib/process.module.mjs +5 -5
  59. package/esm2022/lib/services/apps-process.service.mjs +4 -4
  60. package/esm2022/lib/services/people-process.service.mjs +4 -4
  61. package/esm2022/lib/services/task-comments.service.mjs +4 -4
  62. package/esm2022/lib/task-comments/task-comments.component.mjs +4 -4
  63. package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +4 -4
  64. package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +4 -4
  65. package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +4 -4
  66. package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +4 -4
  67. package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +4 -4
  68. package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +4 -4
  69. package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +4 -4
  70. package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +4 -4
  71. package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +4 -4
  72. package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +4 -4
  73. package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +4 -4
  74. package/esm2022/lib/task-list/services/process-upload.service.mjs +4 -4
  75. package/esm2022/lib/task-list/services/task-filter.service.mjs +4 -4
  76. package/esm2022/lib/task-list/services/task-upload.service.mjs +4 -4
  77. package/esm2022/lib/task-list/services/tasklist.service.mjs +4 -4
  78. package/fesm2022/adf-process-services.mjs +237 -237
  79. package/fesm2022/adf-process-services.mjs.map +1 -1
  80. package/lib/app-list/apps-list.component.scss +51 -23
  81. package/lib/attachment/process-attachment-list/process-attachment-list.component.scss +2 -2
  82. package/lib/attachment/task-attachment-list/task-attachment-list.component.scss +3 -3
  83. package/lib/form/start-form/start-form.component.scss +59 -60
  84. package/lib/form/widgets/content-widget/attach-file-widget-dialog.component.scss +3 -4
  85. package/lib/form/widgets/content-widget/attach-folder-widget.component.scss +3 -3
  86. package/lib/form/widgets/dropdown/dropdown.widget.scss +2 -2
  87. package/lib/form/widgets/people/people.widget.scss +2 -2
  88. package/lib/form/widgets/upload/upload.widget.scss +2 -2
  89. package/lib/people/components/people/people.component.scss +2 -2
  90. package/lib/process-list/components/start-process/start-process.component.scss +12 -12
  91. package/lib/styles/flex.scss +81 -0
  92. package/lib/styles/mat-selectors.scss +25 -0
  93. package/lib/task-list/components/attach-form/attach-form.component.scss +2 -2
  94. package/lib/task-list/components/checklist/checklist.component.scss +2 -2
  95. package/lib/task-list/components/start-task/start-task.component.scss +11 -11
  96. package/lib/task-list/components/task-details/task-details.component.scss +5 -5
  97. package/lib/task-list/components/task-form/task-form.component.scss +3 -3
  98. package/lib/task-list/components/task-header/task-header.component.scss +2 -2
  99. package/lib/task-list/components/task-standalone/task-standalone.component.scss +2 -2
  100. package/package.json +4 -4
@@ -106,10 +106,10 @@ export class ChecklistComponent {
106
106
  this.dialog.closeAll();
107
107
  this.taskName = '';
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.TaskListService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChecklistComponent, isStandalone: true, selector: "adf-checklist", inputs: { taskId: "taskId", readOnly: "readOnly", assignee: "assignee" }, outputs: { checklistTaskCreated: "checklistTaskCreated", checklistTaskDeleted: "checklistTaskDeleted", error: "error" }, viewQueries: [{ propertyName: "addNewDialog", first: true, predicate: ["dialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-checklist-control\">\n <mat-chip-listbox data-automation-id=\"checklist-label\">\n <span class=\"adf-activiti-label\">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" color=\"accent\" selected=\"true\">{{checklist?.length}}</mat-chip-option>\n </mat-chip-listbox>\n\n\n <button mat-icon-button *ngIf=\"!readOnly\" title=\"Add a checklist\"\n id=\"add-checklist\" class=\"adf-add-to-checklist-button\" (click)=\"showDialog()\">\n <mat-icon>add</mat-icon>\n </button>\n</div>\n\n<div class=\"adf-checklist-menu-container\" *ngIf=\"checklist?.length > 0\">\n <mat-chip-listbox class=\"mat-chip-list-stacked\">\n <mat-chip-option id=\"check-{{check.id}}\" class=\"adf-checklist-chip\" *ngFor=\"let check of checklist\"\n (removed)=\"delete(check.id)\">\n <span>{{check.name}}</span>\n <mat-icon *ngIf=\"!readOnly && !check.endDate\" id=\"remove-{{check.id}}\" matChipRemove>cancel\n </mat-icon>\n </mat-chip-option>\n </mat-chip-listbox>\n\n</div>\n<div *ngIf=\"checklist?.length === 0\" id=\"checklist-none-message\" class=\"adf-checklist-none-message\">\n {{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.NONE' | translate }}\n</div>\n\n<ng-template #dialog>\n <div class=\"adf-checklist-dialog\" id=\"checklist-dialog\">\n <h4 matDialogTitle id=\"add-checklist-title\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.TITLE' | translate }}</h4>\n <mat-dialog-content>\n <mat-form-field>\n <input matInput placeholder=\"{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.PLACEHOLDER' | translate }}\" [(ngModel)]=\"taskName\" id=\"checklist-name\"\n data-automation-id=\"checklist-name\">\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions class=\"adf-checklist-dialog-actions\">\n <button mat-button type=\"button\" id=\"close-check-dialog\" (click)=\"cancel()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.CANCEL-BUTTON' | translate | uppercase }}</button>\n <button mat-button type=\"button\" id=\"add-check\" (click)=\"add()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.ADD-BUTTON' | translate | uppercase }}</button>\n </mat-dialog-actions>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.adf-activiti-label{font-weight:bolder}.mat-mdc-form-field{width:100%}.adf-checklist-cancel-button{margin-top:-13px;margin-right:-13px;float:right}.adf-checklist-chip{outline:none}.adf-checklist-menu-container,.adf-checklist-none-message{margin-top:10px}.adf-checklist-control{display:flex;justify-content:space-between}.adf-checklist-control .adfactiviti-label{margin-top:6px;margin-right:10px}.adf-checklist-control .adf-add-to-checklist-button{float:right}.adf-checklist-dialog-actions{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.TaskListService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ChecklistComponent, isStandalone: true, selector: "adf-checklist", inputs: { taskId: "taskId", readOnly: "readOnly", assignee: "assignee" }, outputs: { checklistTaskCreated: "checklistTaskCreated", checklistTaskDeleted: "checklistTaskDeleted", error: "error" }, viewQueries: [{ propertyName: "addNewDialog", first: true, predicate: ["dialog"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-checklist-control\">\n <mat-chip-listbox data-automation-id=\"checklist-label\">\n <span class=\"adf-activiti-label\">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>\n <mat-chip-option class=\"adf-process-badge\" color=\"accent\" selected=\"true\">{{checklist?.length}}</mat-chip-option>\n </mat-chip-listbox>\n\n\n <button mat-icon-button *ngIf=\"!readOnly\" title=\"Add a checklist\"\n id=\"add-checklist\" class=\"adf-add-to-checklist-button\" (click)=\"showDialog()\">\n <mat-icon>add</mat-icon>\n </button>\n</div>\n\n<div class=\"adf-checklist-menu-container\" *ngIf=\"checklist?.length > 0\">\n <mat-chip-listbox class=\"mat-chip-list-stacked\">\n <mat-chip-option id=\"check-{{check.id}}\" class=\"adf-checklist-chip\" *ngFor=\"let check of checklist\"\n (removed)=\"delete(check.id)\">\n <span>{{check.name}}</span>\n <mat-icon *ngIf=\"!readOnly && !check.endDate\" id=\"remove-{{check.id}}\" matChipRemove>cancel\n </mat-icon>\n </mat-chip-option>\n </mat-chip-listbox>\n\n</div>\n<div *ngIf=\"checklist?.length === 0\" id=\"checklist-none-message\" class=\"adf-checklist-none-message\">\n {{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.NONE' | translate }}\n</div>\n\n<ng-template #dialog>\n <div class=\"adf-checklist-dialog\" id=\"checklist-dialog\">\n <h4 matDialogTitle id=\"add-checklist-title\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.TITLE' | translate }}</h4>\n <mat-dialog-content>\n <mat-form-field>\n <input matInput placeholder=\"{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.PLACEHOLDER' | translate }}\" [(ngModel)]=\"taskName\" id=\"checklist-name\"\n data-automation-id=\"checklist-name\">\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions class=\"adf-checklist-dialog-actions\">\n <button mat-button type=\"button\" id=\"close-check-dialog\" (click)=\"cancel()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.CANCEL-BUTTON' | translate | uppercase }}</button>\n <button mat-button type=\"button\" id=\"add-check\" (click)=\"add()\">{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.DIALOG.ADD-BUTTON' | translate | uppercase }}</button>\n </mat-dialog-actions>\n </div>\n</ng-template>\n", styles: [":host{width:100%}.adf-activiti-label{font-weight:bolder}.mat-mdc-form-field{width:100%}.adf-checklist-cancel-button{margin-top:-13px;margin-right:-13px;float:right}.adf-checklist-chip{outline:none}.adf-checklist-menu-container,.adf-checklist-none-message{margin-top:10px}.adf-checklist-control{display:flex;justify-content:space-between}.adf-checklist-control .adfactiviti-label{margin-top:6px;margin-right:10px}.adf-checklist-control .adf-add-to-checklist-button{float:right}.adf-checklist-dialog-actions{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecklistComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChecklistComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'adf-checklist', standalone: true, imports: [
115
115
  CommonModule,
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
138
138
  type: ViewChild,
139
139
  args: ['dialog', { static: true }]
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFB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aWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jaGVja2xpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIHBhcmVudCB0YXNrIHRvIHdoaWNoIHN1YnRhc2tzIGFyZSBhdHRhY2hlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIHJlYWRvbmx5IHN0YXRlIG9mIHRoZSBmb3JtLlxuICAgICAqIEFsbCBmb3JtIHdpZGdldHMgd2lsbCByZW5kZXIgYXMgcmVhZG9ubHkgaWYgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogKHJlcXVpcmVkKSBUaGUgYXNzaWduZWUgaWQgdGhhdCB0aGUgc3VidGFza3MgYXJlIGFzc2lnbmVkIHRvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXNzaWduZWU6IG51bWJlcjtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBuZXcgY2hlY2tsaXN0IHRhc2sgaXMgY3JlYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGVja2xpc3RUYXNrQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFza1JlcHJlc2VudGF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGNoZWNrbGlzdCB0YXNrIGlzIGRlbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2hlY2tsaXN0VGFza0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBhZGROZXdEaWFsb2c6IGFueTtcblxuICAgIHRhc2tOYW1lOiBzdHJpbmc7XG5cbiAgICBjaGVja2xpc3Q6IFRhc2tSZXByZXNlbnRhdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB0YXNrSWQgPSBjaGFuZ2VzWyd0YXNrSWQnXTtcbiAgICAgICAgaWYgKHRhc2tJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmdldFRhc2tDaGVja2xpc3QoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRhc2tDaGVja2xpc3QoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0ID0gW107XG4gICAgICAgIGlmICh0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2UuZ2V0VGFza0NoZWNrbGlzdCh0aGlzLnRhc2tJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh0YXNrRGV0YWlsc01vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tEZXRhaWxzTW9kZWwuZm9yRWFjaCgodGFzaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QucHVzaCh0YXNrKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4odGhpcy5hZGROZXdEaWFsb2csIHsgd2lkdGg6ICczNTBweCcgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZCgpIHtcbiAgICAgICAgY29uc3QgbmV3VGFzayA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogdGhpcy50YXNrTmFtZSxcbiAgICAgICAgICAgIHBhcmVudFRhc2tJZDogdGhpcy50YXNrSWQsXG4gICAgICAgICAgICBhc3NpZ25lZTogeyBpZDogdGhpcy5hc3NpZ25lZSB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5hZGRUYXNrKG5ld1Rhc2spLnN1YnNjcmliZShcbiAgICAgICAgICAgICh0YXNrRGV0YWlsc01vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QucHVzaCh0YXNrRGV0YWlsc01vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFRhc2tDcmVhdGVkLmVtaXQodGFza0RldGFpbHNNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrTmFtZSA9ICcnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZSh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5kZWxldGVUYXNrKHRhc2tJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0ID0gdGhpcy5jaGVja2xpc3QuZmlsdGVyKChjaGVjaykgPT4gY2hlY2suaWQgIT09IHRhc2tJZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RUYXNrRGVsZXRlZC5lbWl0KHRhc2tJZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgICB0aGlzLnRhc2tOYW1lID0gJyc7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1jaGVja2xpc3QtY29udHJvbFwiPlxuICAgIDxtYXQtY2hpcC1saXN0Ym94IGRhdGEtYXV0b21hdGlvbi1pZD1cImNoZWNrbGlzdC1sYWJlbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1hY3Rpdml0aS1sYWJlbFwiPnt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLkNIRUNLTElTVCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtY2hpcC1vcHRpb24gY2xhc3M9XCJhZGYtcHJvY2Vzcy1iYWRnZVwiIGNvbG9yPVwiYWNjZW50XCIgc2VsZWN0ZWQ9XCJ0cnVlXCI+e3tjaGVja2xpc3Q/Lmxlbmd0aH19PC9tYXQtY2hpcC1vcHRpb24+XG4gICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuXG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cIiFyZWFkT25seVwiIHRpdGxlPVwiQWRkIGEgY2hlY2tsaXN0XCJcbiAgICAgICAgICAgIGlkPVwiYWRkLWNoZWNrbGlzdFwiIGNsYXNzPVwiYWRmLWFkZC10by1jaGVja2xpc3QtYnV0dG9uXCIgKGNsaWNrKT1cInNob3dEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYWRmLWNoZWNrbGlzdC1tZW51LWNvbnRhaW5lclwiICpuZ0lmPVwiY2hlY2tsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgPG1hdC1jaGlwLWxpc3Rib3ggY2xhc3M9XCJtYXQtY2hpcC1saXN0LXN0YWNrZWRcIj5cbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBpZD1cImNoZWNrLXt7Y2hlY2suaWR9fVwiIGNsYXNzPVwiYWRmLWNoZWNrbGlzdC1jaGlwXCIgKm5nRm9yPVwibGV0IGNoZWNrIG9mIGNoZWNrbGlzdFwiXG4gICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJkZWxldGUoY2hlY2suaWQpXCI+XG4gICAgICAgICAgICA8c3Bhbj57e2NoZWNrLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFyZWFkT25seSAmJiAhY2hlY2suZW5kRGF0ZVwiIGlkPVwicmVtb3ZlLXt7Y2hlY2suaWR9fVwiIG1hdENoaXBSZW1vdmU+Y2FuY2VsXG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICA8L21hdC1jaGlwLWxpc3Rib3g+XG5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImNoZWNrbGlzdD8ubGVuZ3RoID09PSAwXCIgaWQ9XCJjaGVja2xpc3Qtbm9uZS1tZXNzYWdlXCIgY2xhc3M9XCJhZGYtY2hlY2tsaXN0LW5vbmUtbWVzc2FnZVwiPlxuICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuQ0hFQ0tMSVNULk5PTkUnIHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkaWFsb2c+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1jaGVja2xpc3QtZGlhbG9nXCIgaWQ9XCJjaGVja2xpc3QtZGlhbG9nXCI+XG4gICAgICAgIDxoNCBtYXREaWFsb2dUaXRsZSBpZD1cImFkZC1jaGVja2xpc3QtdGl0bGVcIj57eyAnQURGX1RBU0tfTElTVC5ERVRBSUxTLkNIRUNLTElTVC5ESUFMT0cuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7eyAnQURGX1RBU0tfTElTVC5ERVRBSUxTLkNIRUNLTElTVC5ESUFMT0cuUExBQ0VIT0xERVInIHwgdHJhbnNsYXRlIH19XCIgWyhuZ01vZGVsKV09XCJ0YXNrTmFtZVwiIGlkPVwiY2hlY2tsaXN0LW5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjaGVja2xpc3QtbmFtZVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhZGYtY2hlY2tsaXN0LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiY2xvc2UtY2hlY2stZGlhbG9nXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5DSEVDS0xJU1QuRElBTE9HLkNBTkNFTC1CVVRUT04nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYWRkLWNoZWNrXCIgKGNsaWNrKT1cImFkZCgpXCI+e3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5DSEVDS0xJU1QuRElBTE9HLkFERC1CVVRUT04nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlICB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFB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aWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jaGVja2xpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIHBhcmVudCB0YXNrIHRvIHdoaWNoIHN1YnRhc2tzIGFyZSBhdHRhY2hlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIHJlYWRvbmx5IHN0YXRlIG9mIHRoZSBmb3JtLlxuICAgICAqIEFsbCBmb3JtIHdpZGdldHMgd2lsbCByZW5kZXIgYXMgcmVhZG9ubHkgaWYgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogKHJlcXVpcmVkKSBUaGUgYXNzaWduZWUgaWQgdGhhdCB0aGUgc3VidGFza3MgYXJlIGFzc2lnbmVkIHRvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXNzaWduZWU6IG51bWJlcjtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBuZXcgY2hlY2tsaXN0IHRhc2sgaXMgY3JlYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGVja2xpc3RUYXNrQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFza1JlcHJlc2VudGF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGNoZWNrbGlzdCB0YXNrIGlzIGRlbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2hlY2tsaXN0VGFza0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBhZGROZXdEaWFsb2c6IGFueTtcblxuICAgIHRhc2tOYW1lOiBzdHJpbmc7XG5cbiAgICBjaGVja2xpc3Q6IFRhc2tSZXByZXNlbnRhdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB0YXNrSWQgPSBjaGFuZ2VzWyd0YXNrSWQnXTtcbiAgICAgICAgaWYgKHRhc2tJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmdldFRhc2tDaGVja2xpc3QoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRhc2tDaGVja2xpc3QoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0ID0gW107XG4gICAgICAgIGlmICh0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2UuZ2V0VGFza0NoZWNrbGlzdCh0aGlzLnRhc2tJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh0YXNrRGV0YWlsc01vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tEZXRhaWxzTW9kZWwuZm9yRWFjaCgodGFzaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QucHVzaCh0YXNrKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4odGhpcy5hZGROZXdEaWFsb2csIHsgd2lkdGg6ICczNTBweCcgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZCgpIHtcbiAgICAgICAgY29uc3QgbmV3VGFzayA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogdGhpcy50YXNrTmFtZSxcbiAgICAgICAgICAgIHBhcmVudFRhc2tJZDogdGhpcy50YXNrSWQsXG4gICAgICAgICAgICBhc3NpZ25lZTogeyBpZDogdGhpcy5hc3NpZ25lZSB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5hZGRUYXNrKG5ld1Rhc2spLnN1YnNjcmliZShcbiAgICAgICAgICAgICh0YXNrRGV0YWlsc01vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3QucHVzaCh0YXNrRGV0YWlsc01vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFRhc2tDcmVhdGVkLmVtaXQodGFza0RldGFpbHNNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrTmFtZSA9ICcnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZSh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5kZWxldGVUYXNrKHRhc2tJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0ID0gdGhpcy5jaGVja2xpc3QuZmlsdGVyKChjaGVjaykgPT4gY2hlY2suaWQgIT09IHRhc2tJZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RUYXNrRGVsZXRlZC5lbWl0KHRhc2tJZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgICB0aGlzLnRhc2tOYW1lID0gJyc7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1jaGVja2xpc3QtY29udHJvbFwiPlxuICAgIDxtYXQtY2hpcC1saXN0Ym94IGRhdGEtYXV0b21hdGlvbi1pZD1cImNoZWNrbGlzdC1sYWJlbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1hY3Rpdml0aS1sYWJlbFwiPnt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLkNIRUNLTElTVCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtY2hpcC1vcHRpb24gY2xhc3M9XCJhZGYtcHJvY2Vzcy1iYWRnZVwiIGNvbG9yPVwiYWNjZW50XCIgc2VsZWN0ZWQ9XCJ0cnVlXCI+e3tjaGVja2xpc3Q/Lmxlbmd0aH19PC9tYXQtY2hpcC1vcHRpb24+XG4gICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuXG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cIiFyZWFkT25seVwiIHRpdGxlPVwiQWRkIGEgY2hlY2tsaXN0XCJcbiAgICAgICAgICAgIGlkPVwiYWRkLWNoZWNrbGlzdFwiIGNsYXNzPVwiYWRmLWFkZC10by1jaGVja2xpc3QtYnV0dG9uXCIgKGNsaWNrKT1cInNob3dEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYWRmLWNoZWNrbGlzdC1tZW51LWNvbnRhaW5lclwiICpuZ0lmPVwiY2hlY2tsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgPG1hdC1jaGlwLWxpc3Rib3ggY2xhc3M9XCJtYXQtY2hpcC1saXN0LXN0YWNrZWRcIj5cbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBpZD1cImNoZWNrLXt7Y2hlY2suaWR9fVwiIGNsYXNzPVwiYWRmLWNoZWNrbGlzdC1jaGlwXCIgKm5nRm9yPVwibGV0IGNoZWNrIG9mIGNoZWNrbGlzdFwiXG4gICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJkZWxldGUoY2hlY2suaWQpXCI+XG4gICAgICAgICAgICA8c3Bhbj57e2NoZWNrLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFyZWFkT25seSAmJiAhY2hlY2suZW5kRGF0ZVwiIGlkPVwicmVtb3ZlLXt7Y2hlY2suaWR9fVwiIG1hdENoaXBSZW1vdmU+Y2FuY2VsXG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICA8L21hdC1jaGlwLWxpc3Rib3g+XG5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImNoZWNrbGlzdD8ubGVuZ3RoID09PSAwXCIgaWQ9XCJjaGVja2xpc3Qtbm9uZS1tZXNzYWdlXCIgY2xhc3M9XCJhZGYtY2hlY2tsaXN0LW5vbmUtbWVzc2FnZVwiPlxuICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuQ0hFQ0tMSVNULk5PTkUnIHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkaWFsb2c+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1jaGVja2xpc3QtZGlhbG9nXCIgaWQ9XCJjaGVja2xpc3QtZGlhbG9nXCI+XG4gICAgICAgIDxoNCBtYXREaWFsb2dUaXRsZSBpZD1cImFkZC1jaGVja2xpc3QtdGl0bGVcIj57eyAnQURGX1RBU0tfTElTVC5ERVRBSUxTLkNIRUNLTElTVC5ESUFMT0cuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7eyAnQURGX1RBU0tfTElTVC5ERVRBSUxTLkNIRUNLTElTVC5ESUFMT0cuUExBQ0VIT0xERVInIHwgdHJhbnNsYXRlIH19XCIgWyhuZ01vZGVsKV09XCJ0YXNrTmFtZVwiIGlkPVwiY2hlY2tsaXN0LW5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjaGVja2xpc3QtbmFtZVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhZGYtY2hlY2tsaXN0LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiY2xvc2UtY2hlY2stZGlhbG9nXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5DSEVDS0xJU1QuRElBTE9HLkNBTkNFTC1CVVRUT04nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYWRkLWNoZWNrXCIgKGNsaWNrKT1cImFkZCgpXCI+e3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5DSEVDS0xJU1QuRElBTE9HLkFERC1CVVRUT04nIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlICB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -183,13 +183,13 @@ export class StartTaskComponent {
183
183
  loadFormsTask() {
184
184
  this.forms$ = this.taskService.getFormList();
185
185
  }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartTaskComponent, deps: [{ token: i1.TaskListService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StartTaskComponent, isStandalone: true, selector: "adf-start-task", inputs: { appId: "appId", name: "name" }, outputs: { success: "success", cancel: "cancel", error: "error" }, providers: [
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartTaskComponent, deps: [{ token: i1.TaskListService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: StartTaskComponent, isStandalone: true, selector: "adf-start-task", inputs: { appId: "appId", name: "name" }, outputs: { success: "success", cancel: "cancel", error: "error" }, providers: [
188
188
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
189
189
  { provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS }
190
190
  ], ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"adf-new-task-layout-card\">\n <mat-card-header class=\"adf-new-task-heading\">\n <mat-card-title>{{'ADF_TASK_LIST.START_TASK.FORM.TITLE' | translate}}</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <form [formGroup]=\"taskForm\" class=\"adf-new-task-form\">\n <div class=\"adf-task-name\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NAME' | translate}}</mat-label>\n <input\n matInput\n id=\"name_id\"\n formControlName=\"name\">\n <mat-error *ngIf=\"nameController.hasError('required') || nameController.hasError('whitespace')\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.REQUIRED' | translate }}\n </mat-error>\n <mat-error *ngIf=\"nameController.hasError('maxlength')\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxTaskNameLength } }}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"adf-task-description\">\n <mat-form-field>\n <mat-label>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DESCRIPTION' | translate}}</mat-label>\n <textarea\n matInput\n rows=\"1\"\n id=\"description_id\"\n formControlName=\"description\">\n </textarea>\n <mat-error *ngIf=\"descriptionController.hasError('whitespace')\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ERROR.MESSAGE' | translate }}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"adf-input-row\">\n <mat-form-field>\n <input\n matInput\n (keyup)=\"onDateChanged($any($event).srcElement.value)\"\n (dateInput)=\"onDateChanged($any($event).value)\"\n [matDatepicker]=\"taskDatePicker\"\n placeholder=\"{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.DATE'|translate}}\"\n id=\"date_id\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"taskDatePicker\" />\n <mat-datepicker\n #taskDatePicker\n [touchUi]=\"true\" />\n <div class=\"adf-error-text-container\">\n <div *ngIf=\"dateError\">\n <div class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</div>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n </div>\n </div>\n </mat-form-field>\n <people-widget\n (peopleSelected)=\"setAssigneeId($event)\"\n [field]=\"field\"\n class=\"adf-people-widget-content\" />\n </div>\n <mat-form-field class=\"adf-task-form\">\n <mat-label id=\"form_label\">{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.FORM'|translate}}</mat-label>\n <mat-select\n id=\"form_id\"\n class=\"form-control\"\n formControlName=\"formKey\">\n <mat-option>{{'ADF_TASK_LIST.START_TASK.FORM.LABEL.NONE'|translate}}</mat-option>\n <mat-option *ngFor=\"let form of forms$ | async\" [value]=\"form.id\">{{ form.name }}</mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-actions>\n <div class=\"adf-new-task-footer\">\n <button\n mat-button\n class=\"adf-uppercase\"\n (click)=\"onCancel()\"\n id=\"button-cancel\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}\n </button>\n <button\n color=\"primary\"\n mat-button\n class=\"adf-uppercase\"\n [disabled]=\"!isFormValid()\"\n (click)=\"saveTask()\"\n id=\"button-start\">\n {{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.START' | translate }}\n </button>\n </div>\n </mat-card-actions>\n</mat-card>\n", styles: [".adf-new-task-heading{padding-top:12px;border-bottom:1px solid var(--adf-theme-foreground-divider-color)}.adf-new-task-heading .mat-mdc-card-title{font-weight:700;font-size:var(--theme-adf-task-title-font-size)}.adf-new-task-layout-card{margin:10px auto;flex:1 1 100%;max-width:70%}.adf-new-task-layout-card .adf-new-task-form{flex-direction:column;display:flex}.adf-new-task-layout-card .adf-new-task-form .adf-task-name,.adf-new-task-layout-card .adf-new-task-form .adf-task-description{display:flex;margin-bottom:10px}.adf-new-task-layout-card .adf-new-task-form .adf-task-name mat-form-field,.adf-new-task-layout-card .adf-new-task-form .adf-task-description mat-form-field{flex:1}@media (max-width: 959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row{flex-direction:column}}@media (max-width: 959.9px){.adf-new-task-layout-card .adf-new-task-form .adf-input-row mat-form-field{margin-right:20px}}.adf-new-task-layout-card .adf-new-task-form .adf-task-form{flex:1 1 100%;box-sizing:border-box;max-width:48%}@media (max-width: 599.9px){.adf-new-task-layout-card .adf-new-task-form .adf-task-form{max-width:100%}}.adf-new-task-footer{padding:4px;font-size:var(--theme-adf-task-footer-font-size);border-top:1px solid #eee;display:flex;place-content:flex-end;align-items:flex-end}.adf-mat-select{padding-top:0}adf-start-task .mat-mdc-button.adf-uppercase{text-transform:uppercase}adf-start-task people-widget.adf-people-widget-content{width:100%}adf-start-task people-widget.adf-people-widget-content .mat-mdc-floating-label{top:-14px}adf-start-task .adf-people-widget-content .mat-mdc-form-field{width:100%}adf-start-task .adf-people-widget-content .adf-label{line-height:0}adf-start-task .adf-people-widget-content .adf-error-container{margin-top:-10px}adf-start-task .adf-start-task-input-container .mat-mdc-text-field-wrapper{padding-top:8px}adf-start-task .adf-error-text-container{position:absolute;height:20px;margin-top:12px;width:100%}adf-start-task .adf-error-text-container>div{display:flex;flex-flow:row;justify-content:flex-start}adf-start-task .adf-error-text{padding-right:8px;height:16px;font-size:var(--theme-caption-font-size);line-height:1.33;color:var(--theme-warn-color);width:auto}adf-start-task .adf-error-icon{font-size:var(--theme-adf-icon-1-font-size);color:var(--theme-warn-color)}adf-start-task .adf-label{color:#bababa}adf-start-task .adf-invalid .adf-file{border-color:var(--theme-warn-color)}adf-start-task .adf-invalid .mat-mdc-form-field-text-prefix{color:var(--theme-warn-color)}adf-start-task .adf-invalid .adf-input{border-color:var(--theme-warn-color)}adf-start-task .adf-invalid .adf-label{color:var(--theme-warn-color)}adf-start-task .adf-invalid .adf-label:after{background-color:var(--theme-warn-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i12.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: PeopleWidgetComponent, selector: "people-widget", outputs: ["peopleSelected"] }], encapsulation: i0.ViewEncapsulation.None }); }
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartTaskComponent, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartTaskComponent, decorators: [{
193
193
  type: Component,
194
194
  args: [{ selector: 'adf-start-task', standalone: true, imports: [
195
195
  CommonModule,
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
219
  }], error: [{
220
220
  type: Output
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3N0YXJ0LXRhc2svc3RhcnQtdGFzay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3N0YXJ0LXRhc2svc3RhcnQtdGFzay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxP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UCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtTQUM1RCwwQkMvREwsOG1KQStGQSxvd0ZEakRRLFlBQVksb1RBQ1osZUFBZSwyRkFDZixhQUFhLGloQkFDYixtQkFBbUIsNDhCQUNuQixrQkFBa0Isd2dCQUNsQixjQUFjLDBXQUNkLG1CQUFtQixpZ0JBQ25CLGFBQWEsbUxBQ2IsZUFBZSxxckJBQ2YsZUFBZSw2TkFDZixxQkFBcUI7OzRGQVVoQixrQkFBa0I7a0JBeEI5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLHFCQUFxQjtxQkFDeEIsYUFHVTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7cUJBQzVELGlCQUNjLGlCQUFpQixDQUFDLElBQUk7cUhBS3JDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS3pCLElBQUk7c0JBREgsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsTUFBTTtzQkFETCxNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQURGX0RBVEVfRk9STUFUUywgQWRmRGF0ZUZuc0FkYXB0ZXIsIERhdGVGbnNVdGlscywgRm9ybUZpZWxkTW9kZWwsIEZvcm1Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IGRlZmF1bHRJZkVtcHR5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IFRhc2tSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgUGVvcGxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZm9ybSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IEZPUk1BVF9EQVRFID0gJ0REL01NL1lZWVknO1xuY29uc3QgTUFYX0xFTkdUSCA9IDI1NTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc3RhcnQtdGFzaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGVvcGxlV2lkZ2V0Q29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhcnQtdGFzay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhcnQtdGFzay5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZUZuc0FkYXB0ZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFN0YXJ0VGFza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIChyZXF1aXJlZCkgVGhlIGlkIG9mIHRoZSBhcHAuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBhcHBJZDogbnVtYmVyO1xuXG4gICAgLyoqIERlZmF1bHQgVGFzayBOYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZCBieSB0aGUgdXNlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdGFza0RldGFpbHNNb2RlbCA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24oKTtcbiAgICBmb3JtcyQ6IE9ic2VydmFibGU8Rm9ybVtdPjtcbiAgICBhc3NpZ25lZUlkOiBudW1iZXI7XG4gICAgZmllbGQ6IEZvcm1GaWVsZE1vZGVsO1xuICAgIHRhc2tGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIGRhdGVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIG1heFRhc2tOYW1lTGVuZ3RoOiBudW1iZXIgPSBNQVhfTEVOR1RIO1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFza1NlcnZpY2U6IFRhc2tMaXN0U2VydmljZSwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHNNb2RlbC5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0ZU1heFRhc2tOYW1lTGVuZ3RoKCk7XG5cbiAgICAgICAgdGhpcy5maWVsZCA9IG5ldyBGb3JtRmllbGRNb2RlbChuZXcgRm9ybU1vZGVsKCksIHsgaWQ6IHRoaXMuYXNzaWduZWVJZCwgdmFsdWU6IHRoaXMuYXNzaWduZWVJZCwgcGxhY2Vob2xkZXI6ICdBc3NpZ25lZScgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkRm9ybXNUYXNrKCk7XG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgfVxuXG4gICAgYnVpbGRGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhc2tGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudGFza0RldGFpbHNNb2RlbC5uYW1lLCBbXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heFRhc2tOYW1lTGVuZ3RoKSxcbiAgICAgICAgICAgICAgICB0aGlzLndoaXRlc3BhY2VWYWxpZGF0b3JcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFt0aGlzLndoaXRlc3BhY2VWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgIGZvcm1LZXk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGFza0Zvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgodGFza0Zvcm1WYWx1ZXMpID0+IHRoaXMuc2V0VGFza0RldGFpbHModGFza0Zvcm1WYWx1ZXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdoaXRlc3BhY2VWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogYW55IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzV2hpdGVzcGFjZSA9IChjb250cm9sLnZhbHVlIHx8ICcnKS50cmltKCkubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgY29uc3QgaXNDb250cm9sVmFsaWQgPSBjb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMCB8fCAhaXNXaGl0ZXNwYWNlO1xuICAgICAgICAgICAgcmV0dXJuIGlzQ29udHJvbFZhbGlkID8gbnVsbCA6IHsgd2hpdGVzcGFjZTogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHNldFRhc2tEZXRhaWxzKGZvcm06IGFueSkge1xuICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwubmFtZSA9IGZvcm0ubmFtZTtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmRlc2NyaXB0aW9uID0gZm9ybS5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmZvcm1LZXkgPSBmb3JtLmZvcm1LZXkgPyBmb3JtLmZvcm1LZXkudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tGb3JtLnZhbGlkICYmICF0aGlzLmRhdGVFcnJvciAmJiAhdGhpcy5sb2FkaW5nO1xuICAgIH1cblxuICAgIHNhdmVUYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5hcHBJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmNhdGVnb3J5ID0gdGhpcy5hcHBJZC50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFza1NlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGVOZXdUYXNrKHRoaXMudGFza0RldGFpbHNNb2RlbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoY3JlYXRlUmVzKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaEZvcm0oY3JlYXRlUmVzLmlkLCB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZm9ybUtleSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KGNyZWF0ZVJlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGF0dGFjaFJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzc2lnbmVlSWQgPSB0aGlzLmFzc2lnbmVlSWQgPyB0aGlzLmFzc2lnbmVlSWQudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduVGFza0J5VXNlcklkKGNyZWF0ZVJlcy5pZCwgYXNzaWduZWVJZCkucGlwZShkZWZhdWx0SWZFbXB0eShhdHRhY2hSZXMgPyBhdHRhY2hSZXMgOiBjcmVhdGVSZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0QXNzaWduZWVJZCh1c2VySWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFzc2lnbmVlSWQgPSB1c2VySWQ7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBnZXREaXNwbGF5VXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZywgZGVsaW1pdGVyOiBzdHJpbmcgPSAnLScpOiBzdHJpbmcge1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgIT09IG51bGwgPyBmaXJzdE5hbWUgOiAnJztcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSAhPT0gbnVsbCA/IGxhc3ROYW1lIDogJyc7XG4gICAgICAgIHJldHVybiBmaXJzdE5hbWUgKyBkZWxpbWl0ZXIgKyBsYXN0TmFtZTtcbiAgICB9XG5cbiAgICBvbkRhdGVDaGFuZ2VkKG5ld0RhdGVWYWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICB0aGlzLmRhdGVFcnJvciA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChuZXdEYXRlVmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBkYXRlOiBEYXRlO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0RhdGVWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gRGF0ZUZuc1V0aWxzLnBhcnNlRGF0ZShuZXdEYXRlVmFsdWUsIEZPUk1BVF9EQVRFKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IG5ld0RhdGVWYWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IGRhdGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlTWF4VGFza05hbWVMZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLm1heFRhc2tOYW1lTGVuZ3RoID4gTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy5tYXhUYXNrTmFtZUxlbmd0aCA9IE1BWF9MRU5HVEg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbmFtZUNvbnRyb2xsZXIoKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0Zvcm0uZ2V0KCduYW1lJyk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uQ29udHJvbGxlcigpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hGb3JtKHRhc2tJZDogc3RyaW5nLCBmb3JtS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgcmVzcG9uc2U6IGFueSA9IEVNUFRZO1xuICAgICAgICBpZiAodGFza0lkICYmIGZvcm1LZXkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gdGhpcy50YXNrU2VydmljZS5hdHRhY2hGb3JtVG9BVGFzayh0YXNrSWQsIHBhcnNlSW50KGZvcm1LZXksIDEwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXNzaWduVGFza0J5VXNlcklkKHRhc2tJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGlmICh0YXNrSWQgJiYgdXNlcklkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5hc3NpZ25UYXNrQnlVc2VySWQodGFza0lkLCB1c2VySWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRGb3Jtc1Rhc2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybXMkID0gdGhpcy50YXNrU2VydmljZS5nZXRGb3JtTGlzdCgpO1xuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cImFkZi1uZXctdGFzay1sYXlvdXQtY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJhZGYtbmV3LXRhc2staGVhZGluZ1wiPlxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uVElUTEUnIHwgdHJhbnNsYXRlfX08L21hdC1jYXJkLXRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRhc2tGb3JtXCIgY2xhc3M9XCJhZGYtbmV3LXRhc2stZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLW5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uTEFCRUwuTkFNRScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm5hbWVDb250cm9sbGVyLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8IG5hbWVDb250cm9sbGVyLmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJuYW1lQ29udHJvbGxlci5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuTUFYSU1VTV9MRU5HVEgnIHwgdHJhbnNsYXRlIDogeyBjaGFyYWN0ZXJzIDogbWF4VGFza05hbWVMZW5ndGggfSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7J0FERl9UQVNLX0xJU1QuU1RBUlRfVEFTSy5GT1JNLkxBQkVMLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25faWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImRlc2NyaXB0aW9uQ29udHJvbGxlci5oYXNFcnJvcignd2hpdGVzcGFjZScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuTUVTU0FHRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1pbnB1dC1yb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkRhdGVDaGFuZ2VkKCRhbnkoJGV2ZW50KS5zcmNFbGVtZW50LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZUlucHV0KT1cIm9uRGF0ZUNoYW5nZWQoJGFueSgkZXZlbnQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJ0YXNrRGF0ZVBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J0FERl9UQVNLX0xJU1QuU1RBUlRfVEFTSy5GT1JNLkxBQkVMLkRBVEUnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGF0ZV9pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwidGFza0RhdGVQaWNrZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0YXNrRGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZXJyb3ItdGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5FUlJPUi5EQVRFJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1lcnJvci1pY29uXCI+d2FybmluZzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8cGVvcGxlLXdpZGdldFxuICAgICAgICAgICAgICAgICAgICAocGVvcGxlU2VsZWN0ZWQpPVwic2V0QXNzaWduZWVJZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcGVvcGxlLXdpZGdldC1jb250ZW50XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLXRhc2stZm9ybVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgaWQ9XCJmb3JtX2xhYmVsXCI+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uTEFCRUwuRk9STSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBpZD1cImZvcm1faWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZvcm1LZXlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5MQUJFTC5OT05FJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZm9ybSBvZiBmb3JtcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJmb3JtLmlkXCI+e3sgZm9ybS5uYW1lIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtbmV3LXRhc2stZm9vdGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgICAgICAgIGlkPVwiYnV0dG9uLWNhbmNlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5BQ1RJT04uQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdXBwZXJjYXNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlVGFzaygpXCJcbiAgICAgICAgICAgICAgICBpZD1cImJ1dHRvbi1zdGFydFwiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5BQ1RJT04uU1RBUlQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3N0YXJ0LXRhc2svc3RhcnQtdGFzay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3N0YXJ0LXRhc2svc3RhcnQtdGFzay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxP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UCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtTQUM1RCwwQkMvREwsOG1KQStGQSxvd0ZEakRRLFlBQVksb1RBQ1osZUFBZSwyRkFDZixhQUFhLGloQkFDYixtQkFBbUIsNDhCQUNuQixrQkFBa0Isd2dCQUNsQixjQUFjLDBXQUNkLG1CQUFtQixpZ0JBQ25CLGFBQWEsbUxBQ2IsZUFBZSxxckJBQ2YsZUFBZSw2TkFDZixxQkFBcUI7OzJGQVVoQixrQkFBa0I7a0JBeEI5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLHFCQUFxQjtxQkFDeEIsYUFHVTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7cUJBQzVELGlCQUNjLGlCQUFpQixDQUFDLElBQUk7cUhBS3JDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS3pCLElBQUk7c0JBREgsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsTUFBTTtzQkFETCxNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQURGX0RBVEVfRk9STUFUUywgQWRmRGF0ZUZuc0FkYXB0ZXIsIERhdGVGbnNVdGlscywgRm9ybUZpZWxkTW9kZWwsIEZvcm1Nb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IGRlZmF1bHRJZkVtcHR5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IFRhc2tSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgUGVvcGxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZm9ybSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IEZPUk1BVF9EQVRFID0gJ0REL01NL1lZWVknO1xuY29uc3QgTUFYX0xFTkdUSCA9IDI1NTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc3RhcnQtdGFzaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGVvcGxlV2lkZ2V0Q29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhcnQtdGFzay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhcnQtdGFzay5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZUZuc0FkYXB0ZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFN0YXJ0VGFza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIChyZXF1aXJlZCkgVGhlIGlkIG9mIHRoZSBhcHAuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBhcHBJZDogbnVtYmVyO1xuXG4gICAgLyoqIERlZmF1bHQgVGFzayBOYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZCBieSB0aGUgdXNlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdGFza0RldGFpbHNNb2RlbCA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24oKTtcbiAgICBmb3JtcyQ6IE9ic2VydmFibGU8Rm9ybVtdPjtcbiAgICBhc3NpZ25lZUlkOiBudW1iZXI7XG4gICAgZmllbGQ6IEZvcm1GaWVsZE1vZGVsO1xuICAgIHRhc2tGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIGRhdGVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIG1heFRhc2tOYW1lTGVuZ3RoOiBudW1iZXIgPSBNQVhfTEVOR1RIO1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFza1NlcnZpY2U6IFRhc2tMaXN0U2VydmljZSwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHNNb2RlbC5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0ZU1heFRhc2tOYW1lTGVuZ3RoKCk7XG5cbiAgICAgICAgdGhpcy5maWVsZCA9IG5ldyBGb3JtRmllbGRNb2RlbChuZXcgRm9ybU1vZGVsKCksIHsgaWQ6IHRoaXMuYXNzaWduZWVJZCwgdmFsdWU6IHRoaXMuYXNzaWduZWVJZCwgcGxhY2Vob2xkZXI6ICdBc3NpZ25lZScgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkRm9ybXNUYXNrKCk7XG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgfVxuXG4gICAgYnVpbGRGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhc2tGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudGFza0RldGFpbHNNb2RlbC5uYW1lLCBbXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heFRhc2tOYW1lTGVuZ3RoKSxcbiAgICAgICAgICAgICAgICB0aGlzLndoaXRlc3BhY2VWYWxpZGF0b3JcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFt0aGlzLndoaXRlc3BhY2VWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgIGZvcm1LZXk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGFza0Zvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgodGFza0Zvcm1WYWx1ZXMpID0+IHRoaXMuc2V0VGFza0RldGFpbHModGFza0Zvcm1WYWx1ZXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdoaXRlc3BhY2VWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogYW55IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzV2hpdGVzcGFjZSA9IChjb250cm9sLnZhbHVlIHx8ICcnKS50cmltKCkubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgY29uc3QgaXNDb250cm9sVmFsaWQgPSBjb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMCB8fCAhaXNXaGl0ZXNwYWNlO1xuICAgICAgICAgICAgcmV0dXJuIGlzQ29udHJvbFZhbGlkID8gbnVsbCA6IHsgd2hpdGVzcGFjZTogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHNldFRhc2tEZXRhaWxzKGZvcm06IGFueSkge1xuICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwubmFtZSA9IGZvcm0ubmFtZTtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmRlc2NyaXB0aW9uID0gZm9ybS5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmZvcm1LZXkgPSBmb3JtLmZvcm1LZXkgPyBmb3JtLmZvcm1LZXkudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tGb3JtLnZhbGlkICYmICF0aGlzLmRhdGVFcnJvciAmJiAhdGhpcy5sb2FkaW5nO1xuICAgIH1cblxuICAgIHNhdmVUYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5hcHBJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlsc01vZGVsLmNhdGVnb3J5ID0gdGhpcy5hcHBJZC50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFza1NlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGVOZXdUYXNrKHRoaXMudGFza0RldGFpbHNNb2RlbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoY3JlYXRlUmVzKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaEZvcm0oY3JlYXRlUmVzLmlkLCB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZm9ybUtleSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KGNyZWF0ZVJlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGF0dGFjaFJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzc2lnbmVlSWQgPSB0aGlzLmFzc2lnbmVlSWQgPyB0aGlzLmFzc2lnbmVlSWQudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNzaWduVGFza0J5VXNlcklkKGNyZWF0ZVJlcy5pZCwgYXNzaWduZWVJZCkucGlwZShkZWZhdWx0SWZFbXB0eShhdHRhY2hSZXMgPyBhdHRhY2hSZXMgOiBjcmVhdGVSZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0QXNzaWduZWVJZCh1c2VySWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFzc2lnbmVlSWQgPSB1c2VySWQ7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBnZXREaXNwbGF5VXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZywgZGVsaW1pdGVyOiBzdHJpbmcgPSAnLScpOiBzdHJpbmcge1xuICAgICAgICBmaXJzdE5hbWUgPSBmaXJzdE5hbWUgIT09IG51bGwgPyBmaXJzdE5hbWUgOiAnJztcbiAgICAgICAgbGFzdE5hbWUgPSBsYXN0TmFtZSAhPT0gbnVsbCA/IGxhc3ROYW1lIDogJyc7XG4gICAgICAgIHJldHVybiBmaXJzdE5hbWUgKyBkZWxpbWl0ZXIgKyBsYXN0TmFtZTtcbiAgICB9XG5cbiAgICBvbkRhdGVDaGFuZ2VkKG5ld0RhdGVWYWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICB0aGlzLmRhdGVFcnJvciA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChuZXdEYXRlVmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBkYXRlOiBEYXRlO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0RhdGVWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gRGF0ZUZuc1V0aWxzLnBhcnNlRGF0ZShuZXdEYXRlVmFsdWUsIEZPUk1BVF9EQVRFKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IG5ld0RhdGVWYWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IGRhdGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzTW9kZWwuZHVlRGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlTWF4VGFza05hbWVMZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLm1heFRhc2tOYW1lTGVuZ3RoID4gTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy5tYXhUYXNrTmFtZUxlbmd0aCA9IE1BWF9MRU5HVEg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbmFtZUNvbnRyb2xsZXIoKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0Zvcm0uZ2V0KCduYW1lJyk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uQ29udHJvbGxlcigpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hGb3JtKHRhc2tJZDogc3RyaW5nLCBmb3JtS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgcmVzcG9uc2U6IGFueSA9IEVNUFRZO1xuICAgICAgICBpZiAodGFza0lkICYmIGZvcm1LZXkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gdGhpcy50YXNrU2VydmljZS5hdHRhY2hGb3JtVG9BVGFzayh0YXNrSWQsIHBhcnNlSW50KGZvcm1LZXksIDEwKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXNzaWduVGFza0J5VXNlcklkKHRhc2tJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGlmICh0YXNrSWQgJiYgdXNlcklkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5hc3NpZ25UYXNrQnlVc2VySWQodGFza0lkLCB1c2VySWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRGb3Jtc1Rhc2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybXMkID0gdGhpcy50YXNrU2VydmljZS5nZXRGb3JtTGlzdCgpO1xuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cImFkZi1uZXctdGFzay1sYXlvdXQtY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJhZGYtbmV3LXRhc2staGVhZGluZ1wiPlxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uVElUTEUnIHwgdHJhbnNsYXRlfX08L21hdC1jYXJkLXRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRhc2tGb3JtXCIgY2xhc3M9XCJhZGYtbmV3LXRhc2stZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLW5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uTEFCRUwuTkFNRScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm5hbWVDb250cm9sbGVyLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8IG5hbWVDb250cm9sbGVyLmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJuYW1lQ29udHJvbGxlci5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuTUFYSU1VTV9MRU5HVEgnIHwgdHJhbnNsYXRlIDogeyBjaGFyYWN0ZXJzIDogbWF4VGFza05hbWVMZW5ndGggfSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7J0FERl9UQVNLX0xJU1QuU1RBUlRfVEFTSy5GT1JNLkxBQkVMLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25faWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImRlc2NyaXB0aW9uQ29udHJvbGxlci5oYXNFcnJvcignd2hpdGVzcGFjZScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uRVJST1IuTUVTU0FHRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1pbnB1dC1yb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkRhdGVDaGFuZ2VkKCRhbnkoJGV2ZW50KS5zcmNFbGVtZW50LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZUlucHV0KT1cIm9uRGF0ZUNoYW5nZWQoJGFueSgkZXZlbnQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJ0YXNrRGF0ZVBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J0FERl9UQVNLX0xJU1QuU1RBUlRfVEFTSy5GT1JNLkxBQkVMLkRBVEUnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGF0ZV9pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwidGFza0RhdGVQaWNrZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0YXNrRGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZXJyb3ItdGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRlRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5FUlJPUi5EQVRFJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1lcnJvci1pY29uXCI+d2FybmluZzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8cGVvcGxlLXdpZGdldFxuICAgICAgICAgICAgICAgICAgICAocGVvcGxlU2VsZWN0ZWQpPVwic2V0QXNzaWduZWVJZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcGVvcGxlLXdpZGdldC1jb250ZW50XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLXRhc2stZm9ybVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgaWQ9XCJmb3JtX2xhYmVsXCI+e3snQURGX1RBU0tfTElTVC5TVEFSVF9UQVNLLkZPUk0uTEFCRUwuRk9STSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBpZD1cImZvcm1faWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZvcm1LZXlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5MQUJFTC5OT05FJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZm9ybSBvZiBmb3JtcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJmb3JtLmlkXCI+e3sgZm9ybS5uYW1lIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtbmV3LXRhc2stZm9vdGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgICAgICAgIGlkPVwiYnV0dG9uLWNhbmNlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5BQ1RJT04uQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdXBwZXJjYXNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlVGFzaygpXCJcbiAgICAgICAgICAgICAgICBpZD1cImJ1dHRvbi1zdGFydFwiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5BQ1RJT04uU1RBUlQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -271,15 +271,15 @@ export class TaskDetailsComponent {
271
271
  this.error.emit(error);
272
272
  });
273
273
  }
274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskDetailsComponent, deps: [{ token: i1.TaskListService }, { token: i2.PeopleProcessService }, { token: i3.CardViewUpdateService }, { token: i4.MatDialog }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TaskDetailsComponent, isStandalone: true, selector: "adf-task-details", inputs: { taskId: "taskId", showNextTask: "showNextTask", showHeader: "showHeader", showHeaderContent: "showHeaderContent", showInvolvePeople: "showInvolvePeople", showComments: "showComments", showChecklist: "showChecklist", showFormTitle: "showFormTitle", showFormCompleteButton: "showFormCompleteButton", showFormSaveButton: "showFormSaveButton", readOnlyForm: "readOnlyForm", showFormRefreshButton: "showFormRefreshButton", fieldValidators: "fieldValidators" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formContentClicked: "formContentClicked", formLoaded: "formLoaded", taskCreated: "taskCreated", taskDeleted: "taskDeleted", error: "error", executeOutcome: "executeOutcome", assignTask: "assignTask", claimedTask: "claimedTask", unClaimedTask: "unClaimedTask" }, providers: [
274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskDetailsComponent, deps: [{ token: i1.TaskListService }, { token: i2.PeopleProcessService }, { token: i3.CardViewUpdateService }, { token: i4.MatDialog }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: TaskDetailsComponent, isStandalone: true, selector: "adf-task-details", inputs: { taskId: "taskId", showNextTask: "showNextTask", showHeader: "showHeader", showHeaderContent: "showHeaderContent", showInvolvePeople: "showInvolvePeople", showComments: "showComments", showChecklist: "showChecklist", showFormTitle: "showFormTitle", showFormCompleteButton: "showFormCompleteButton", showFormSaveButton: "showFormSaveButton", readOnlyForm: "readOnlyForm", showFormRefreshButton: "showFormRefreshButton", fieldValidators: "fieldValidators" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formContentClicked: "formContentClicked", formLoaded: "formLoaded", taskCreated: "taskCreated", taskDeleted: "taskDeleted", error: "error", executeOutcome: "executeOutcome", assignTask: "assignTask", claimedTask: "claimedTask", unClaimedTask: "unClaimedTask" }, providers: [
276
276
  {
277
277
  provide: ADF_COMMENTS_SERVICE,
278
278
  useClass: TaskCommentsService
279
279
  }
280
280
  ], viewQueries: [{ propertyName: "errorDialog", first: true, predicate: ["errorDialog"], descendants: true }, { propertyName: "taskFormComponent", first: true, predicate: ["taskForm"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!taskDetails\" data-automation-id=\"adf-tasks-details--empty\">\n <ng-template *ngIf=\"noTaskDetailsTemplateComponent\" ngFor [ngForOf]=\"[data]\"\n [ngForTemplate]=\"noTaskDetailsTemplateComponent\">\n {{ 'ADF_TASK_LIST.DETAILS.MESSAGES.NONE' | translate }}\n </ng-template>\n <div *ngIf=\"!noTaskDetailsTemplateComponent\">\n {{ 'ADF_TASK_LIST.DETAILS.MESSAGES.NONE' | translate }}\n </div>\n</div>\n<div *ngIf=\"taskDetails\" class=\"adf-task-details\">\n\n <div *ngIf=\"showHeader\" class=\"adf-task-details-header\">\n <h2 class=\"adf-activiti-task-details__header\">\n <span>{{taskDetails.name || 'No name'}}</span>\n </h2>\n </div>\n\n <div class=\"adf-task-details-core\">\n <div class=\"adf-task-details-core-form\">\n <div *ngIf=\"isAssigned()\">\n <adf-task-form #taskForm\n [taskId]=\"taskDetails.id\"\n [showFormTitle]=\"showFormTitle\"\n [showFormRefreshButton]=\"showFormRefreshButton\"\n [showCancelButton]=\"true\"\n [fieldValidators]=\"fieldValidators\"\n (formSaved)='onFormSaved($event)'\n (formCompleted)='onFormCompleted($event)'\n (formContentClicked)='onFormContentClick($event)'\n (formLoaded)='onFormLoaded($event)'\n (completed)=\"onComplete()\"\n (showAttachForm)=\"onShowAttachForm()\"\n (executeOutcome)='onFormExecuteOutcome($event)'\n (taskClaimed)=\"onClaimAction($event)\"\n (taskUnclaimed)=\"onUnclaimAction($event)\"\n (error)=\"onFormError($event)\" />\n <adf-attach-form *ngIf=\"showAttachForm\"\n [taskId]=\"taskDetails.id\"\n [formKey]=\"taskDetails.formKey\"\n (cancelAttachForm)=\"onCancelAttachForm()\"\n (success)=\"onCompleteAttachForm()\" />\n </div>\n <div *ngIf=\"!isAssigned()\" id=\"claim-message-id\">\n {{ 'ADF_TASK_LIST.DETAILS.MESSAGES.CLAIM' | translate }}\n </div>\n </div>\n <div class=\"adf-task-details-core-sidebar\">\n <adf-info-drawer *ngIf=\"showHeaderContent\" title=\"ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TITLE\" id=\"adf-task-details-core-sidebar-drawer\" class=\"adf-task-details-core-sidebar-drawer\">\n <adf-info-drawer-tab label=\"ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TAB_DETAILS_TITLE\">\n <div class=\"adf-assignment-container\" *ngIf=\"showAssignee\">\n <adf-people-search\n [headerTitle]=\"'ADF_TASK_LIST.DETAILS.LABELS.ADD_ASSIGNEE'\"\n [actionLabel]=\"'ADF_TASK_LIST.PEOPLE.ADD_ASSIGNEE'\"\n (searchPeople)=\"searchUser($event)\"\n (success)=\"assignTaskToUser($event)\"\n (closeSearch)=\"onCloseSearch()\"\n [results]=\"peopleSearch\" />\n </div>\n <adf-task-header\n [class]=\"getTaskHeaderViewClass()\"\n [taskDetails]=\"taskDetails\"\n [formName]=\"taskFormName\"\n (claim)=\"onClaimAction($event)\"\n (unclaim)=\"onUnclaimAction($event)\" />\n <adf-people *ngIf=\"showInvolvePeople\"\n [people]=\"taskPeople\"\n [readOnly]=\"internalReadOnlyForm\"\n [taskId]=\"taskDetails.id\" />\n </adf-info-drawer-tab>\n\n <adf-info-drawer-tab label=\"ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TAB_ACTIVITY_TITLE\">\n <mat-card appearance=\"outlined\" *ngIf=\"showComments\">\n <mat-card-content>\n <adf-task-comments\n [readOnly]=\"isReadOnlyComment()\"\n [taskId]=\"taskDetails.id\"\n />\n </mat-card-content>\n </mat-card>\n </adf-info-drawer-tab>\n\n </adf-info-drawer>\n\n <div *ngIf=\"showHeaderContent\" class=\"adf-task-details-core-sidebar-checklist\">\n <div *ngIf=\"showChecklist\">\n <adf-checklist\n [readOnly]=\"internalReadOnlyForm\"\n [taskId]=\"taskDetails.id\"\n [assignee]=\"taskDetails.assignee?.id\"\n (checklistTaskCreated)=\"onChecklistTaskCreated($event)\"\n (checklistTaskDeleted)=\"onChecklistTaskDeleted($event)\" />\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #errorDialog>\n <h3 matDialogTitle>{{'ADF_TASK_LIST.DETAILS.ERROR.TITLE'|translate}}</h3>\n <mat-dialog-content>\n <p>{{'ADF_TASK_LIST.DETAILS.ERROR.DESCRIPTION'|translate}}</p>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"button\" (click)=\"closeErrorDialog()\">{{'ADF_TASK_LIST.DETAILS.ERROR.CLOSE'|translate}}\n </button>\n </mat-dialog-actions>\n </ng-template>\n\n</div>\n", styles: ["adf-task-details{width:100%}adf-task-details .adf-activiti-task-details__header{align-self:flex-end;display:flex;font-size:var(--theme-headline-font-size);font-weight:300;line-height:normal;overflow:hidden;margin:8px 0 16px;cursor:pointer;-webkit-user-select:none;user-select:none}adf-task-details .adf-activiti-task-details__action-button{text-transform:uppercase}adf-task-details .adf-assignment-container{padding:10px 20px;width:auto}adf-task-details adf-task-header.adf-assign-edit-view adf-card-view .adf-property[data-automation-id=header-assignee]{display:none}adf-task-details .adf-task-details-header{display:flex;justify-content:space-between}adf-task-details .adf-task-details-header-toggle{position:relative;top:10px;margin-right:2px;height:23px;cursor:pointer;-webkit-user-select:none;user-select:none}adf-task-details .adf-task-details-toggle{position:relative}adf-task-details .adf-task-details-core{display:flex;flex-direction:column;justify-content:space-between}@media (max-width: 1279.9px){adf-task-details .adf-task-details-core-sidebar-drawer{margin-left:0}}adf-task-details .adf-task-details-core-sidebar-checklist{margin-top:30px;padding-left:20px;padding-right:20px}adf-task-details .adf-task-details-core-form{flex-grow:1;margin-bottom:8px}adf-task-details .adf-task-details-core-form .adf-form-debug-container{display:flex;flex-direction:column;padding:20px 0}adf-task-details .adf-task-details-core-form .adf-form-debug-container .mat-mdc-slide-toggle{margin-left:auto}adf-task-details .adf-task-details-core-form .adf-form-debug-container .mat-mdc-slide-toggle+div{background-color:#000;padding:20px;clear:both;margin-top:30px;color:#fff}adf-task-details .adf-task-details-core-form .mdc-tab__text-label{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "component", type: TaskFormComponent, selector: "adf-task-form", inputs: ["taskId", "showFormTitle", "showFormCompleteButton", "showFormSaveButton", "showCancelButton", "readOnlyForm", "showFormRefreshButton", "showFormValidationIcon", "fieldValidators"], outputs: ["formSaved", "formCompleted", "formContentClicked", "formLoaded", "showAttachForm", "executeOutcome", "completed", "formError", "error", "cancel", "taskClaimed", "taskUnclaimed"] }, { kind: "component", type: AttachFormComponent, selector: "adf-attach-form", inputs: ["taskId", "formKey"], outputs: ["cancelAttachForm", "success", "error"] }, { kind: "component", type: PeopleSearchComponent, selector: "adf-people-search", inputs: ["headerTitle", "actionLabel", "results"], outputs: ["searchPeople", "success", "closeSearch"] }, { kind: "component", type: TaskHeaderComponent, selector: "adf-task-header", inputs: ["formName", "taskDetails", "showClaimRelease", "readOnly", "resetChanges"], outputs: ["claim", "unclaim"] }, { kind: "component", type: PeopleComponent, selector: "adf-people", inputs: ["people", "taskId", "readOnly"], outputs: ["error"] }, { kind: "component", type: TaskCommentsComponent, selector: "adf-task-comments", inputs: ["taskId", "readOnly"] }, { kind: "component", type: ChecklistComponent, selector: "adf-checklist", inputs: ["taskId", "readOnly", "assignee"], outputs: ["checklistTaskCreated", "checklistTaskDeleted", "error"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: InfoDrawerTabComponent, selector: "adf-info-drawer-tab", inputs: ["label", "icon"] }, { kind: "component", type: InfoDrawerComponent, selector: "adf-info-drawer", inputs: ["title", "icon", "selectedIndex", "showHeader"], outputs: ["currentTab"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }], encapsulation: i0.ViewEncapsulation.None }); }
281
281
  }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskDetailsComponent, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskDetailsComponent, decorators: [{
283
283
  type: Component,
284
284
  args: [{ selector: 'adf-task-details', standalone: true, imports: [
285
285
  CommonModule,
@@ -358,4 +358,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
358
358
  }], unClaimedTask: [{
359
359
  type: Output
360
360
  }] } });
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvdGFzay1kZXRhaWxzL3Rhc2stZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3Rhc2stZGV0YWlscy90YXNrLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILG9CQUFvQixFQUNwQixxQkFBcUIsRUFNckIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUV6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQVksRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBMkIsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FB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SUFBSSxFQUFFO2dCQUt6QixZQUFZO3NCQURYLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sc0JBQXNCO3NCQURyQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBS04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBUVAsY0FBYztzQkFEYixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIEFERl9DT01NRU5UU19TRVJWSUNFLFxuICAgIENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICBDbGlja05vdGlmaWNhdGlvbixcbiAgICBDb250ZW50TGlua01vZGVsLFxuICAgIEZvcm1GaWVsZFZhbGlkYXRvcixcbiAgICBGb3JtTW9kZWwsXG4gICAgRm9ybU91dGNvbWVFdmVudCxcbiAgICBJbmZvRHJhd2VyQ29tcG9uZW50LFxuICAgIEluZm9EcmF3ZXJUYWJDb21wb25lbnQsXG4gICAgVXBkYXRlTm90aWZpY2F0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi90YXNrLWZvcm0vdGFzay1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZW9wbGVQcm9jZXNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Blb3BsZS1wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlnaHRVc2VyUmVwcmVzZW50YXRpb24sIFRhc2tRdWVyeVJlcHJlc2VudGF0aW9uLCBUYXNrUmVwcmVzZW50YXRpb24gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEF0dGFjaEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9hdHRhY2gtZm9ybS9hdHRhY2gtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVvcGxlQ29tcG9uZW50LCBQZW9wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wZW9wbGUnO1xuaW1wb3J0IHsgVGFza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNrQ29tbWVudHNDb21wb25lbnQsIFRhc2tDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90YXNrLWNvbW1lbnRzJztcbmltcG9ydCB7IENoZWNrbGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKiBAZGVwcmVjYXRlZCBubyBsb25nZXIgdXNlZCBhbnl3aGVyZSwgYW5kIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdGFzay1kZXRhaWxzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFRhc2tGb3JtQ29tcG9uZW50LFxuICAgICAgICBBdHRhY2hGb3JtQ29tcG9uZW50LFxuICAgICAgICBQZW9wbGVTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIFRhc2tIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFBlb3BsZUNvbXBvbmVudCxcbiAgICAgICAgVGFza0NvbW1lbnRzQ29tcG9uZW50LFxuICAgICAgICBDaGVja2xpc3RDb21wb25lbnQsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBJbmZvRHJhd2VyVGFiQ29tcG9uZW50LFxuICAgICAgICBJbmZvRHJhd2VyQ29tcG9uZW50LFxuICAgICAgICBNYXRDYXJkTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQURGX0NPTU1FTlRTX1NFUlZJQ0UsXG4gICAgICAgICAgICB1c2VDbGFzczogVGFza0NvbW1lbnRzU2VydmljZVxuICAgICAgICB9XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2Vycm9yRGlhbG9nJylcbiAgICBlcnJvckRpYWxvZzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3Rhc2tGb3JtJylcbiAgICB0YXNrRm9ybUNvbXBvbmVudDogVGFza0Zvcm1Db21wb25lbnQ7XG5cbiAgICAvKiogKCoqcmVxdWlyZWQqKikgVGhlIGlkIG9mIHRoZSB0YXNrIHdob3NlIGRldGFpbHMgd2UgYXJlIGFza2luZyBmb3IuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBBdXRvbWF0aWNhbGx5IHJlbmRlcnMgdGhlIG5leHQgdGFzayB3aGVuIHRoZSBjdXJyZW50IG9uZSBpcyBjb21wbGV0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93TmV4dFRhc2s6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGFzayBkZXRhaWxzIEhlYWRlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGNvbGxhcHNlZC9leHBhbmRlZCBzdGF0ZSBvZiB0aGUgSGVhZGVyIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dIZWFkZXJDb250ZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGBJbnZvbHZlIFBlb3BsZWAgZmVhdHVyZSBmb3IgdGhlIEhlYWRlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93SW52b2x2ZVBlb3BsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBgQ29tbWVudHNgIGZlYXR1cmUgZm9yIHRoZSBIZWFkZXIgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NvbW1lbnRzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGBDaGVja2xpc3RgIGZlYXR1cmUgZm9yIHRoZSBIZWFkZXIgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NoZWNrbGlzdDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGZvcm0gdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybVRpdGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGBDb21wbGV0ZWAgb3V0Y29tZSBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybUNvbXBsZXRlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHJlbmRlcmluZyBvZiB0aGUgYFNhdmVgIG91dGNvbWUgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Zvcm1TYXZlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgcmVhZC1vbmx5IHN0YXRlIG9mIHRoZSBmb3JtLiBBbGwgZm9ybSB3aWRnZXRzIHJlbmRlciBhcyByZWFkLW9ubHlcbiAgICAgKiBpZiBlbmFibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHlGb3JtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGBSZWZyZXNoYCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybVJlZnJlc2hCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIEZpZWxkIHZhbGlkYXRvcnMgZm9yIHVzZSB3aXRoIHRoZSBmb3JtLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRWYWxpZGF0b3JzOiBGb3JtRmllbGRWYWxpZGF0b3JbXSA9IFtdO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgd2l0aCB0aGUgYFNhdmVgIG9yIGN1c3RvbSBvdXRjb21lcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGZpZWxkIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIGxvYWRlZCBvciByZWxvYWRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgY2hlY2tsaXN0IHRhc2sgaXMgY3JlYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFza1JlcHJlc2VudGF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGNoZWNrbGlzdCB0YXNrIGlzIGRlbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IG91dGNvbWUgaXMgZXhlY3V0ZWQuIERlZmF1bHQgYmVoYXZpb3VyIGNhbiBiZSBwcmV2ZW50ZWRcbiAgICAgKiB2aWEgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4ZWN1dGVPdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtT3V0Y29tZUV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgaXMgYXNzaWduZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgYXNzaWduVGFzayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSB0YXNrIGlzIGNsYWltZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xhaW1lZFRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSB0YXNrIGlzIHVuY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1bkNsYWltZWRUYXNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICB0YXNrRGV0YWlsczogVGFza1JlcHJlc2VudGF0aW9uO1xuICAgIHRhc2tGb3JtTmFtZTogc3RyaW5nID0gbnVsbDtcbiAgICB0YXNrUGVvcGxlOiBMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdID0gW107XG4gICAgbm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNob3dBc3NpZ25lZSA9IGZhbHNlO1xuICAgIHNob3dBdHRhY2hGb3JtID0gZmFsc2U7XG4gICAgaW50ZXJuYWxSZWFkT25seUZvcm0gPSBmYWxzZTtcbiAgICBlcnJvckRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIHBlb3BsZVNlYXJjaDogT2JzZXJ2YWJsZTxMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdPjtcbiAgICBkYXRhOiBhbnk7XG5cbiAgICBwcml2YXRlIHBlb3BsZVNlYXJjaE9ic2VydmVyOiBPYnNlcnZlcjxMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBlb3BsZVByb2Nlc3NTZXJ2aWNlOiBQZW9wbGVQcm9jZXNzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGVvcGxlU2VhcmNoID0gbmV3IE9ic2VydmFibGU8TGlnaHRVc2VyUmVwcmVzZW50YXRpb25bXT4oKG9ic2VydmVyKSA9PiAodGhpcy5wZW9wbGVTZWFyY2hPYnNlcnZlciA9IG9ic2VydmVyKSkucGlwZShzaGFyZSgpKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZERldGFpbHModGhpcy50YXNrSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UuaXRlbVVwZGF0ZWQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVRhc2tEZXRhaWxzLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLml0ZW1DbGlja2VkJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodGhpcy5jbGlja1Rhc2tEZXRhaWxzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFza0lkID0gY2hhbmdlcy50YXNrSWQ7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRhc2tJZCAmJiAhdGFza0lkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhc2tJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWREZXRhaWxzKHRhc2tJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNBc3NpZ25lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBidXR0b24gY2xpY2tlZFxuICAgICAqL1xuICAgIG9uQ29tcGxldGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Gb3JtQ29tcGxldGVkKG51bGwpO1xuICAgIH1cblxuICAgIG9uU2hvd0F0dGFjaEZvcm0oKSB7XG4gICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsQXR0YWNoRm9ybSgpIHtcbiAgICAgICAgdGhpcy5zaG93QXR0YWNoRm9ybSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVBdHRhY2hGb3JtKCkge1xuICAgICAgICB0aGlzLnRhc2tGb3JtTmFtZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSBmYWxzZTtcbiAgICAgICAgdGhpcy50YXNrRm9ybUNvbXBvbmVudC5sb2FkVGFzayh0aGlzLnRhc2tJZCk7XG4gICAgICAgIHRoaXMubG9hZERldGFpbHModGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uRm9ybUNvbnRlbnRDbGljayhjb250ZW50OiBDb250ZW50TGlua01vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRDbGlja2VkLmVtaXQoY29udGVudCk7XG4gICAgfVxuXG4gICAgb25Gb3JtU2F2ZWQoZm9ybTogRm9ybU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29tcGxldGVkKGZvcm06IEZvcm1Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db21wbGV0ZWQuZW1pdChmb3JtKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd05leHRUYXNrICYmICh0aGlzLnRhc2tEZXRhaWxzLnByb2Nlc3NJbnN0YW5jZUlkIHx8IHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0RlZmluaXRpb25JZCkpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE5leHRUYXNrKHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0luc3RhbmNlSWQsIHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0RlZmluaXRpb25JZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvcm1Mb2FkZWQoZm9ybTogRm9ybU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFza0Zvcm1OYW1lID0gZm9ybT8ubmFtZTtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25DaGVja2xpc3RUYXNrQ3JlYXRlZCh0YXNrOiBUYXNrUmVwcmVzZW50YXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrQ3JlYXRlZC5lbWl0KHRhc2spO1xuICAgIH1cblxuICAgIG9uQ2hlY2tsaXN0VGFza0RlbGV0ZWQodGFza0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrRGVsZXRlZC5lbWl0KHRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25Gb3JtRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yRGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmVycm9yRGlhbG9nLCB7IHdpZHRoOiAnNTAwcHgnIH0pO1xuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgIH1cblxuICAgIG9uRm9ybUV4ZWN1dGVPdXRjb21lKGV2ZW50OiBGb3JtT3V0Y29tZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZU91dGNvbWUuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgY2xvc2VFcnJvckRpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICB9XG5cbiAgICBvbkNsYWltQWN0aW9uKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xhaW1lZFRhc2suZW1pdCh0YXNrSWQpO1xuICAgICAgICB0aGlzLmxvYWREZXRhaWxzKHRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25VbmNsYWltQWN0aW9uKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5DbGFpbWVkVGFzay5lbWl0KHRhc2tJZCk7XG4gICAgICAgIHRoaXMubG9hZERldGFpbHModGFza0lkKTtcbiAgICB9XG5cbiAgICBzZWFyY2hVc2VyKHNlYXJjaGVkV29yZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGVvcGxlUHJvY2Vzc1NlcnZpY2UuZ2V0V29ya2Zsb3dVc2VycyhudWxsLCBzZWFyY2hlZFdvcmQpLnN1YnNjcmliZSgodXNlcnMpID0+IHtcbiAgICAgICAgICAgIHVzZXJzID0gdXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSB0aGlzLnRhc2tEZXRhaWxzLmFzc2lnbmVlLmlkKTtcbiAgICAgICAgICAgIHRoaXMucGVvcGxlU2VhcmNoT2JzZXJ2ZXIubmV4dCh1c2Vycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ2xvc2VTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgYXNzaWduVGFza1RvVXNlcihzZWxlY3RlZFVzZXI6IExpZ2h0VXNlclJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLmFzc2lnblRhc2sodGhpcy50YXNrRGV0YWlscy5pZCwgc2VsZWN0ZWRVc2VyKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25UYXNrLmVtaXQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0VGFza0hlYWRlclZpZXdDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zaG93QXNzaWduZWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnYXNzaWduLWVkaXQtdmlldyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQtdmlldyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1JlYWRPbmx5Q29tbWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0RldGFpbHM/LmlzQ29tcGxldGVkKCkgJiYgdGhpcy50YXNrUGVvcGxlPy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUYXNrRGV0YWlscyh1cGRhdGVOb3RpZmljYXRpb246IFVwZGF0ZU5vdGlmaWNhdGlvbikge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVRhc2sodGhpcy50YXNrSWQsIHVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLnVwZGF0ZUVsZW1lbnQodXBkYXRlTm90aWZpY2F0aW9uLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWREZXRhaWxzKHRoaXMudGFza0lkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGlja1Rhc2tEZXRhaWxzKGNsaWNrTm90aWZpY2F0aW9uOiBDbGlja05vdGlmaWNhdGlvbikge1xuICAgICAgICBpZiAoY2xpY2tOb3RpZmljYXRpb24udGFyZ2V0LmtleSA9PT0gJ2Fzc2lnbmVlJykge1xuICAgICAgICAgICAgdGhpcy5zaG93QXNzaWduZWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGlja05vdGlmaWNhdGlvbi50YXJnZXQua2V5ID09PSAnZm9ybU5hbWUnKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dBdHRhY2hGb3JtID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZERldGFpbHModGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50YXNrUGVvcGxlID0gW107XG5cbiAgICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2UuZ2V0VGFza0RldGFpbHModGFza0lkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gcmVzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHMubmFtZSA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMubmFtZSA9ICdObyBuYW1lJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBhbnkgPSByZXMuZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kRGF0ZSAmJiAhaXNOYU4oZW5kRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0aGlzLnJlYWRPbmx5Rm9ybTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscz8uaW52b2x2ZWRQZW9wbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrUGVvcGxlLnB1c2goLi4udGhpcy50YXNrRGV0YWlscy5pbnZvbHZlZFBlb3BsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWROZXh0VGFzayhwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nLCBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGUgPSBuZXcgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5nZXRUYXNrcyhyZXF1ZXN0Tm9kZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24ocmVzcG9uc2VbMF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXRhc2tEZXRhaWxzXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRhc2tzLWRldGFpbHMtLWVtcHR5XCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCIgbmdGb3IgW25nRm9yT2ZdPVwiW2RhdGFdXCJcbiAgICAgICAgICAgICAgICAgW25nRm9yVGVtcGxhdGVdPVwibm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCI+XG4gICAgICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgKm5nSWY9XCIhbm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCI+XG4gICAgICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInRhc2tEZXRhaWxzXCIgY2xhc3M9XCJhZGYtdGFzay1kZXRhaWxzXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlclwiIGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1oZWFkZXJcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYWRmLWFjdGl2aXRpLXRhc2stZGV0YWlsc19faGVhZGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj57e3Rhc2tEZXRhaWxzLm5hbWUgfHwgJ05vIG5hbWUnfX08L3NwYW4+XG4gICAgICAgIDwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1jb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdGFzay1kZXRhaWxzLWNvcmUtZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQXNzaWduZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxhZGYtdGFzay1mb3JtICN0YXNrRm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dGb3JtVGl0bGVdPVwic2hvd0Zvcm1UaXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Rm9ybVJlZnJlc2hCdXR0b25dPVwic2hvd0Zvcm1SZWZyZXNoQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZFZhbGlkYXRvcnNdPVwiZmllbGRWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1TYXZlZCk9J29uRm9ybVNhdmVkKCRldmVudCknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ29tcGxldGVkKT0nb25Gb3JtQ29tcGxldGVkKCRldmVudCknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ29udGVudENsaWNrZWQpPSdvbkZvcm1Db250ZW50Q2xpY2soJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1Mb2FkZWQpPSdvbkZvcm1Mb2FkZWQoJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBsZXRlZCk9XCJvbkNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd0F0dGFjaEZvcm0pPVwib25TaG93QXR0YWNoRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGVPdXRjb21lKT0nb25Gb3JtRXhlY3V0ZU91dGNvbWUoJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRhc2tDbGFpbWVkKT1cIm9uQ2xhaW1BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0YXNrVW5jbGFpbWVkKT1cIm9uVW5jbGFpbUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRm9ybUVycm9yKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDxhZGYtYXR0YWNoLWZvcm0gKm5nSWY9XCJzaG93QXR0YWNoRm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtS2V5XT1cInRhc2tEZXRhaWxzLmZvcm1LZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbEF0dGFjaEZvcm0pPVwib25DYW5jZWxBdHRhY2hGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1Y2Nlc3MpPVwib25Db21wbGV0ZUF0dGFjaEZvcm0oKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNBc3NpZ25lZCgpXCIgaWQ9XCJjbGFpbS1tZXNzYWdlLWlkXCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5NRVNTQUdFUy5DTEFJTScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyXCI+XG4gICAgICAgICAgICA8YWRmLWluZm8tZHJhd2VyICpuZ0lmPVwic2hvd0hlYWRlckNvbnRlbnRcIiB0aXRsZT1cIkFERl9UQVNLX0xJU1QuREVUQUlMUy5MQUJFTFMuSU5GT19EUkFXRVJfVElUTEVcIiBpZD1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyLWRyYXdlclwiIGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1jb3JlLXNpZGViYXItZHJhd2VyXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1pbmZvLWRyYXdlci10YWIgbGFiZWw9XCJBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLklORk9fRFJBV0VSX1RBQl9ERVRBSUxTX1RJVExFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtYXNzaWdubWVudC1jb250YWluZXJcIiAqbmdJZj1cInNob3dBc3NpZ25lZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1wZW9wbGUtc2VhcmNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cIidBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLkFERF9BU1NJR05FRSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25MYWJlbF09XCInQURGX1RBU0tfTElTVC5QRU9QTEUuQUREX0FTU0lHTkVFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlYXJjaFBlb3BsZSk9XCJzZWFyY2hVc2VyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWNjZXNzKT1cImFzc2lnblRhc2tUb1VzZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlU2VhcmNoKT1cIm9uQ2xvc2VTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdHNdPVwicGVvcGxlU2VhcmNoXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdGFzay1oZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRUYXNrSGVhZGVyVmlld0NsYXNzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rhc2tEZXRhaWxzXT1cInRhc2tEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtTmFtZV09XCJ0YXNrRm9ybU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsYWltKT1cIm9uQ2xhaW1BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodW5jbGFpbSk9XCJvblVuY2xhaW1BY3Rpb24oJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtcGVvcGxlICpuZ0lmPVwic2hvd0ludm9sdmVQZW9wbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGVvcGxlXT1cInRhc2tQZW9wbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwiaW50ZXJuYWxSZWFkT25seUZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCIgLz5cbiAgICAgICAgICAgICAgICA8L2FkZi1pbmZvLWRyYXdlci10YWI+XG5cbiAgICAgICAgICAgICAgICA8YWRmLWluZm8tZHJhd2VyLXRhYiBsYWJlbD1cIkFERl9UQVNLX0xJU1QuREVUQUlMUy5MQUJFTFMuSU5GT19EUkFXRVJfVEFCX0FDVElWSVRZX1RJVExFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiAqbmdJZj1cInNob3dDb21tZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi10YXNrLWNvbW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5Q29tbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrRGV0YWlscy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICAgICAgICA8L2FkZi1pbmZvLWRyYXdlci10YWI+XG5cbiAgICAgICAgICAgIDwvYWRmLWluZm8tZHJhd2VyPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlckNvbnRlbnRcIiBjbGFzcz1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyLWNoZWNrbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q2hlY2tsaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtY2hlY2tsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJpbnRlcm5hbFJlYWRPbmx5Rm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFt0YXNrSWRdPVwidGFza0RldGFpbHMuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXNzaWduZWVdPVwidGFza0RldGFpbHMuYXNzaWduZWU/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrbGlzdFRhc2tDcmVhdGVkKT1cIm9uQ2hlY2tsaXN0VGFza0NyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjaGVja2xpc3RUYXNrRGVsZXRlZCk9XCJvbkNoZWNrbGlzdFRhc2tEZWxldGVkKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNlcnJvckRpYWxvZz5cbiAgICAgICAgPGgzIG1hdERpYWxvZ1RpdGxlPnt7J0FERl9UQVNLX0xJU1QuREVUQUlMUy5FUlJPUi5USVRMRSd8dHJhbnNsYXRlfX08L2gzPlxuICAgICAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICAgICAgPHA+e3snQURGX1RBU0tfTElTVC5ERVRBSUxTLkVSUk9SLkRFU0NSSVBUSU9OJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZUVycm9yRGlhbG9nKClcIj57eydBREZfVEFTS19MSVNULkRFVEFJTFMuRVJST1IuQ0xPU0UnfHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuPC9kaXY+XG4iXX0=
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvdGFzay1kZXRhaWxzL3Rhc2stZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3Rhc2stZGV0YWlscy90YXNrLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILG9CQUFvQixFQUNwQixxQkFBcUIsRUFNckIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUV6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQVksRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBMkIsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FB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SUFBSSxFQUFFO2dCQUt6QixZQUFZO3NCQURYLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sc0JBQXNCO3NCQURyQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBS04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBUVAsY0FBYztzQkFEYixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIEFERl9DT01NRU5UU19TRVJWSUNFLFxuICAgIENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICBDbGlja05vdGlmaWNhdGlvbixcbiAgICBDb250ZW50TGlua01vZGVsLFxuICAgIEZvcm1GaWVsZFZhbGlkYXRvcixcbiAgICBGb3JtTW9kZWwsXG4gICAgRm9ybU91dGNvbWVFdmVudCxcbiAgICBJbmZvRHJhd2VyQ29tcG9uZW50LFxuICAgIEluZm9EcmF3ZXJUYWJDb21wb25lbnQsXG4gICAgVXBkYXRlTm90aWZpY2F0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi90YXNrLWZvcm0vdGFzay1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZW9wbGVQcm9jZXNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Blb3BsZS1wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlnaHRVc2VyUmVwcmVzZW50YXRpb24sIFRhc2tRdWVyeVJlcHJlc2VudGF0aW9uLCBUYXNrUmVwcmVzZW50YXRpb24gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEF0dGFjaEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9hdHRhY2gtZm9ybS9hdHRhY2gtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVvcGxlQ29tcG9uZW50LCBQZW9wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wZW9wbGUnO1xuaW1wb3J0IHsgVGFza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNrQ29tbWVudHNDb21wb25lbnQsIFRhc2tDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90YXNrLWNvbW1lbnRzJztcbmltcG9ydCB7IENoZWNrbGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKiBAZGVwcmVjYXRlZCBubyBsb25nZXIgdXNlZCBhbnl3aGVyZSwgYW5kIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdGFzay1kZXRhaWxzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFRhc2tGb3JtQ29tcG9uZW50LFxuICAgICAgICBBdHRhY2hGb3JtQ29tcG9uZW50LFxuICAgICAgICBQZW9wbGVTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIFRhc2tIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFBlb3BsZUNvbXBvbmVudCxcbiAgICAgICAgVGFza0NvbW1lbnRzQ29tcG9uZW50LFxuICAgICAgICBDaGVja2xpc3RDb21wb25lbnQsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBJbmZvRHJhd2VyVGFiQ29tcG9uZW50LFxuICAgICAgICBJbmZvRHJhd2VyQ29tcG9uZW50LFxuICAgICAgICBNYXRDYXJkTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQURGX0NPTU1FTlRTX1NFUlZJQ0UsXG4gICAgICAgICAgICB1c2VDbGFzczogVGFza0NvbW1lbnRzU2VydmljZVxuICAgICAgICB9XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2Vycm9yRGlhbG9nJylcbiAgICBlcnJvckRpYWxvZzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3Rhc2tGb3JtJylcbiAgICB0YXNrRm9ybUNvbXBvbmVudDogVGFza0Zvcm1Db21wb25lbnQ7XG5cbiAgICAvKiogKCoqcmVxdWlyZWQqKikgVGhlIGlkIG9mIHRoZSB0YXNrIHdob3NlIGRldGFpbHMgd2UgYXJlIGFza2luZyBmb3IuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBBdXRvbWF0aWNhbGx5IHJlbmRlcnMgdGhlIG5leHQgdGFzayB3aGVuIHRoZSBjdXJyZW50IG9uZSBpcyBjb21wbGV0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93TmV4dFRhc2s6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGFzayBkZXRhaWxzIEhlYWRlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGNvbGxhcHNlZC9leHBhbmRlZCBzdGF0ZSBvZiB0aGUgSGVhZGVyIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dIZWFkZXJDb250ZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGBJbnZvbHZlIFBlb3BsZWAgZmVhdHVyZSBmb3IgdGhlIEhlYWRlciBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93SW52b2x2ZVBlb3BsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBgQ29tbWVudHNgIGZlYXR1cmUgZm9yIHRoZSBIZWFkZXIgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NvbW1lbnRzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGBDaGVja2xpc3RgIGZlYXR1cmUgZm9yIHRoZSBIZWFkZXIgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NoZWNrbGlzdDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGZvcm0gdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybVRpdGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGBDb21wbGV0ZWAgb3V0Y29tZSBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybUNvbXBsZXRlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHJlbmRlcmluZyBvZiB0aGUgYFNhdmVgIG91dGNvbWUgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Zvcm1TYXZlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgcmVhZC1vbmx5IHN0YXRlIG9mIHRoZSBmb3JtLiBBbGwgZm9ybSB3aWRnZXRzIHJlbmRlciBhcyByZWFkLW9ubHlcbiAgICAgKiBpZiBlbmFibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHlGb3JtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGBSZWZyZXNoYCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybVJlZnJlc2hCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIEZpZWxkIHZhbGlkYXRvcnMgZm9yIHVzZSB3aXRoIHRoZSBmb3JtLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRWYWxpZGF0b3JzOiBGb3JtRmllbGRWYWxpZGF0b3JbXSA9IFtdO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgd2l0aCB0aGUgYFNhdmVgIG9yIGN1c3RvbSBvdXRjb21lcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGZpZWxkIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIGxvYWRlZCBvciByZWxvYWRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgY2hlY2tsaXN0IHRhc2sgaXMgY3JlYXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFza1JlcHJlc2VudGF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGNoZWNrbGlzdCB0YXNrIGlzIGRlbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IG91dGNvbWUgaXMgZXhlY3V0ZWQuIERlZmF1bHQgYmVoYXZpb3VyIGNhbiBiZSBwcmV2ZW50ZWRcbiAgICAgKiB2aWEgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4ZWN1dGVPdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtT3V0Y29tZUV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgaXMgYXNzaWduZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgYXNzaWduVGFzayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSB0YXNrIGlzIGNsYWltZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xhaW1lZFRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSB0YXNrIGlzIHVuY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1bkNsYWltZWRUYXNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICB0YXNrRGV0YWlsczogVGFza1JlcHJlc2VudGF0aW9uO1xuICAgIHRhc2tGb3JtTmFtZTogc3RyaW5nID0gbnVsbDtcbiAgICB0YXNrUGVvcGxlOiBMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdID0gW107XG4gICAgbm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNob3dBc3NpZ25lZSA9IGZhbHNlO1xuICAgIHNob3dBdHRhY2hGb3JtID0gZmFsc2U7XG4gICAgaW50ZXJuYWxSZWFkT25seUZvcm0gPSBmYWxzZTtcbiAgICBlcnJvckRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xuICAgIHBlb3BsZVNlYXJjaDogT2JzZXJ2YWJsZTxMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdPjtcbiAgICBkYXRhOiBhbnk7XG5cbiAgICBwcml2YXRlIHBlb3BsZVNlYXJjaE9ic2VydmVyOiBPYnNlcnZlcjxMaWdodFVzZXJSZXByZXNlbnRhdGlvbltdPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBlb3BsZVByb2Nlc3NTZXJ2aWNlOiBQZW9wbGVQcm9jZXNzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGVvcGxlU2VhcmNoID0gbmV3IE9ic2VydmFibGU8TGlnaHRVc2VyUmVwcmVzZW50YXRpb25bXT4oKG9ic2VydmVyKSA9PiAodGhpcy5wZW9wbGVTZWFyY2hPYnNlcnZlciA9IG9ic2VydmVyKSkucGlwZShzaGFyZSgpKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZERldGFpbHModGhpcy50YXNrSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UuaXRlbVVwZGF0ZWQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVRhc2tEZXRhaWxzLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLml0ZW1DbGlja2VkJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodGhpcy5jbGlja1Rhc2tEZXRhaWxzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFza0lkID0gY2hhbmdlcy50YXNrSWQ7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRhc2tJZCAmJiAhdGFza0lkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhc2tJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWREZXRhaWxzKHRhc2tJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNBc3NpZ25lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZSBidXR0b24gY2xpY2tlZFxuICAgICAqL1xuICAgIG9uQ29tcGxldGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Gb3JtQ29tcGxldGVkKG51bGwpO1xuICAgIH1cblxuICAgIG9uU2hvd0F0dGFjaEZvcm0oKSB7XG4gICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsQXR0YWNoRm9ybSgpIHtcbiAgICAgICAgdGhpcy5zaG93QXR0YWNoRm9ybSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVBdHRhY2hGb3JtKCkge1xuICAgICAgICB0aGlzLnRhc2tGb3JtTmFtZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSBmYWxzZTtcbiAgICAgICAgdGhpcy50YXNrRm9ybUNvbXBvbmVudC5sb2FkVGFzayh0aGlzLnRhc2tJZCk7XG4gICAgICAgIHRoaXMubG9hZERldGFpbHModGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uRm9ybUNvbnRlbnRDbGljayhjb250ZW50OiBDb250ZW50TGlua01vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRDbGlja2VkLmVtaXQoY29udGVudCk7XG4gICAgfVxuXG4gICAgb25Gb3JtU2F2ZWQoZm9ybTogRm9ybU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29tcGxldGVkKGZvcm06IEZvcm1Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db21wbGV0ZWQuZW1pdChmb3JtKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd05leHRUYXNrICYmICh0aGlzLnRhc2tEZXRhaWxzLnByb2Nlc3NJbnN0YW5jZUlkIHx8IHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0RlZmluaXRpb25JZCkpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE5leHRUYXNrKHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0luc3RhbmNlSWQsIHRoaXMudGFza0RldGFpbHMucHJvY2Vzc0RlZmluaXRpb25JZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvcm1Mb2FkZWQoZm9ybTogRm9ybU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFza0Zvcm1OYW1lID0gZm9ybT8ubmFtZTtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25DaGVja2xpc3RUYXNrQ3JlYXRlZCh0YXNrOiBUYXNrUmVwcmVzZW50YXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrQ3JlYXRlZC5lbWl0KHRhc2spO1xuICAgIH1cblxuICAgIG9uQ2hlY2tsaXN0VGFza0RlbGV0ZWQodGFza0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrRGVsZXRlZC5lbWl0KHRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25Gb3JtRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yRGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmVycm9yRGlhbG9nLCB7IHdpZHRoOiAnNTAwcHgnIH0pO1xuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgIH1cblxuICAgIG9uRm9ybUV4ZWN1dGVPdXRjb21lKGV2ZW50OiBGb3JtT3V0Y29tZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZU91dGNvbWUuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgY2xvc2VFcnJvckRpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICB9XG5cbiAgICBvbkNsYWltQWN0aW9uKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xhaW1lZFRhc2suZW1pdCh0YXNrSWQpO1xuICAgICAgICB0aGlzLmxvYWREZXRhaWxzKHRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25VbmNsYWltQWN0aW9uKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5DbGFpbWVkVGFzay5lbWl0KHRhc2tJZCk7XG4gICAgICAgIHRoaXMubG9hZERldGFpbHModGFza0lkKTtcbiAgICB9XG5cbiAgICBzZWFyY2hVc2VyKHNlYXJjaGVkV29yZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGVvcGxlUHJvY2Vzc1NlcnZpY2UuZ2V0V29ya2Zsb3dVc2VycyhudWxsLCBzZWFyY2hlZFdvcmQpLnN1YnNjcmliZSgodXNlcnMpID0+IHtcbiAgICAgICAgICAgIHVzZXJzID0gdXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSB0aGlzLnRhc2tEZXRhaWxzLmFzc2lnbmVlLmlkKTtcbiAgICAgICAgICAgIHRoaXMucGVvcGxlU2VhcmNoT2JzZXJ2ZXIubmV4dCh1c2Vycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ2xvc2VTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgYXNzaWduVGFza1RvVXNlcihzZWxlY3RlZFVzZXI6IExpZ2h0VXNlclJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLmFzc2lnblRhc2sodGhpcy50YXNrRGV0YWlscy5pZCwgc2VsZWN0ZWRVc2VyKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25UYXNrLmVtaXQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2hvd0Fzc2lnbmVlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0VGFza0hlYWRlclZpZXdDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zaG93QXNzaWduZWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnYXNzaWduLWVkaXQtdmlldyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQtdmlldyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1JlYWRPbmx5Q29tbWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0RldGFpbHM/LmlzQ29tcGxldGVkKCkgJiYgdGhpcy50YXNrUGVvcGxlPy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUYXNrRGV0YWlscyh1cGRhdGVOb3RpZmljYXRpb246IFVwZGF0ZU5vdGlmaWNhdGlvbikge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVRhc2sodGhpcy50YXNrSWQsIHVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLnVwZGF0ZUVsZW1lbnQodXBkYXRlTm90aWZpY2F0aW9uLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWREZXRhaWxzKHRoaXMudGFza0lkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGlja1Rhc2tEZXRhaWxzKGNsaWNrTm90aWZpY2F0aW9uOiBDbGlja05vdGlmaWNhdGlvbikge1xuICAgICAgICBpZiAoY2xpY2tOb3RpZmljYXRpb24udGFyZ2V0LmtleSA9PT0gJ2Fzc2lnbmVlJykge1xuICAgICAgICAgICAgdGhpcy5zaG93QXNzaWduZWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGlja05vdGlmaWNhdGlvbi50YXJnZXQua2V5ID09PSAnZm9ybU5hbWUnKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dBdHRhY2hGb3JtID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZERldGFpbHModGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50YXNrUGVvcGxlID0gW107XG5cbiAgICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2UuZ2V0VGFza0RldGFpbHModGFza0lkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0F0dGFjaEZvcm0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gcmVzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHMubmFtZSA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMubmFtZSA9ICdObyBuYW1lJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBhbnkgPSByZXMuZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kRGF0ZSAmJiAhaXNOYU4oZW5kRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0aGlzLnJlYWRPbmx5Rm9ybTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscz8uaW52b2x2ZWRQZW9wbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrUGVvcGxlLnB1c2goLi4udGhpcy50YXNrRGV0YWlscy5pbnZvbHZlZFBlb3BsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWROZXh0VGFzayhwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nLCBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGUgPSBuZXcgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5nZXRUYXNrcyhyZXF1ZXN0Tm9kZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IG5ldyBUYXNrUmVwcmVzZW50YXRpb24ocmVzcG9uc2VbMF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXRhc2tEZXRhaWxzXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRhc2tzLWRldGFpbHMtLWVtcHR5XCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCIgbmdGb3IgW25nRm9yT2ZdPVwiW2RhdGFdXCJcbiAgICAgICAgICAgICAgICAgW25nRm9yVGVtcGxhdGVdPVwibm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCI+XG4gICAgICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgKm5nSWY9XCIhbm9UYXNrRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50XCI+XG4gICAgICAgIHt7ICdBREZfVEFTS19MSVNULkRFVEFJTFMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInRhc2tEZXRhaWxzXCIgY2xhc3M9XCJhZGYtdGFzay1kZXRhaWxzXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlclwiIGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1oZWFkZXJcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYWRmLWFjdGl2aXRpLXRhc2stZGV0YWlsc19faGVhZGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj57e3Rhc2tEZXRhaWxzLm5hbWUgfHwgJ05vIG5hbWUnfX08L3NwYW4+XG4gICAgICAgIDwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1jb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdGFzay1kZXRhaWxzLWNvcmUtZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQXNzaWduZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxhZGYtdGFzay1mb3JtICN0YXNrRm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dGb3JtVGl0bGVdPVwic2hvd0Zvcm1UaXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Rm9ybVJlZnJlc2hCdXR0b25dPVwic2hvd0Zvcm1SZWZyZXNoQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZFZhbGlkYXRvcnNdPVwiZmllbGRWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1TYXZlZCk9J29uRm9ybVNhdmVkKCRldmVudCknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ29tcGxldGVkKT0nb25Gb3JtQ29tcGxldGVkKCRldmVudCknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ29udGVudENsaWNrZWQpPSdvbkZvcm1Db250ZW50Q2xpY2soJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1Mb2FkZWQpPSdvbkZvcm1Mb2FkZWQoJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBsZXRlZCk9XCJvbkNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd0F0dGFjaEZvcm0pPVwib25TaG93QXR0YWNoRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGVPdXRjb21lKT0nb25Gb3JtRXhlY3V0ZU91dGNvbWUoJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRhc2tDbGFpbWVkKT1cIm9uQ2xhaW1BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0YXNrVW5jbGFpbWVkKT1cIm9uVW5jbGFpbUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRm9ybUVycm9yKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDxhZGYtYXR0YWNoLWZvcm0gKm5nSWY9XCJzaG93QXR0YWNoRm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtS2V5XT1cInRhc2tEZXRhaWxzLmZvcm1LZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbEF0dGFjaEZvcm0pPVwib25DYW5jZWxBdHRhY2hGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1Y2Nlc3MpPVwib25Db21wbGV0ZUF0dGFjaEZvcm0oKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNBc3NpZ25lZCgpXCIgaWQ9XCJjbGFpbS1tZXNzYWdlLWlkXCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9UQVNLX0xJU1QuREVUQUlMUy5NRVNTQUdFUy5DTEFJTScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyXCI+XG4gICAgICAgICAgICA8YWRmLWluZm8tZHJhd2VyICpuZ0lmPVwic2hvd0hlYWRlckNvbnRlbnRcIiB0aXRsZT1cIkFERl9UQVNLX0xJU1QuREVUQUlMUy5MQUJFTFMuSU5GT19EUkFXRVJfVElUTEVcIiBpZD1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyLWRyYXdlclwiIGNsYXNzPVwiYWRmLXRhc2stZGV0YWlscy1jb3JlLXNpZGViYXItZHJhd2VyXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1pbmZvLWRyYXdlci10YWIgbGFiZWw9XCJBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLklORk9fRFJBV0VSX1RBQl9ERVRBSUxTX1RJVExFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtYXNzaWdubWVudC1jb250YWluZXJcIiAqbmdJZj1cInNob3dBc3NpZ25lZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1wZW9wbGUtc2VhcmNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cIidBREZfVEFTS19MSVNULkRFVEFJTFMuTEFCRUxTLkFERF9BU1NJR05FRSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25MYWJlbF09XCInQURGX1RBU0tfTElTVC5QRU9QTEUuQUREX0FTU0lHTkVFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlYXJjaFBlb3BsZSk9XCJzZWFyY2hVc2VyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWNjZXNzKT1cImFzc2lnblRhc2tUb1VzZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlU2VhcmNoKT1cIm9uQ2xvc2VTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdHNdPVwicGVvcGxlU2VhcmNoXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdGFzay1oZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRUYXNrSGVhZGVyVmlld0NsYXNzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rhc2tEZXRhaWxzXT1cInRhc2tEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtTmFtZV09XCJ0YXNrRm9ybU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsYWltKT1cIm9uQ2xhaW1BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodW5jbGFpbSk9XCJvblVuY2xhaW1BY3Rpb24oJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtcGVvcGxlICpuZ0lmPVwic2hvd0ludm9sdmVQZW9wbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGVvcGxlXT1cInRhc2tQZW9wbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwiaW50ZXJuYWxSZWFkT25seUZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tEZXRhaWxzLmlkXCIgLz5cbiAgICAgICAgICAgICAgICA8L2FkZi1pbmZvLWRyYXdlci10YWI+XG5cbiAgICAgICAgICAgICAgICA8YWRmLWluZm8tZHJhd2VyLXRhYiBsYWJlbD1cIkFERl9UQVNLX0xJU1QuREVUQUlMUy5MQUJFTFMuSU5GT19EUkFXRVJfVEFCX0FDVElWSVRZX1RJVExFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiAqbmdJZj1cInNob3dDb21tZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi10YXNrLWNvbW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5Q29tbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrRGV0YWlscy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICAgICAgICA8L2FkZi1pbmZvLWRyYXdlci10YWI+XG5cbiAgICAgICAgICAgIDwvYWRmLWluZm8tZHJhd2VyPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlckNvbnRlbnRcIiBjbGFzcz1cImFkZi10YXNrLWRldGFpbHMtY29yZS1zaWRlYmFyLWNoZWNrbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q2hlY2tsaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtY2hlY2tsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJpbnRlcm5hbFJlYWRPbmx5Rm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFt0YXNrSWRdPVwidGFza0RldGFpbHMuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXNzaWduZWVdPVwidGFza0RldGFpbHMuYXNzaWduZWU/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrbGlzdFRhc2tDcmVhdGVkKT1cIm9uQ2hlY2tsaXN0VGFza0NyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjaGVja2xpc3RUYXNrRGVsZXRlZCk9XCJvbkNoZWNrbGlzdFRhc2tEZWxldGVkKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNlcnJvckRpYWxvZz5cbiAgICAgICAgPGgzIG1hdERpYWxvZ1RpdGxlPnt7J0FERl9UQVNLX0xJU1QuREVUQUlMUy5FUlJPUi5USVRMRSd8dHJhbnNsYXRlfX08L2gzPlxuICAgICAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICAgICAgPHA+e3snQURGX1RBU0tfTElTVC5ERVRBSUxTLkVSUk9SLkRFU0NSSVBUSU9OJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZUVycm9yRGlhbG9nKClcIj57eydBREZfVEFTS19MSVNULkRFVEFJTFMuRVJST1IuQ0xPU0UnfHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuPC9kaXY+XG4iXX0=