@ieeesa-npm/groups 0.4.4 → 0.4.6

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.
@@ -196,6 +196,7 @@ export class ViewRosterComponent {
196
196
  next: (response) => {
197
197
  this.tableData =
198
198
  this.groupService.transformUserRolesNameAsString(response);
199
+ this.cdr.detectChanges();
199
200
  },
200
201
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
202
  error: (error) => {
@@ -239,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
239
240
  type: Component,
240
241
  args: [{ selector: 'ieeesa-view-roster', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ieeesa-data-table *ngIf=\"tableData && tableData.length > 0\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [defaultSortedColumn]=\"defaultSortedColumn\"\r\n [defaultColumnSortDirection]=\"defaultColumnSortDirection\"\r\n [searchPlaceHolderText]=\"viewRosterConstants?.searchPlaceholder\"\r\n [tableActions]=\"rosterActions\"\r\n [filters]=\"filters\"\r\n [selectedFilterOptions]=\"roles\"\r\n (removeFilteredOption)=\"onFilterUsersByRoles($event)\"\r\n (filteredOptions)=\"onFilterUsersByRoles($event)\"\r\n (searchedValue)=\"onSearchGroupUsers($event)\"\r\n></ieeesa-data-table>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:rgba(103,80,164,.12)}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:rgba(103,80,164,.08)}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#ffffff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-view-roster{max-width:80vw!important}.ieeesa-modal-dialog.ieeesa-view-roster .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:3em}.ieeesa-modal-dialog.ieeesa-view-roster .ieeesa-modal .mat-mdc-dialog-content{padding:0}.ieeesa-modal-dialog.ieeesa-view-roster .ieeesa-modal-title{padding-bottom:1.25em}.ieeesa-data-table__content{height:500px}.ieeesa-data-table__filter{padding-bottom:1em}.ieeesa-data-table .cdk-column-select{width:7%}.ieeesa-data-table .cdk-column-name{width:18%}.ieeesa-data-table .cdk-column-email{width:27%}\n"] }]
241
242
  }], ctorParameters: function () { return [{ type: i1.GroupsService }, { type: i2.AlertsService }, { type: i0.ChangeDetectorRef }, { type: i2.GlobalErrorHandlerService }]; } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1yb3N0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXJvc3Rlci92aWV3LXJvc3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUVMLGVBQWUsRUFHZixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBRXhCLFNBQVMsR0FDVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEdBR1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUV6RDs7Ozs7R0FLRztBQVVILE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCO0lBQ0UsMENBQTBDO0lBQ2xDLFlBQTJCO0lBQ25DLDBDQUEwQztJQUNsQyxZQUEyQjtJQUNuQywwQ0FBMEM7SUFDbEMsR0FBc0I7SUFDOUIsMENBQTBDO0lBQ2xDLHlCQUFvRDtRQU5wRCxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUUzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUUzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUV0Qiw4QkFBeUIsR0FBekIseUJB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Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO1lBQ3RELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0E5TlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEVDakRoQyxzbkJBYUEsbTdPRDhCWSxZQUFZLG1JQUFFLGtCQUFrQjs7MkZBTS9CLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGlCQUc1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgQ2hpcE9wdGlvbixcclxuICBDaGlwc1R5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBHbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFVzZXJzUGF5bG9hZCxcclxuICBGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkLFxyXG4gIFVzZXIsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuXHJcbi8qKlxyXG4gKiBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBhZGQsIGVkaXQsIGRlbGV0ZSB1c2VyIHRvIGdyb3VwIHJvc3RlciwgYXNzaWduIGFuZCBtb2RpZnkgcm9sZXMocykgdG8gdGhlIGdyb3VwIHVzZXJzLCBhbmQgc2VhcmNoIHVzZXIgZnJvbSByb3N0ZXIuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXZpZXctcm9zdGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXJvc3Rlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICB2aWV3Um9zdGVyQ29uc3RhbnRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdSb3N0ZXI7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbmFtZTogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy5maWx0ZXJCeVJvbGUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICBjb2x1bW5TY2hlbWE6IFRhYmxlQ29sdW1uU2NoZW1hW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5zZWxlY3R9YCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBjb2x1bW5EZWY6ICduYW1lJyxcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy50YWJsZUNvbHVtbnM/Lm5hbWUsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5uYW1lfWAsXHJcbiAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMyxcclxuICAgICAgY29sdW1uRGVmOiAnZW1haWwnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8uZW1haWwsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5lbWFpbH1gLFxyXG4gICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDQsXHJcbiAgICAgIGNvbHVtbkRlZjogJ3JvbGUnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8ucm9sZSxcclxuICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnJvbGV9YCxcclxuICAgIH0sXHJcbiAgXTtcclxuICB0YWJsZURhdGEhOiBVc2VyW107XHJcbiAgc2VsZWN0ZWRSb2xlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUm9sZXMhOiBDaGlwT3B0aW9uW10gfCBDaGVja2JveE9wdGlvbltdO1xyXG4gIHJvbGVzOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgcm9zdGVyQWN0aW9uczogVGFibGVBY3Rpb25zID0ge1xyXG4gICAgaXNTZWFyY2hOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogdHJ1ZSxcclxuICAgIGlzQWRkTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0VkaXROZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBkZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMV0uY29sdW1uRGVmO1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID1cclxuICAgIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZ2V0Um9sZXMoKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgYnkgY2FsbGluZyBnZXRHcm91cFVzZXJzKCkgZnJvbSBncm91cFNlcnZpY2UgYW5kIHNldHMgdGFibGVEYXRhIHRvIGRpc3BsYXkgdGhlIHVzZXJzIGluIGEgZ3JpZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3VwVXNlcnNBbmRJbml0aWFsaXplVGFibGVWaWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVXNlcnMoXHJcbiAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UuZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBJZCBhcyBzdHJpbmdcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNlbGVjdGVkIGdyb3VwIHR5cGUgcm9sZXMgYnkgY2FsbGluZyBnZXRHcm91cFR5cGVSb2xlcygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIGFzc2lnbiByb2xlcy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvbGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVHlwZVJvbGVzKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwVHlwZSBhcyBzdHJpbmdcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb2xlcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgc2VhcmNoR3JvdXBVc2VycygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIHRhYmxlRGF0YSB0byBkaXNwbGF5IHRoZSB1c2VycyBpbiBhIGdyaWQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm0gLXNlYXJjaFRlcm0gY2FuIGJlIHVzZXIgbmFtZSBvciBlbWFpbCBhbmQgdXNlciBpcyBzZWFyY2hlZCBiYXNlZCBvbiB0aGUgZW1haWwgb3IgbmFtZS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoR3JvdXBVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghc2VhcmNoVGVybSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm9uRmlsdGVyVXNlcnNCeVJvbGVzKHRoaXMuc2VsZWN0ZWRSb2xlcyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXNlYXJjaFRlcm0udHJpbSgpKSByZXR1cm47XHJcbiAgICBjb25zdCBwYXlsb2FkOiBTZWFyY2hVc2Vyc1BheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgICBzZWFyY2hCeU5hbWVPckVtYWlsOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkUm9sZUlkcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuc2VhcmNoR3JvdXBVc2VycyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgZ2V0R3JvdXBVc2Vyc0J5Um9sZXMoKSBmcm9tIGdyb3VwU2VydmljZSBhbmQgc2V0cyB0YWJsZURhdGEgdG8gZGlzcGxheSB0aGUgdXNlcnMgaW4gYSBncmlkLlxyXG4gICAqIEBwYXJhbSB7Q2hpcE9wdGlvbltdIHwgfCBDaGVja2JveE9wdGlvbltdfSByb2xlc1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25GaWx0ZXJVc2Vyc0J5Um9sZXMocm9sZXM6IENoaXBPcHRpb25bXSB8IENoZWNrYm94T3B0aW9uW10pOiB2b2lkIHtcclxuICAgIGlmIChyb2xlcz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGVJZHMgPSBbXTtcclxuICAgIHJvbGVzPy5mb3JFYWNoKChyb2xlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb2xlSWRzLnB1c2gocm9sZS5pZCBhcyBzdHJpbmcpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSByb2xlcztcclxuICAgIGNvbnN0IHBheWxvYWQ6IEZpbHRlclVzZXJzQnlSb2xlc1BheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgICByb2xlczogdGhpcy5zZWxlY3RlZFJvbGVJZHMsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVXNlcnNCeVJvbGVzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLnRyYW5zZm9ybVVzZXJSb2xlc05hbWVBc1N0cmluZyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgY3VzdG9tIGVycm9ycyB3aGlsZSByZXRyaWV2aW5nIGdyb3VwcyB1c2Vycywgcm9sZXMsIHNlYXJjaCB1c2VycywgZmlsdGVyIHVzZXIgYnkgcm9sZXMuXHJcbiAgICogQHBhcmFtIHsqfSBlcnJvclxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFcnJvcnMoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXJyb3JDb2RlcyA9IGVycm9yPy5lcnJvcj8uYm9keT8uZXJyb3JDb2RlcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yQ29kZXMpICYmICFlcnJvcj8uZXJyb3I/LnN0YXR1cykge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLmdyb3VwU2VydmljZS5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1kYXRhLXRhYmxlICpuZ0lmPVwidGFibGVEYXRhICYmIHRhYmxlRGF0YS5sZW5ndGggPiAwXCJcclxuICBbdGFibGVEYXRhSW5mb109XCJ0YWJsZURhdGFcIlxyXG4gIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgW2RlZmF1bHRTb3J0ZWRDb2x1bW5dPVwiZGVmYXVsdFNvcnRlZENvbHVtblwiXHJcbiAgW2RlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICBbc2VhcmNoUGxhY2VIb2xkZXJUZXh0XT1cInZpZXdSb3N0ZXJDb25zdGFudHM/LnNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICBbdGFibGVBY3Rpb25zXT1cInJvc3RlckFjdGlvbnNcIlxyXG4gIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gIFtzZWxlY3RlZEZpbHRlck9wdGlvbnNdPVwicm9sZXNcIlxyXG4gIChyZW1vdmVGaWx0ZXJlZE9wdGlvbik9XCJvbkZpbHRlclVzZXJzQnlSb2xlcygkZXZlbnQpXCJcclxuICAoZmlsdGVyZWRPcHRpb25zKT1cIm9uRmlsdGVyVXNlcnNCeVJvbGVzKCRldmVudClcIlxyXG4gIChzZWFyY2hlZFZhbHVlKT1cIm9uU2VhcmNoR3JvdXBVc2VycygkZXZlbnQpXCJcclxuPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1yb3N0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXJvc3Rlci92aWV3LXJvc3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUVMLGVBQWUsRUFHZixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBRXhCLFNBQVMsR0FDVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEdBR1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUV6RDs7Ozs7R0FLRztBQVVILE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCO0lBQ0UsMENBQTBDO0lBQ2xDLFlBQTJCO0lBQ25DLDBDQUEwQztJQUNsQyxZQUEyQjtJQUNuQywwQ0FBMEM7SUFDbEMsR0FBc0I7SUFDOUIsMENBQTBDO0lBQ2xDLHlCQUFvRDtRQU5wRCxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUUzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUUzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUV0Qiw4QkFBeUIsR0FBekIseUJB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RUFBRSxZQUFZO2dCQUNyQixTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO1lBQ3RELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0EvTlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEVDakRoQyxzbkJBYUEsbTdPRDhCWSxZQUFZLG1JQUFFLGtCQUFrQjs7MkZBTS9CLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGlCQUc1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgQ2hpcE9wdGlvbixcclxuICBDaGlwc1R5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBHbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFVzZXJzUGF5bG9hZCxcclxuICBGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkLFxyXG4gIFVzZXIsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuXHJcbi8qKlxyXG4gKiBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBhZGQsIGVkaXQsIGRlbGV0ZSB1c2VyIHRvIGdyb3VwIHJvc3RlciwgYXNzaWduIGFuZCBtb2RpZnkgcm9sZXMocykgdG8gdGhlIGdyb3VwIHVzZXJzLCBhbmQgc2VhcmNoIHVzZXIgZnJvbSByb3N0ZXIuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXZpZXctcm9zdGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXJvc3Rlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICB2aWV3Um9zdGVyQ29uc3RhbnRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdSb3N0ZXI7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbmFtZTogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy5maWx0ZXJCeVJvbGUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICBjb2x1bW5TY2hlbWE6IFRhYmxlQ29sdW1uU2NoZW1hW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5zZWxlY3R9YCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBjb2x1bW5EZWY6ICduYW1lJyxcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy50YWJsZUNvbHVtbnM/Lm5hbWUsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5uYW1lfWAsXHJcbiAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMyxcclxuICAgICAgY29sdW1uRGVmOiAnZW1haWwnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8uZW1haWwsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5lbWFpbH1gLFxyXG4gICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDQsXHJcbiAgICAgIGNvbHVtbkRlZjogJ3JvbGUnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8ucm9sZSxcclxuICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnJvbGV9YCxcclxuICAgIH0sXHJcbiAgXTtcclxuICB0YWJsZURhdGEhOiBVc2VyW107XHJcbiAgc2VsZWN0ZWRSb2xlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUm9sZXMhOiBDaGlwT3B0aW9uW10gfCBDaGVja2JveE9wdGlvbltdO1xyXG4gIHJvbGVzOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgcm9zdGVyQWN0aW9uczogVGFibGVBY3Rpb25zID0ge1xyXG4gICAgaXNTZWFyY2hOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogdHJ1ZSxcclxuICAgIGlzQWRkTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0VkaXROZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBkZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMV0uY29sdW1uRGVmO1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID1cclxuICAgIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZ2V0Um9sZXMoKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgYnkgY2FsbGluZyBnZXRHcm91cFVzZXJzKCkgZnJvbSBncm91cFNlcnZpY2UgYW5kIHNldHMgdGFibGVEYXRhIHRvIGRpc3BsYXkgdGhlIHVzZXJzIGluIGEgZ3JpZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3VwVXNlcnNBbmRJbml0aWFsaXplVGFibGVWaWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVXNlcnMoXHJcbiAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UuZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBJZCBhcyBzdHJpbmdcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNlbGVjdGVkIGdyb3VwIHR5cGUgcm9sZXMgYnkgY2FsbGluZyBnZXRHcm91cFR5cGVSb2xlcygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIGFzc2lnbiByb2xlcy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvbGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVHlwZVJvbGVzKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwVHlwZSBhcyBzdHJpbmdcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb2xlcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgc2VhcmNoR3JvdXBVc2VycygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIHRhYmxlRGF0YSB0byBkaXNwbGF5IHRoZSB1c2VycyBpbiBhIGdyaWQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm0gLXNlYXJjaFRlcm0gY2FuIGJlIHVzZXIgbmFtZSBvciBlbWFpbCBhbmQgdXNlciBpcyBzZWFyY2hlZCBiYXNlZCBvbiB0aGUgZW1haWwgb3IgbmFtZS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoR3JvdXBVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghc2VhcmNoVGVybSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm9uRmlsdGVyVXNlcnNCeVJvbGVzKHRoaXMuc2VsZWN0ZWRSb2xlcyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXNlYXJjaFRlcm0udHJpbSgpKSByZXR1cm47XHJcbiAgICBjb25zdCBwYXlsb2FkOiBTZWFyY2hVc2Vyc1BheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgICBzZWFyY2hCeU5hbWVPckVtYWlsOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkUm9sZUlkcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuc2VhcmNoR3JvdXBVc2VycyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgZ2V0R3JvdXBVc2Vyc0J5Um9sZXMoKSBmcm9tIGdyb3VwU2VydmljZSBhbmQgc2V0cyB0YWJsZURhdGEgdG8gZGlzcGxheSB0aGUgdXNlcnMgaW4gYSBncmlkLlxyXG4gICAqIEBwYXJhbSB7Q2hpcE9wdGlvbltdIHwgfCBDaGVja2JveE9wdGlvbltdfSByb2xlc1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25GaWx0ZXJVc2Vyc0J5Um9sZXMocm9sZXM6IENoaXBPcHRpb25bXSB8IENoZWNrYm94T3B0aW9uW10pOiB2b2lkIHtcclxuICAgIGlmIChyb2xlcz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGVJZHMgPSBbXTtcclxuICAgIHJvbGVzPy5mb3JFYWNoKChyb2xlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb2xlSWRzLnB1c2gocm9sZS5pZCBhcyBzdHJpbmcpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm9sZXMgPSByb2xlcztcclxuICAgIGNvbnN0IHBheWxvYWQ6IEZpbHRlclVzZXJzQnlSb2xlc1BheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgICByb2xlczogdGhpcy5zZWxlY3RlZFJvbGVJZHMsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVXNlcnNCeVJvbGVzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLnRyYW5zZm9ybVVzZXJSb2xlc05hbWVBc1N0cmluZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgY3VzdG9tIGVycm9ycyB3aGlsZSByZXRyaWV2aW5nIGdyb3VwcyB1c2Vycywgcm9sZXMsIHNlYXJjaCB1c2VycywgZmlsdGVyIHVzZXIgYnkgcm9sZXMuXHJcbiAgICogQHBhcmFtIHsqfSBlcnJvclxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFcnJvcnMoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXJyb3JDb2RlcyA9IGVycm9yPy5lcnJvcj8uYm9keT8uZXJyb3JDb2RlcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yQ29kZXMpICYmICFlcnJvcj8uZXJyb3I/LnN0YXR1cykge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLmdyb3VwU2VydmljZS5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1kYXRhLXRhYmxlICpuZ0lmPVwidGFibGVEYXRhICYmIHRhYmxlRGF0YS5sZW5ndGggPiAwXCJcclxuICBbdGFibGVEYXRhSW5mb109XCJ0YWJsZURhdGFcIlxyXG4gIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgW2RlZmF1bHRTb3J0ZWRDb2x1bW5dPVwiZGVmYXVsdFNvcnRlZENvbHVtblwiXHJcbiAgW2RlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICBbc2VhcmNoUGxhY2VIb2xkZXJUZXh0XT1cInZpZXdSb3N0ZXJDb25zdGFudHM/LnNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICBbdGFibGVBY3Rpb25zXT1cInJvc3RlckFjdGlvbnNcIlxyXG4gIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gIFtzZWxlY3RlZEZpbHRlck9wdGlvbnNdPVwicm9sZXNcIlxyXG4gIChyZW1vdmVGaWx0ZXJlZE9wdGlvbik9XCJvbkZpbHRlclVzZXJzQnlSb2xlcygkZXZlbnQpXCJcclxuICAoZmlsdGVyZWRPcHRpb25zKT1cIm9uRmlsdGVyVXNlcnNCeVJvbGVzKCRldmVudClcIlxyXG4gIChzZWFyY2hlZFZhbHVlKT1cIm9uU2VhcmNoR3JvdXBVc2VycygkZXZlbnQpXCJcclxuPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiJdfQ==
@@ -175,7 +175,6 @@ export class GroupsComponent {
175
175
  case GroupFunctionType?.EDIT: {
176
176
  this.showAlertMessage(AlertType?.SUCCESS, this.editGroupTexts?.message?.success?.submission);
177
177
  const editGroupInfo = groupInfo;
178
- this.groupsService.setGroupFunctionType(GroupFunctionType.EDIT);
179
178
  if (editGroupInfo?.parentGroupInfo?.groupId === undefined) {
180
179
  this.getGroups();
181
180
  }
@@ -457,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
457
456
  }], permissions: [{
458
457
  type: Input
459
458
  }] } });
460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2dyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9ncm91cHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUVkLG1CQUFtQixFQUVuQixTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsYUFBYSxHQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQUdy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QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBdGNVLGVBQWU7a0dBQWYsZUFBZSxnTUFGZixDQUFDLGFBQWEsQ0FBQywwQkNoRTVCLGlrSUE0R0EsbTJRRHhESSxZQUFZLGdPQUNaLGVBQWUsOEJBQ2YsZUFBZSw0UUFDZixlQUFlLGlLQUNmLGVBQWUsK1NBQ2YsaUJBQWlCLDBRQUNqQixlQUFlLDRGQUNmLG1CQUFtQjs7MkZBT1YsZUFBZTtrQkFuQjNCLFNBQVM7K0JBRUUsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjtxQkFDcEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLGFBQWEsQ0FBQzt3T0FzQ2pCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtZ3JvdXAvY3JlYXRlLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyb3Vwc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyb3VwSW5mbyB9IGZyb20gJy4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaENvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBTZWxlY3RPcHRpb24sXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBJY29uQnV0dG9uLFxyXG4gIEFsaWduVHlwZSxcclxuICBNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCxcclxuICBTZWxlY3RDb21wb25lbnQsXHJcbiAgTGVnZW5kQ29tcG9uZW50LFxyXG4gIExlZ2VuZCxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyb3VwVHlwZSwgR3JvdXBUeXBlQ29uZmlnVmFsdWUgfSBmcm9tICcuL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgTW9kYWxUeXBlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHZXRHcm91cHNQYXlsb2FkIH0gZnJvbSAnLi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IERlbGV0ZUdyb3VwUGF5bG9hZCB9IGZyb20gJy4vbW9kZWxzL2RlbGV0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IFZpZXdSb3N0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlldy1yb3N0ZXIvdmlldy1yb3N0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdEdyb3VwQW5kUGFyZW50SW5mbyB9IGZyb20gJy4vbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBjb21wb25lbnQgaXMgYSB3cmFwcGVyIG9yIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIGdyb3VwcyBtYW5hZ2VtZW50IHJldXNhYmxlIGNvbXBvbmVudCBhbmQgaW4gdGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyBhbGwgZ3JvdXAgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXRpZXMgYW5kIHRoaXMgd2lsbCBiZSBlbnRyeSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGdyb3VwcyB3aGVuIGl0IGlzIGNvbnN1bWVkIGluIG90aGVyIGFwcGxpY2F0aW9ucy5cclxuICogQGNsYXNzIEdyb3Vwc0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ncm91cHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBMZWdlbmRDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgdmlld0dyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld0dyb3VwcztcclxuICBjcmVhdGVHcm91cFRleHQgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlR3JvdXA7XHJcbiAgZWRpdEdyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uZWRpdEdyb3VwO1xyXG4gIGlzR3JvdXBTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBpc0dyb3VwRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgY2hpbGRHcm91cHNJbmZvITogR3JvdXBJbmZvW107XHJcbiAgc2VsZWN0ZWRHcm91cFR5cGUhOiBTZWxlY3RPcHRpb247XHJcbiAgcGFyZW50R3JvdXBzSW5mbyE6IEdyb3VwSW5mb1tdO1xyXG4gIHNlbGVjdEdyb3VwT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlbGV0ZWRHcm91cElkITogc3RyaW5nO1xyXG4gIGRlbGV0ZUdyb3VwTmFtZSE6IHN0cmluZztcclxuICBncm91cFR5cGVzITogR3JvdXBUeXBlQ29uZmlnVmFsdWU7XHJcbiAgc2VhcmNoUGxhY2VIb2xkZXJUZXh0OiBzdHJpbmcgPSB0aGlzLnZpZXdHcm91cFRleHRzPy5wbGFjZWhvbGRlclRleHQ/LnNlYXJjaDtcclxuICBmaWx0ZXJQbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9IHRoaXMudmlld0dyb3VwVGV4dHM/LnBsYWNlaG9sZGVyVGV4dD8uZmlsdGVyO1xyXG4gIGNyZWF0ZUdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAxLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuYWRkLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uY3JlYXRlR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmFkZCxcclxuICB9O1xyXG4gIGZpbHRlckdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAyLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuZmlsdGVyLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uZmlsdGVyR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmZpbHRlcixcclxuICB9O1xyXG4gIGdyb3Vwc0xlZ2VuZHM6IExlZ2VuZFtdID0gW107XHJcbiAgZ2V0R3JvdXBzUGF5bG9hZDogR2V0R3JvdXBzUGF5bG9hZCA9IHsgZ3JvdXBJZDogJycsIGdyb3VwVHlwZUlkOiAnJyB9O1xyXG4gIEBJbnB1dCgpIGdyb3Vwc1BhZ2VJbmZvOiB7XHJcbiAgICBncm91cHNUaXRsZTogc3RyaW5nO1xyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgZ3JvdXBzVGl0bGU6IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc1RpdGxlLFxyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc0Rlc2NyaXB0aW9uLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYXBwbGljYXRpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgcGVybWlzc2lvbnMhOiBhbnk7XHJcbiAgZnVuY3Rpb25UeXBlITogR3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICBpc1NvcnRpbmcgPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBzU2VydmljZTogR3JvdXBzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdD8ubWF0Y2hlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBncm91cHMgY29tcG9uZW50LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0QXBwQ29uZmlnKHRoaXMuYXBpQmFzZVVSTCwgdGhpcy5wZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLmdldEdyb3VwVHlwZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBjcmVhdGUgZ3JvdXAgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm99IFtwYXJlbnRHcm91cEluZm9dIC1BbiBvcHRpb25hbCBwYXJhbWV0ZXIuIFBhcmVudCBncm91cCBpbmZvIHRvIGJlIHBhc3NlZCBmb3IgY3JlYXRlIGNoaWxkIGdyb3VwLlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuQ3JlYXRlR3JvdXBGb3JtKHBhcmVudEdyb3VwSW5mbz86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRTZWxlY3RlZEdyb3VwSW5mbyhwYXJlbnRHcm91cEluZm8gPz8gdW5kZWZpbmVkKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0R3JvdXBGdW5jdGlvblR5cGUoR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURSk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uaGVhZGluZyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBDcmVhdGVHcm91cENvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgIH07XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlPy5DUkVBVEU7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWNyZWF0ZS1ncm91cCcsIHBhcmVudEdyb3VwSW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgZWRpdCBncm91cCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcGFyYW0ge0VkaXRHcm91cEFuZFBhcmVudEluZm99IGVkaXRHcm91cEluZm8gLWVkaXRpbmcgZ3JvdXAgYW5kIGl0cyBwYXJlbnQgZ3JvdXAgaW5mbyB0byBiZSBwYXNzZWQgZm9yIHBvcHVsYXRpbmcgZWRpdCBncm91cCBmb3JtIGZpZWxkcy5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkVkaXRHcm91cEZvcm0oZWRpdEdyb3VwSW5mbzogRWRpdEdyb3VwQW5kUGFyZW50SW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRTZWxlY3RlZEdyb3VwSW5mbyhcclxuICAgICAgZWRpdEdyb3VwSW5mbz8uZ3JvdXBJbmZvLFxyXG4gICAgICBlZGl0R3JvdXBJbmZvPy5wYXJlbnRHcm91cEluZm9cclxuICAgICk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEdyb3VwRnVuY3Rpb25UeXBlKEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUKTtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IGVkaXRHcm91cEluZm8/Lmdyb3VwSW5mbz8uZ3JvdXBOYW1lLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZUdyb3VwQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGU/LkVESVQ7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWNyZWF0ZS1ncm91cCcsIGVkaXRHcm91cEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIHVzZXJzIG1vZGFsIGFuZCBjYWxscyBvcGVuTW9kYWwgbWV0aG9kLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbmZvfSBncm91cFxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICB2aWV3Um9zdGVyKGdyb3VwOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IGdyb3VwPy5ncm91cE5hbWUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIGNvbXBvbmVudFJlZmVyZW5jZTogVmlld1Jvc3RlckNvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STV9BTkRfQ09OVEVOVCxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2V0U2VsZWN0ZWRHcm91cEluZm8oZ3JvdXApO1xyXG4gICAgdGhpcy5mdW5jdGlvblR5cGUgPSBHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUjtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0R3JvdXBGdW5jdGlvblR5cGUoR3JvdXBGdW5jdGlvblR5cGU/LkVESVQpO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoZGlhbG9nT3B0aW9ucywgJ2llZWVzYS12aWV3LXJvc3RlcicpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBtb2RhbCBjb21wb25lbnQgd2l0aCBmb3IgcmVjZWl2ZWQgcGFyYW1zIGFuZCBoYW5kbGVzIGZvcm0gc3VibWlzc2lvbiBzdWNjZXNzIGFuZCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHsqfSBkaWFsb2dPcHRpb25zXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjbGFzc05hbWVdXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlcywgbm8tdW51c2VkLXZhcnNcclxuICBvcGVuTW9kYWwoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgZGlhbG9nT3B0aW9uczogYW55LFxyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nLFxyXG4gICAgZ3JvdXBJbmZvPzogR3JvdXBJbmZvIHwgRWRpdEdyb3VwQW5kUGFyZW50SW5mb1xyXG4gICk6IHZvaWQge1xyXG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lID8/ICcnO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZz8ub3BlbihNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkaWFsb2dPcHRpb25zLFxyXG4gICAgICB3aWR0aDogdGhpcy5mdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLlZJRVdfUk9TVEVSID8gJycgOiAnYXV0bycsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsIGNsYXNzTmFtZV0sXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlPy5zdWJtaXRGb3JtUmVzcG9uc2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBuby11bnVzZWQtdmFyc1xyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5mdW5jdGlvblR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURToge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgQWxlcnRUeXBlPy5TVUNDRVNTLFxyXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9uXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZUdyb3VwSW5mbyA9IGdyb3VwSW5mbyBhcyBHcm91cEluZm87XHJcbiAgICAgICAgICAgIGlmIChjcmVhdGVHcm91cEluZm8pIHRoaXMuZ2V0R3JvdXBzKGNyZWF0ZUdyb3VwSW5mbyk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUOiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0R3JvdXBUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBlZGl0R3JvdXBJbmZvID0gZ3JvdXBJbmZvIGFzIEVkaXRHcm91cEFuZFBhcmVudEluZm87XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZS5FRElUKTtcclxuICAgICAgICAgICAgaWYgKGVkaXRHcm91cEluZm8/LnBhcmVudEdyb3VwSW5mbz8uZ3JvdXBJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHRoaXMuZ2V0R3JvdXBzKGVkaXRHcm91cEluZm8ucGFyZW50R3JvdXBJbmZvKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlPy5mb3JtQ2FuY2VsXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIGNvbmZpcm1hdGlvbiBtb2RhbCB0byBnZXQgdXNlciBjb25maXJtYXRpb24gdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBncm91cC5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG9wZW5EZWxldGVDb25maXJtYXRpb25Nb2RhbChncm91cEluZm86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlybWF0aW9uSW5mbyA9IHNjcmVlblRleHRzPy5kZWxldGVHcm91cD8uY29uZmlybWF0aW9uSW5mbztcclxuICAgIGNvbnN0IGRlbGV0ZUdyb3VwTW9kYWxPcHRpb25zID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LmxlZnRCdXR0b25MYWJlbCxcclxuICAgICAgcmlnaHRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTpcclxuICAgICAgICBjb25maXJtYXRpb25JbmZvPy5wcm9tcHRNZXNzYWdlICsgZ3JvdXBJbmZvPy5ncm91cE5hbWUgKyAnPycsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiB0aGlzLmFsaWdubWVudFR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRlbGV0ZUdyb3VwTW9kYWxPcHRpb25zLFxyXG4gICAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgICBhdXRvRm9jdXM6ICdkaWFsb2cnLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuY29uc3RhbnRzPy5hcmlhTGFiZWw/LmFsZXJ0LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuZGVsZXRlR3JvdXAoZ3JvdXBJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2Qgc2VuZHMgQVBJIFJlcXVlc3QgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBncm91cCBhbmQgaGFuZGxlcyB0aGUgc3VjY2VzcyBhbmQgZXJyb3IgcmVzcG9uc2Ugb2YgdGhlIGh0dHAgcmVxdWVzdC5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBkZWxldGVHcm91cChncm91cEluZm86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVsZXRlR3JvdXBUZXh0ID0gc2NyZWVuVGV4dHM/LmRlbGV0ZUdyb3VwO1xyXG4gICAgdGhpcy5kZWxldGVHcm91cE5hbWUgPSBncm91cEluZm8/Lmdyb3VwTmFtZTtcclxuICAgIGNvbnN0IGRlbGV0ZUdyb3VwUGF5bG9hZDogRGVsZXRlR3JvdXBQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBJZDogZ3JvdXBJbmZvPy5ncm91cElkLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZGVsZXRlR3JvdXAoZGVsZXRlR3JvdXBQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRHcm91cElkID0gZ3JvdXBJbmZvPy5ncm91cElkO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgQWxlcnRUeXBlPy5TVUNDRVNTLFxyXG4gICAgICAgICAgICAgIGdyb3VwSW5mbz8uZ3JvdXBOYW1lICsgZGVsZXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5zdWNjZXNzPy5kZWxldGlvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBzZWFyY2ggZmllbGQgb24gY2xpY2sgb2Ygc2VhcmNoIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkdyb3VwU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNHcm91cEZpbHRlckFjdGl2ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgdGhlIEZpbHRlciBieSBkcm9wZG93biBvcHRpb25zIG9uIGNsaWNrIG9mIGZpbHRlciBpY29uIGluIGNhc2Ugb2YgbW9iaWxlIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2hvd0dyb3VwRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0dyb3VwRmlsdGVyQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNHcm91cFNlYXJjaEFjdGl2ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgdG8gdHJ1ZSBhbmQgbG9hZHMgdGhlIGdyb3VwcyB0aG9zZSBhcmUgY29uZmlndXJlZCB3aXRoIHNlbGVjdGVkIGdyb3VwIHR5cGUuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Hcm91cFNlYXJjaENsaWNrKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXNlYXJjaFRlcm07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHNlbGVjdCBncm91cCB0eXBlIG9wdGlvbnMgZnJvbSBncm91cFR5cGVzIHJlc3BvbnNlXHJcbiAgICogQHJldHVybiB7Kn0gIHtTZWxlY3RPcHRpb25bXX1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlT3B0aW9ucygpOiBTZWxlY3RPcHRpb25bXSB7XHJcbiAgICB0aGlzLmxlZ2VuZENvbG9yKCk7XHJcbiAgICBjb25zdCBncm91cFR5cGVPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gICAgZ3JvdXBUeXBlT3B0aW9ucy5wdXNoKHtcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICBuYW1lOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hbGxHcm91cFR5cGVzT3B0aW9uLFxyXG4gICAgfSk7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmdyb3VwVHlwZXMpPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGdyb3VwVHlwZU9wdGlvbnMucHVzaCh7IGlkOiBub2RlWzBdLCBuYW1lOiBub2RlWzFdPy5uYW1lIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JvdXBUeXBlT3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgbGVnZW5kIGNvbG9yIGZyb20gZ3JvdXBUeXBlcyByZXNwb25zZVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBsZWdlbmRDb2xvcigpOiB2b2lkIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuZ3JvdXBUeXBlcyk/LmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cHNMZWdlbmRzPy5wdXNoKHtcclxuICAgICAgICBjb2xvcjogbm9kZVsxXT8ubGVnZW5kQ29sb3IsXHJcbiAgICAgICAgbGFiZWw6IG5vZGVbMV0/Lm5hbWUsXHJcbiAgICAgICAgaGllcmFyY2h5OiBub2RlWzFdPy5oaWVyYXJjaHksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgZmxhZyBhbmQgbG9hZHMgcGFyZW50IGdyb3VwIGluZm8gYXMgcGVyIHNlbGVjdGVkIGZpbHRlciBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBUeXBlRmlsdGVyZWQoZXZlbnQ6IFNlbGVjdE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwVHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkO1xyXG4gICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICBncm91cElkOiAnJyxcclxuICAgICAgZ3JvdXBUeXBlSWQ6IHRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkIGFzIHN0cmluZyxcclxuICAgIH07XHJcbiAgICB0aGlzLmdldEdyb3VwcygpO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRklMVEVSKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGFsbCB0aGUgcGFyZW50IGdyb3VwcyBpbmZvcm1hdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBzKGdyb3VwPzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAoZ3JvdXApIHtcclxuICAgICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwPy5ncm91cElkID8/ICcnLFxyXG4gICAgICAgIGdyb3VwVHlwZUlkOiAnJyxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5nZXRHcm91cHNQYXlsb2FkLmdyb3VwVHlwZUlkID09PSAnJykge1xyXG4gICAgICB0aGlzLmdldEdyb3Vwc1BheWxvYWQgPSB7XHJcbiAgICAgICAgZ3JvdXBJZDogJycsXHJcbiAgICAgICAgZ3JvdXBUeXBlSWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cHModGhpcy5nZXRHcm91cHNQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhcmVudEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBncm91cFR5cGUgaW5mbyB3aXRoIGdyb3VwIHJlc3BvbnNlIGZyb20gZ3JvdXBUeXBlIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm9bXX0gcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHsqfSAge0dyb3VwSW5mb1tdfVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICB2aWV3R3JvdXBSZXNwb25zZShyZXNwb25zZTogR3JvdXBJbmZvW10pOiBHcm91cEluZm9bXSB7XHJcbiAgICByZXNwb25zZT8uZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBjb25zdCBncm91cFR5cGVJbmZvOiBHcm91cFR5cGUgPSB0aGlzLmdyb3VwVHlwZXNbbm9kZS5ncm91cFR5cGVdO1xyXG4gICAgICBub2RlLmdyb3VwVHlwZUluZm8gPSBncm91cFR5cGVJbmZvO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAgdHlwZXMuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3VwVHlwZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVHlwZXMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEZvcm1hdHRlZEdyb3VwVHlwZXMoXHJcbiAgICAgICAgICAgICAgcmVzPy5ib2R5XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0R3JvdXBPcHRpb25zID0gdGhpcy5nZXRHcm91cFR5cGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cFR5cGUgPSB0aGlzLnNlbGVjdEdyb3VwT3B0aW9uc1swXTtcclxuICAgICAgICAgICAgdGhpcy5vbkdyb3VwVHlwZUZpbHRlcmVkKHRoaXMuc2VsZWN0ZWRHcm91cFR5cGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhbGVydHMgZm9yIHN1Y2Nlc3MsIGVycm9yIGFuZCB3YXJuaW5nLlxyXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IHN0cmluZ1tdKX0gbWVzc2FnZSAtc3VjY2VzcyBvciBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UuXHJcbiAgICogQHBhcmFtIHtBbGVydFR5cGV9IGFsZXJ0VHlwZVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93QWxlcnRNZXNzYWdlKGFsZXJ0VHlwZTogQWxlcnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgYWxlcnRUeXBlOiBhbGVydFR5cGUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhcHR1cmVzIHRoZSBzZXJ2ZXIgc2lkZSBlcnJvcnMgYW5kIGhhbmRsZXMgaXQgYmFzZWQgb24gdGhlIGN1c3RvbSBvciBIdHRwIGVycm9ycy5cclxuICAgKiBAcGFyYW0ge0h0dHBFcnJvclJlc3BvbnNlfSBlcnJvclxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBoYW5kbGVFcnJvcnMoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBlcnJvckNvZGVzOiBzdHJpbmdbXSA9IGVycm9yPy5lcnJvcj8uYm9keT8uZXJyb3JDb2RlcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yQ29kZXMpKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZTogc3RyaW5nW10gPVxyXG4gICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZT8ucGFyc2VFcnJvck1lc3NhZ2UoZXJyb3JDb2Rlcyk7XHJcbiAgICAgIGlmIChlcnJvckNvZGVzPy5pbmNsdWRlcygnMTAwOCcpKSB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlWzBdID0gdGhpcy5kZWxldGVHcm91cE5hbWUgKyBlcnJvck1lc3NhZ2U/LlswXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoQWxlcnRUeXBlLkVSUk9SLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZT8uaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1ncm91cHMgcC0zIHAtc20tNCBwLW1kLTQgcC1sZy00XCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzX19pbmZvIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXdcclxuICAgICAgICA/ICdpZWVlc2EtZ3JvdXBzX19pbmZvLS13aGl0ZS1iZydcclxuICAgICAgICA6ICdpZWVlc2EtZ3JvdXBzX19pbmZvLS1ibHVlLWJnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8cFxyXG4gICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLXRpdGxlLWxnLTI0JyA6ICdpZWVlc2EtaGVhZGxpbmUtbGctMzQnXCJcclxuICAgID5cclxuICAgICAge3sgZ3JvdXBzUGFnZUluZm8uZ3JvdXBzVGl0bGUgfX1cclxuICAgIDwvcD5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzX19jcmVhdGUtc3ViZ3JvdXAgbWF0LXRlcnRpYXJ5LWJ1dHRvbiBkLW5vbmUgZC1zbS1ub25lIGQtbWQtYmxvY2sgZC1sZy1ibG9jayBkLXhsLWJsb2NrXCJcclxuICAgICAgICAoY2xpY2spPVwib3BlbkNyZWF0ZUdyb3VwRm9ybSgpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cz8udmlld0dyb3Vwcz8uYXJpYUxhYmVsPy5hZGRHcm91cFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBjb25zdGFudHM/LnZpZXdHcm91cHM/LmFkZEdyb3VwIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGQtc20tZmxleCBkLW1kLW5vbmUgZC1sZy1ub25lIGQteGwtbm9uZSBpZWVlc2EtZ3JvdXBzX19tb2JpbGUtaWNvbnMgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiY3JlYXRlR3JvdXBJY29uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9wZW5DcmVhdGVHcm91cEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJmaWx0ZXJHcm91cEljb25cIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwic2hvd0dyb3VwRmlsdGVyKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hcmlhTGFiZWw/LnNlYXJjaFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uR3JvdXBTZWFyY2goKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3Mgc2VhcmNoLWdyb3VwLWljb25cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzX19hY3Rpb25zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXdcclxuICAgICAgICA/ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS13aGl0ZS1iZydcclxuICAgICAgICA6ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS1ibHVlLWJnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19fYWN0aW9ucy0tc2VhcmNoIHJvd1wiPlxyXG4gICAgICA8cFxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTYgb3JkZXItMiBvcmRlci1zbS0xIGNvbC0xMiBjb2wtbWQtNyBjb2wtbGctNyBjb2wteGwtN1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBncm91cHNQYWdlSW5mby5ncm91cHNEZXNjcmlwdGlvbiB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKChpc0dyb3VwU2VhcmNoQWN0aXZlIHx8IGlzR3JvdXBGaWx0ZXJBY3RpdmUpICYmIGlzTW9iaWxlVmlldykgfHxcclxuICAgICAgICAgICFpc01vYmlsZVZpZXdcclxuICAgICAgICBcIlxyXG4gICAgICAgIGNsYXNzPVwib3JkZXItMSBvcmRlci1zbS0yIGNvbC0xMiBjb2wtbWQtNSBjb2wtbGctNSBjb2wteGwtNSBkLWZsZXggZmxleC1jb2x1bW5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAgICpuZ0lmPVwiaXNHcm91cFNlYXJjaEFjdGl2ZSB8fCAhaXNNb2JpbGVWaWV3XCJcclxuICAgICAgICAgIChzZWFyY2hWYWx1ZSk9XCJvbkdyb3VwU2VhcmNoQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJMYWJlbF09XCJzZWFyY2hQbGFjZUhvbGRlclRleHRcIlxyXG4gICAgICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgICAgICAgPGllZWVzYS1zZWxlY3RcclxuICAgICAgICAgICpuZ0lmPVwiaXNHcm91cEZpbHRlckFjdGl2ZSB8fCAhaXNNb2JpbGVWaWV3XCJcclxuICAgICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1lbmQgcHQtbGctNCBwdC1tZC00IHB0LXhsLTRcIlxyXG4gICAgICAgICAgW2Ryb3Bkb3duT3B0aW9uc109XCJzZWxlY3RHcm91cE9wdGlvbnNcIlxyXG4gICAgICAgICAgW2lzTGFiZWxBbGlnbmVkTGVmdF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzZWxlY3RMYWJlbF09XCJjb25zdGFudHM/LnZpZXdHcm91cHM/LmZpbHRlckJ5TGFiZWxcIlxyXG4gICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uR3JvdXBUeXBlRmlsdGVyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cImZpbHRlclBsYWNlSG9sZGVyVGV4dFwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRPcHRpb25zXT1cInNlbGVjdGVkR3JvdXBUeXBlXCJcclxuICAgICAgICA+PC9pZWVlc2Etc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGllZWVzYS10cmVlXHJcbiAgICAgICpuZ0lmPVwicGFyZW50R3JvdXBzSW5mbyAmJiBwYXJlbnRHcm91cHNJbmZvLmxlbmd0aCA+IDBcIlxyXG4gICAgICBbcGFyZW50R3JvdXBzSW5mb109XCJwYXJlbnRHcm91cHNJbmZvXCJcclxuICAgICAgW2NoaWxkR3JvdXBzSW5mb109XCJjaGlsZEdyb3Vwc0luZm9cIlxyXG4gICAgICBbZGVsZXRlZEdyb3VwSWRJbmZvXT1cImRlbGV0ZWRHcm91cElkXCJcclxuICAgICAgW2lzR3JvdXBTZWFyY2hPckZpbHRlckFjdGl2ZV09XCJpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmVcIlxyXG4gICAgICAodG9nZ2xlR3JvdXBDbGljayk9XCJnZXRHcm91cHMoJGV2ZW50KVwiXHJcbiAgICAgIChjcmVhdGVHcm91cENsaWNrKT1cIm9wZW5DcmVhdGVHcm91cEZvcm0oJGV2ZW50KVwiXHJcbiAgICAgIChkZWxldGVHcm91cENsaWNrKT1cIm9wZW5EZWxldGVDb25maXJtYXRpb25Nb2RhbCgkZXZlbnQpXCJcclxuICAgICAgKHZpZXdSb3N0ZXJDbGljayk9XCJ2aWV3Um9zdGVyKCRldmVudClcIlxyXG4gICAgICAoZWRpdEdyb3VwQ2xpY2spPVwib3BlbkVkaXRHcm91cEZvcm0oJGV2ZW50KVwiXHJcbiAgICA+PC9pZWVlc2EtdHJlZT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJwYXJlbnRHcm91cHNJbmZvICYmIHBhcmVudEdyb3Vwc0luZm8ubGVuZ3RoID4gMFwiXHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtc20tcm93IGZsZXgtbWQtcm93IG10LTQganVzdGlmeS1jb250ZW50LXN0YXJ0IGp1c3RpZnktY29udGVudC1zbS1lbmRcIlxyXG4gICAgPlxyXG4gICAgICA8cCBjbGFzcz1cInB4LXNtLTMgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGllZWVzYS1sYWJlbC1sZy1ib2xkLTE2XCI+XHJcbiAgICAgICAge3sgY29uc3RhbnRzPy52aWV3R3JvdXBzPy5sZWdlbmQgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8aWVlZXNhLWxlZ2VuZCBbbGVnZW5kc109XCJncm91cHNMZWdlbmRzXCIgW2lzU29ydGluZ109XCJpc1NvcnRpbmdcIj48L2llZWVzYS1sZWdlbmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2dyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9ncm91cHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUVkLG1CQUFtQixFQUVuQixTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsYUFBYSxHQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQUdy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ZUFBZSxnTUFGZixDQUFDLGFBQWEsQ0FBQywwQkNoRTVCLGlrSUE0R0EsbTJRRHhESSxZQUFZLGdPQUNaLGVBQWUsOEJBQ2YsZUFBZSw0UUFDZixlQUFlLGlLQUNmLGVBQWUsK1NBQ2YsaUJBQWlCLDBRQUNqQixlQUFlLDRGQUNmLG1CQUFtQjs7MkZBT1YsZUFBZTtrQkFuQjNCLFNBQVM7K0JBRUUsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjtxQkFDcEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLGFBQWEsQ0FBQzt3T0FzQ2pCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtZ3JvdXAvY3JlYXRlLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyb3Vwc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyb3VwSW5mbyB9IGZyb20gJy4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaENvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBTZWxlY3RPcHRpb24sXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBJY29uQnV0dG9uLFxyXG4gIEFsaWduVHlwZSxcclxuICBNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCxcclxuICBTZWxlY3RDb21wb25lbnQsXHJcbiAgTGVnZW5kQ29tcG9uZW50LFxyXG4gIExlZ2VuZCxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyb3VwVHlwZSwgR3JvdXBUeXBlQ29uZmlnVmFsdWUgfSBmcm9tICcuL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgTW9kYWxUeXBlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHZXRHcm91cHNQYXlsb2FkIH0gZnJvbSAnLi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IERlbGV0ZUdyb3VwUGF5bG9hZCB9IGZyb20gJy4vbW9kZWxzL2RlbGV0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IFZpZXdSb3N0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlldy1yb3N0ZXIvdmlldy1yb3N0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdEdyb3VwQW5kUGFyZW50SW5mbyB9IGZyb20gJy4vbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBjb21wb25lbnQgaXMgYSB3cmFwcGVyIG9yIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIGdyb3VwcyBtYW5hZ2VtZW50IHJldXNhYmxlIGNvbXBvbmVudCBhbmQgaW4gdGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyBhbGwgZ3JvdXAgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXRpZXMgYW5kIHRoaXMgd2lsbCBiZSBlbnRyeSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGdyb3VwcyB3aGVuIGl0IGlzIGNvbnN1bWVkIGluIG90aGVyIGFwcGxpY2F0aW9ucy5cclxuICogQGNsYXNzIEdyb3Vwc0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ncm91cHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBMZWdlbmRDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgdmlld0dyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld0dyb3VwcztcclxuICBjcmVhdGVHcm91cFRleHQgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlR3JvdXA7XHJcbiAgZWRpdEdyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uZWRpdEdyb3VwO1xyXG4gIGlzR3JvdXBTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBpc0dyb3VwRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgY2hpbGRHcm91cHNJbmZvITogR3JvdXBJbmZvW107XHJcbiAgc2VsZWN0ZWRHcm91cFR5cGUhOiBTZWxlY3RPcHRpb247XHJcbiAgcGFyZW50R3JvdXBzSW5mbyE6IEdyb3VwSW5mb1tdO1xyXG4gIHNlbGVjdEdyb3VwT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlbGV0ZWRHcm91cElkITogc3RyaW5nO1xyXG4gIGRlbGV0ZUdyb3VwTmFtZSE6IHN0cmluZztcclxuICBncm91cFR5cGVzITogR3JvdXBUeXBlQ29uZmlnVmFsdWU7XHJcbiAgc2VhcmNoUGxhY2VIb2xkZXJUZXh0OiBzdHJpbmcgPSB0aGlzLnZpZXdHcm91cFRleHRzPy5wbGFjZWhvbGRlclRleHQ/LnNlYXJjaDtcclxuICBmaWx0ZXJQbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9IHRoaXMudmlld0dyb3VwVGV4dHM/LnBsYWNlaG9sZGVyVGV4dD8uZmlsdGVyO1xyXG4gIGNyZWF0ZUdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAxLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuYWRkLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uY3JlYXRlR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmFkZCxcclxuICB9O1xyXG4gIGZpbHRlckdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAyLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuZmlsdGVyLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uZmlsdGVyR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmZpbHRlcixcclxuICB9O1xyXG4gIGdyb3Vwc0xlZ2VuZHM6IExlZ2VuZFtdID0gW107XHJcbiAgZ2V0R3JvdXBzUGF5bG9hZDogR2V0R3JvdXBzUGF5bG9hZCA9IHsgZ3JvdXBJZDogJycsIGdyb3VwVHlwZUlkOiAnJyB9O1xyXG4gIEBJbnB1dCgpIGdyb3Vwc1BhZ2VJbmZvOiB7XHJcbiAgICBncm91cHNUaXRsZTogc3RyaW5nO1xyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgZ3JvdXBzVGl0bGU6IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc1RpdGxlLFxyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc0Rlc2NyaXB0aW9uLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYXBwbGljYXRpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgcGVybWlzc2lvbnMhOiBhbnk7XHJcbiAgZnVuY3Rpb25UeXBlITogR3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICBpc1NvcnRpbmcgPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBzU2VydmljZTogR3JvdXBzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdD8ubWF0Y2hlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBncm91cHMgY29tcG9uZW50LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0QXBwQ29uZmlnKHRoaXMuYXBpQmFzZVVSTCwgdGhpcy5wZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLmdldEdyb3VwVHlwZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBjcmVhdGUgZ3JvdXAgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm99IFtwYXJlbnRHcm91cEluZm9dIC1BbiBvcHRpb25hbCBwYXJhbWV0ZXIuIFBhcmVudCBncm91cCBpbmZvIHRvIGJlIHBhc3NlZCBmb3IgY3JlYXRlIGNoaWxkIGdyb3VwLlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuQ3JlYXRlR3JvdXBGb3JtKHBhcmVudEdyb3VwSW5mbz86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRTZWxlY3RlZEdyb3VwSW5mbyhwYXJlbnRHcm91cEluZm8gPz8gdW5kZWZpbmVkKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0R3JvdXBGdW5jdGlvblR5cGUoR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURSk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uaGVhZGluZyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBDcmVhdGVHcm91cENvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgIH07XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlPy5DUkVBVEU7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWNyZWF0ZS1ncm91cCcsIHBhcmVudEdyb3VwSW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgZWRpdCBncm91cCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcGFyYW0ge0VkaXRHcm91cEFuZFBhcmVudEluZm99IGVkaXRHcm91cEluZm8gLWVkaXRpbmcgZ3JvdXAgYW5kIGl0cyBwYXJlbnQgZ3JvdXAgaW5mbyB0byBiZSBwYXNzZWQgZm9yIHBvcHVsYXRpbmcgZWRpdCBncm91cCBmb3JtIGZpZWxkcy5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkVkaXRHcm91cEZvcm0oZWRpdEdyb3VwSW5mbzogRWRpdEdyb3VwQW5kUGFyZW50SW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRTZWxlY3RlZEdyb3VwSW5mbyhcclxuICAgICAgZWRpdEdyb3VwSW5mbz8uZ3JvdXBJbmZvLFxyXG4gICAgICBlZGl0R3JvdXBJbmZvPy5wYXJlbnRHcm91cEluZm9cclxuICAgICk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEdyb3VwRnVuY3Rpb25UeXBlKEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUKTtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IGVkaXRHcm91cEluZm8/Lmdyb3VwSW5mbz8uZ3JvdXBOYW1lLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZUdyb3VwQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGU/LkVESVQ7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWNyZWF0ZS1ncm91cCcsIGVkaXRHcm91cEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIHVzZXJzIG1vZGFsIGFuZCBjYWxscyBvcGVuTW9kYWwgbWV0aG9kLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbmZvfSBncm91cFxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICB2aWV3Um9zdGVyKGdyb3VwOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IGdyb3VwPy5ncm91cE5hbWUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIGNvbXBvbmVudFJlZmVyZW5jZTogVmlld1Jvc3RlckNvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STV9BTkRfQ09OVEVOVCxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2V0U2VsZWN0ZWRHcm91cEluZm8oZ3JvdXApO1xyXG4gICAgdGhpcy5mdW5jdGlvblR5cGUgPSBHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUjtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0R3JvdXBGdW5jdGlvblR5cGUoR3JvdXBGdW5jdGlvblR5cGU/LkVESVQpO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoZGlhbG9nT3B0aW9ucywgJ2llZWVzYS12aWV3LXJvc3RlcicpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBtb2RhbCBjb21wb25lbnQgd2l0aCBmb3IgcmVjZWl2ZWQgcGFyYW1zIGFuZCBoYW5kbGVzIGZvcm0gc3VibWlzc2lvbiBzdWNjZXNzIGFuZCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHsqfSBkaWFsb2dPcHRpb25zXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjbGFzc05hbWVdXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlcywgbm8tdW51c2VkLXZhcnNcclxuICBvcGVuTW9kYWwoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgZGlhbG9nT3B0aW9uczogYW55LFxyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nLFxyXG4gICAgZ3JvdXBJbmZvPzogR3JvdXBJbmZvIHwgRWRpdEdyb3VwQW5kUGFyZW50SW5mb1xyXG4gICk6IHZvaWQge1xyXG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lID8/ICcnO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZz8ub3BlbihNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkaWFsb2dPcHRpb25zLFxyXG4gICAgICB3aWR0aDogdGhpcy5mdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLlZJRVdfUk9TVEVSID8gJycgOiAnYXV0bycsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsIGNsYXNzTmFtZV0sXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlPy5zdWJtaXRGb3JtUmVzcG9uc2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBuby11bnVzZWQtdmFyc1xyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5mdW5jdGlvblR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURToge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgQWxlcnRUeXBlPy5TVUNDRVNTLFxyXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9uXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZUdyb3VwSW5mbyA9IGdyb3VwSW5mbyBhcyBHcm91cEluZm87XHJcbiAgICAgICAgICAgIGlmIChjcmVhdGVHcm91cEluZm8pIHRoaXMuZ2V0R3JvdXBzKGNyZWF0ZUdyb3VwSW5mbyk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUOiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0R3JvdXBUZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBlZGl0R3JvdXBJbmZvID0gZ3JvdXBJbmZvIGFzIEVkaXRHcm91cEFuZFBhcmVudEluZm87XHJcbiAgICAgICAgICAgIGlmIChlZGl0R3JvdXBJbmZvPy5wYXJlbnRHcm91cEluZm8/Lmdyb3VwSWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0R3JvdXBzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB0aGlzLmdldEdyb3VwcyhlZGl0R3JvdXBJbmZvLnBhcmVudEdyb3VwSW5mbyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uZm9ybUNhbmNlbFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBjb25maXJtYXRpb24gbW9kYWwgdG8gZ2V0IHVzZXIgY29uZmlybWF0aW9uIHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgZ3JvdXAuXHJcbiAgICogQG1lbWJlcm9mIEdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBvcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwoZ3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkluZm8gPSBzY3JlZW5UZXh0cz8uZGVsZXRlR3JvdXA/LmNvbmZpcm1hdGlvbkluZm87XHJcbiAgICBjb25zdCBkZWxldGVHcm91cE1vZGFsT3B0aW9ucyA9IHtcclxuICAgICAgbGVmdEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5sZWZ0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHJpZ2h0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LnJpZ2h0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHByb21wdE1lc3NhZ2U6XHJcbiAgICAgICAgY29uZmlybWF0aW9uSW5mbz8ucHJvbXB0TWVzc2FnZSArIGdyb3VwSW5mbz8uZ3JvdXBOYW1lICsgJz8nLFxyXG4gICAgICBhY3Rpb25CdXR0b25BbGlnbjogdGhpcy5hbGlnbm1lbnRUeXBlPy5NSURETEUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZz8ub3BlbihNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkZWxldGVHcm91cE1vZGFsT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICdhdXRvJyxcclxuICAgICAgYXV0b0ZvY3VzOiAnZGlhbG9nJyxcclxuICAgICAgYXJpYUxhYmVsOiB0aGlzLmNvbnN0YW50cz8uYXJpYUxhYmVsPy5hbGVydCxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUdyb3VwKGdyb3VwSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIEFQSSBSZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgZ3JvdXAgYW5kIGhhbmRsZXMgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIHJlc3BvbnNlIG9mIHRoZSBodHRwIHJlcXVlc3QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlR3JvdXAoZ3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbGV0ZUdyb3VwVGV4dCA9IHNjcmVlblRleHRzPy5kZWxldGVHcm91cDtcclxuICAgIHRoaXMuZGVsZXRlR3JvdXBOYW1lID0gZ3JvdXBJbmZvPy5ncm91cE5hbWU7XHJcbiAgICBjb25zdCBkZWxldGVHcm91cFBheWxvYWQ6IERlbGV0ZUdyb3VwUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwSW5mbz8uZ3JvdXBJZCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmRlbGV0ZUdyb3VwKGRlbGV0ZUdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVkR3JvdXBJZCA9IGdyb3VwSW5mbz8uZ3JvdXBJZDtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBncm91cEluZm8/Lmdyb3VwTmFtZSArIGRlbGV0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uc3VjY2Vzcz8uZGVsZXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgc2VhcmNoIGZpZWxkIG9uIGNsaWNrIG9mIHNlYXJjaCBpY29uIGluIGNhc2Ugb2YgbW9iaWxlIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Hcm91cFNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNHcm91cFNlYXJjaEFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzR3JvdXBGaWx0ZXJBY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBGaWx0ZXIgYnkgZHJvcGRvd24gb3B0aW9ucyBvbiBjbGljayBvZiBmaWx0ZXIgaWNvbiBpbiBjYXNlIG9mIG1vYmlsZSB2aWV3XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dHcm91cEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNHcm91cEZpbHRlckFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzR3JvdXBTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlIHRvIHRydWUgYW5kIGxvYWRzIHRoZSBncm91cHMgdGhvc2UgYXJlIGNvbmZpZ3VyZWQgd2l0aCBzZWxlY3RlZCBncm91cCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXJtXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBTZWFyY2hDbGljayhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gISFzZWFyY2hUZXJtO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBzZWxlY3QgZ3JvdXAgdHlwZSBvcHRpb25zIGZyb20gZ3JvdXBUeXBlcyByZXNwb25zZVxyXG4gICAqIEByZXR1cm4geyp9ICB7U2VsZWN0T3B0aW9uW119XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3VwVHlwZU9wdGlvbnMoKTogU2VsZWN0T3B0aW9uW10ge1xyXG4gICAgdGhpcy5sZWdlbmRDb2xvcigpO1xyXG4gICAgY29uc3QgZ3JvdXBUeXBlT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICAgIGdyb3VwVHlwZU9wdGlvbnMucHVzaCh7XHJcbiAgICAgIGlkOiAnJyxcclxuICAgICAgbmFtZTogdGhpcy52aWV3R3JvdXBUZXh0cz8uYWxsR3JvdXBUeXBlc09wdGlvbixcclxuICAgIH0pO1xyXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5ncm91cFR5cGVzKT8uZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBncm91cFR5cGVPcHRpb25zLnB1c2goeyBpZDogbm9kZVswXSwgbmFtZTogbm9kZVsxXT8ubmFtZSB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwVHlwZU9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGxlZ2VuZCBjb2xvciBmcm9tIGdyb3VwVHlwZXMgcmVzcG9uc2VcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbGVnZW5kQ29sb3IoKTogdm9pZCB7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmdyb3VwVHlwZXMpPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGVnZW5kcz8ucHVzaCh7XHJcbiAgICAgICAgY29sb3I6IG5vZGVbMV0/LmxlZ2VuZENvbG9yLFxyXG4gICAgICAgIGxhYmVsOiBub2RlWzFdPy5uYW1lLFxyXG4gICAgICAgIGhpZXJhcmNoeTogbm9kZVsxXT8uaGllcmFyY2h5LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlIGZsYWcgYW5kIGxvYWRzIHBhcmVudCBncm91cCBpbmZvIGFzIHBlciBzZWxlY3RlZCBmaWx0ZXIgb3B0aW9uLlxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3B0aW9ufSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkdyb3VwVHlwZUZpbHRlcmVkKGV2ZW50OiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cFR5cGUgPSBldmVudDtcclxuICAgIHRoaXMuaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gISF0aGlzLnNlbGVjdGVkR3JvdXBUeXBlPy5pZDtcclxuICAgIHRoaXMuZ2V0R3JvdXBzUGF5bG9hZCA9IHtcclxuICAgICAgZ3JvdXBJZDogJycsXHJcbiAgICAgIGdyb3VwVHlwZUlkOiB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlPy5pZCBhcyBzdHJpbmcsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0R3JvdXBGdW5jdGlvblR5cGUoR3JvdXBGdW5jdGlvblR5cGU/LkZJTFRFUik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhbGwgdGhlIHBhcmVudCBncm91cHMgaW5mb3JtYXRpb24uXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3Vwcyhncm91cD86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKGdyb3VwKSB7XHJcbiAgICAgIHRoaXMuZ2V0R3JvdXBzUGF5bG9hZCA9IHtcclxuICAgICAgICBncm91cElkOiBncm91cD8uZ3JvdXBJZCA/PyAnJyxcclxuICAgICAgICBncm91cFR5cGVJZDogJycsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0R3JvdXBzUGF5bG9hZC5ncm91cFR5cGVJZCA9PT0gJycpIHtcclxuICAgICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICAgIGdyb3VwSWQ6ICcnLFxyXG4gICAgICAgIGdyb3VwVHlwZUlkOiAnJyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBzKHRoaXMuZ2V0R3JvdXBzUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGlmIChncm91cCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRHcm91cHNJbmZvID0gdGhpcy52aWV3R3JvdXBSZXNwb25zZShyZXNwb25zZT8uYm9keSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJlbnRHcm91cHNJbmZvID0gdGhpcy52aWV3R3JvdXBSZXNwb25zZShyZXNwb25zZT8uYm9keSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgZ3JvdXBUeXBlIGluZm8gd2l0aCBncm91cCByZXNwb25zZSBmcm9tIGdyb3VwVHlwZSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbmZvW119IHJlc3BvbnNlXHJcbiAgICogQHJldHVybiB7Kn0gIHtHcm91cEluZm9bXX1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdmlld0dyb3VwUmVzcG9uc2UocmVzcG9uc2U6IEdyb3VwSW5mb1tdKTogR3JvdXBJbmZvW10ge1xyXG4gICAgcmVzcG9uc2U/LmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgY29uc3QgZ3JvdXBUeXBlSW5mbzogR3JvdXBUeXBlID0gdGhpcy5ncm91cFR5cGVzW25vZGUuZ3JvdXBUeXBlXTtcclxuICAgICAgbm9kZS5ncm91cFR5cGVJbmZvID0gZ3JvdXBUeXBlSW5mbztcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIGdyb3VwIHR5cGVzLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRGb3JtYXR0ZWRHcm91cFR5cGVzKFxyXG4gICAgICAgICAgICAgIHJlcz8uYm9keVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEdyb3VwT3B0aW9ucyA9IHRoaXMuZ2V0R3JvdXBUeXBlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlID0gdGhpcy5zZWxlY3RHcm91cE9wdGlvbnNbMF07XHJcbiAgICAgICAgICAgIHRoaXMub25Hcm91cFR5cGVGaWx0ZXJlZCh0aGlzLnNlbGVjdGVkR3JvdXBUeXBlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWxlcnRzIGZvciBzdWNjZXNzLCBlcnJvciBhbmQgd2FybmluZy5cclxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBzdHJpbmdbXSl9IG1lc3NhZ2UgLXN1Y2Nlc3Mgb3IgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLlxyXG4gICAqIEBwYXJhbSB7QWxlcnRUeXBlfSBhbGVydFR5cGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2hvd0FsZXJ0TWVzc2FnZShhbGVydFR5cGU6IEFsZXJ0VHlwZSwgbWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICAgIGFsZXJ0VHlwZTogYWxlcnRUeXBlLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXB0dXJlcyB0aGUgc2VydmVyIHNpZGUgZXJyb3JzIGFuZCBoYW5kbGVzIGl0IGJhc2VkIG9uIHRoZSBjdXN0b20gb3IgSHR0cCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXJyb3JSZXNwb25zZX0gZXJyb3JcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlRXJyb3JzKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXJyb3JDb2Rlczogc3RyaW5nW10gPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvckNvZGVzKSkge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2U6IHN0cmluZ1tdID1cclxuICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnBhcnNlRXJyb3JNZXNzYWdlKGVycm9yQ29kZXMpO1xyXG4gICAgICBpZiAoZXJyb3JDb2Rlcz8uaW5jbHVkZXMoJzEwMDgnKSkge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZVswXSA9IHRoaXMuZGVsZXRlR3JvdXBOYW1lICsgZXJyb3JNZXNzYWdlPy5bMF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKEFsZXJ0VHlwZS5FUlJPUiwgZXJyb3JNZXNzYWdlKTtcclxuICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICB0aGlzLmdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U/LmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzIHAtMyBwLXNtLTQgcC1tZC00IHAtbGctNFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19faW5mbyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItM1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgPyAnaWVlZXNhLWdyb3Vwc19faW5mby0td2hpdGUtYmcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWdyb3Vwc19faW5mby0tYmx1ZS1iZydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPHBcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS10aXRsZS1sZy0yNCcgOiAnaWVlZXNhLWhlYWRsaW5lLWxnLTM0J1wiXHJcbiAgICA+XHJcbiAgICAgIHt7IGdyb3Vwc1BhZ2VJbmZvLmdyb3Vwc1RpdGxlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19fY3JlYXRlLXN1Ymdyb3VwIG1hdC10ZXJ0aWFyeS1idXR0b24gZC1ub25lIGQtc20tbm9uZSBkLW1kLWJsb2NrIGQtbGctYmxvY2sgZC14bC1ibG9ja1wiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5DcmVhdGVHcm91cEZvcm0oKVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25zdGFudHM/LnZpZXdHcm91cHM/LmFyaWFMYWJlbD8uYWRkR3JvdXBcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hZGRHcm91cCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBkLXNtLWZsZXggZC1tZC1ub25lIGQtbGctbm9uZSBkLXhsLW5vbmUgaWVlZXNhLWdyb3Vwc19fbW9iaWxlLWljb25zIGdhcC0yXCJcclxuICAgID5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cImNyZWF0ZUdyb3VwSWNvblwiXHJcbiAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvcGVuQ3JlYXRlR3JvdXBGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiZmlsdGVyR3JvdXBJY29uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cInNob3dHcm91cEZpbHRlcigpXCJcclxuICAgICAgPlxyXG4gICAgICA8L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cz8udmlld0dyb3Vwcz8uYXJpYUxhYmVsPy5zZWFyY2hcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkdyb3VwU2VhcmNoKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzIHNlYXJjaC1ncm91cC1pY29uXCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19fYWN0aW9uc1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgPyAnaWVlZXNhLWdyb3Vwc19fYWN0aW9ucy0td2hpdGUtYmcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWdyb3Vwc19fYWN0aW9ucy0tYmx1ZS1iZydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImllZWVzYS1ncm91cHNfX2FjdGlvbnMtLXNlYXJjaCByb3dcIj5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ib2R5LW1kLTE2IG9yZGVyLTIgb3JkZXItc20tMSBjb2wtMTIgY29sLW1kLTcgY29sLWxnLTcgY29sLXhsLTdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZ3JvdXBzUGFnZUluZm8uZ3JvdXBzRGVzY3JpcHRpb24gfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICgoaXNHcm91cFNlYXJjaEFjdGl2ZSB8fCBpc0dyb3VwRmlsdGVyQWN0aXZlKSAmJiBpc01vYmlsZVZpZXcpIHx8XHJcbiAgICAgICAgICAhaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgXCJcclxuICAgICAgICBjbGFzcz1cIm9yZGVyLTEgb3JkZXItc20tMiBjb2wtMTIgY29sLW1kLTUgY29sLWxnLTUgY29sLXhsLTUgZC1mbGV4IGZsZXgtY29sdW1uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpZWVlc2Etc2VhcmNoXHJcbiAgICAgICAgICAqbmdJZj1cImlzR3JvdXBTZWFyY2hBY3RpdmUgfHwgIWlzTW9iaWxlVmlld1wiXHJcbiAgICAgICAgICAoc2VhcmNoVmFsdWUpPVwib25Hcm91cFNlYXJjaENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyTGFiZWxdPVwic2VhcmNoUGxhY2VIb2xkZXJUZXh0XCJcclxuICAgICAgICA+PC9pZWVlc2Etc2VhcmNoPlxyXG4gICAgICAgIDxpZWVlc2Etc2VsZWN0XHJcbiAgICAgICAgICAqbmdJZj1cImlzR3JvdXBGaWx0ZXJBY3RpdmUgfHwgIWlzTW9iaWxlVmlld1wiXHJcbiAgICAgICAgICBjbGFzcz1cImFsaWduLXNlbGYtZW5kIHB0LWxnLTQgcHQtbWQtNCBwdC14bC00XCJcclxuICAgICAgICAgIFtkcm9wZG93bk9wdGlvbnNdPVwic2VsZWN0R3JvdXBPcHRpb25zXCJcclxuICAgICAgICAgIFtpc0xhYmVsQWxpZ25lZExlZnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2VsZWN0TGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5maWx0ZXJCeUxhYmVsXCJcclxuICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbkdyb3VwVHlwZUZpbHRlcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJmaWx0ZXJQbGFjZUhvbGRlclRleHRcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkT3B0aW9uc109XCJzZWxlY3RlZEdyb3VwVHlwZVwiXHJcbiAgICAgICAgPjwvaWVlZXNhLXNlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpZWVlc2EtdHJlZVxyXG4gICAgICAqbmdJZj1cInBhcmVudEdyb3Vwc0luZm8gJiYgcGFyZW50R3JvdXBzSW5mby5sZW5ndGggPiAwXCJcclxuICAgICAgW3BhcmVudEdyb3Vwc0luZm9dPVwicGFyZW50R3JvdXBzSW5mb1wiXHJcbiAgICAgIFtjaGlsZEdyb3Vwc0luZm9dPVwiY2hpbGRHcm91cHNJbmZvXCJcclxuICAgICAgW2RlbGV0ZWRHcm91cElkSW5mb109XCJkZWxldGVkR3JvdXBJZFwiXHJcbiAgICAgIFtpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmVdPVwiaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlXCJcclxuICAgICAgKHRvZ2dsZUdyb3VwQ2xpY2spPVwiZ2V0R3JvdXBzKCRldmVudClcIlxyXG4gICAgICAoY3JlYXRlR3JvdXBDbGljayk9XCJvcGVuQ3JlYXRlR3JvdXBGb3JtKCRldmVudClcIlxyXG4gICAgICAoZGVsZXRlR3JvdXBDbGljayk9XCJvcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwoJGV2ZW50KVwiXHJcbiAgICAgICh2aWV3Um9zdGVyQ2xpY2spPVwidmlld1Jvc3RlcigkZXZlbnQpXCJcclxuICAgICAgKGVkaXRHcm91cENsaWNrKT1cIm9wZW5FZGl0R3JvdXBGb3JtKCRldmVudClcIlxyXG4gICAgPjwvaWVlZXNhLXRyZWU+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwicGFyZW50R3JvdXBzSW5mbyAmJiBwYXJlbnRHcm91cHNJbmZvLmxlbmd0aCA+IDBcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvdyBmbGV4LW1kLXJvdyBtdC00IGp1c3RpZnktY29udGVudC1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtc20tZW5kXCJcclxuICAgID5cclxuICAgICAgPHAgY2xhc3M9XCJweC1zbS0zIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBpZWVlc2EtbGFiZWwtbGctYm9sZC0xNlwiPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cz8udmlld0dyb3Vwcz8ubGVnZW5kIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPGllZWVzYS1sZWdlbmQgW2xlZ2VuZHNdPVwiZ3JvdXBzTGVnZW5kc1wiIFtpc1NvcnRpbmddPVwiaXNTb3J0aW5nXCI+PC9pZWVlc2EtbGVnZW5kPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -5,5 +5,6 @@ export var GroupFunctionType;
5
5
  GroupFunctionType["EDIT"] = "EDIT";
6
6
  GroupFunctionType["VIEW_ROSTER"] = "VIEW_ROSTER";
7
7
  GroupFunctionType["FILTER"] = "FILTER";
8
+ GroupFunctionType["TOGGLE"] = "TOGGLE";
8
9
  })(GroupFunctionType || (GroupFunctionType = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixnREFBMkIsQ0FBQTtJQUMzQixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUs1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIEdyb3VwRnVuY3Rpb25UeXBlIHtcclxuICBDUkVBVEUgPSAnQ1JFQVRFJyxcclxuICBFRElUID0gJ0VESVQnLFxyXG4gIFZJRVdfUk9TVEVSID0gJ1ZJRVdfUk9TVEVSJyxcclxuICBGSUxURVIgPSAnRklMVEVSJ1xyXG59XHJcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxpQkFNWDtBQU5ELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixnREFBMkIsQ0FBQTtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQU01QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIEdyb3VwRnVuY3Rpb25UeXBlIHtcclxuICBDUkVBVEUgPSAnQ1JFQVRFJyxcclxuICBFRElUID0gJ0VESVQnLFxyXG4gIFZJRVdfUk9TVEVSID0gJ1ZJRVdfUk9TVEVSJyxcclxuICBGSUxURVIgPSAnRklMVEVSJyxcclxuICBUT0dHTEUgPSAnVE9HR0xFJ1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL21vZGVscy9ncm91cC1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcm91cFR5cGUgfSBmcm9tICcuL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBJbmZvIHtcclxuICBncm91cElkOiBzdHJpbmc7XHJcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXBBY3JvbnltOiBzdHJpbmc7XHJcbiAgZ3JvdXBEZXNjPzogc3RyaW5nO1xyXG4gIGdyb3VwVHlwZTogc3RyaW5nO1xyXG4gIGdyb3VwU2hvcnROYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXBQYXJlbnRJZDogc3RyaW5nIHwgbnVsbDtcclxuICBoYXNDaGlsZHJlbjogYm9vbGVhbjtcclxuICBncm91cExldmVsOiBudW1iZXI7XHJcbiAgZ3JvdXBUeXBlSW5mbz86IEdyb3VwVHlwZTtcclxuICBjaGlsZHJlbj86IEdyb3VwSW5mb1tdO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL21vZGVscy9ncm91cC1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcm91cFR5cGUgfSBmcm9tICcuL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBJbmZvIHtcclxuICBncm91cElkOiBzdHJpbmc7XHJcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXBBY3JvbnltOiBzdHJpbmc7XHJcbiAgZ3JvdXBEZXNjPzogc3RyaW5nO1xyXG4gIGdyb3VwVHlwZTogc3RyaW5nO1xyXG4gIGdyb3VwU2hvcnROYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXBQYXJlbnRJZDogc3RyaW5nIHwgbnVsbDtcclxuICBoYXNDaGlsZHJlbjogYm9vbGVhbjtcclxuICBncm91cExldmVsOiBudW1iZXI7XHJcbiAgZ3JvdXBUeXBlSW5mbz86IEdyb3VwVHlwZTtcclxuICBjaGlsZHJlbj86IEdyb3VwSW5mb1tdO1xyXG4gIG5vT2ZDaGlsZHJlbj86IG51bWJlcjtcclxufVxyXG4iXX0=