@ieeesa-npm/groups 0.5.4 → 0.5.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.
- package/esm2022/lib/assets/constants.json +1 -1
- package/esm2022/lib/components/create-group/create-group.component.mjs +3 -1
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +5 -4
- package/esm2022/lib/components/view-roster/view-roster.component.mjs +29 -9
- package/esm2022/lib/models/group-types.model.mjs +1 -1
- package/esm2022/lib/services/groups.service.mjs +2 -1
- package/fesm2022/ieeesa-npm-groups.mjs +35 -11
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/models/group-types.model.d.ts +1 -0
- package/lib/services/groups.service.d.ts +11 -7
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
4
4
|
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
-
import { TableColumnType,
|
|
5
|
+
import { TableColumnType, TableColumnSortDirection, ChipsType, DataTableComponent, } from '@ieeesa-npm/presentation';
|
|
6
6
|
import { AlertType, } from '@ieeesa-npm/utility';
|
|
7
7
|
import * as constants from '../../assets/constants.json';
|
|
8
8
|
import { GroupFunctionType } from '../../models/group-function-type.model';
|
|
@@ -122,7 +122,13 @@ export class ViewRosterComponent {
|
|
|
122
122
|
},
|
|
123
123
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
124
|
error: (error) => {
|
|
125
|
-
|
|
125
|
+
const errorCodes = error?.error?.body?.errorCodes;
|
|
126
|
+
if (errorCodes?.includes('1026')) {
|
|
127
|
+
this.tableData = [];
|
|
128
|
+
this.cdr.detectChanges();
|
|
129
|
+
}
|
|
130
|
+
else
|
|
131
|
+
this.handleErrors(error);
|
|
126
132
|
},
|
|
127
133
|
});
|
|
128
134
|
}
|
|
@@ -176,10 +182,18 @@ export class ViewRosterComponent {
|
|
|
176
182
|
next: (response) => {
|
|
177
183
|
this.tableData =
|
|
178
184
|
this.groupService.transformUserRolesNameAsString(response);
|
|
185
|
+
this.cdr.detectChanges();
|
|
179
186
|
},
|
|
180
187
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
188
|
error: (error) => {
|
|
182
|
-
|
|
189
|
+
const errorCodes = error?.error?.body?.errorCodes;
|
|
190
|
+
const noUsersFoundErrorCodes = ['1029', '1030', '1031', '1032'];
|
|
191
|
+
if (errorCodes && noUsersFoundErrorCodes.includes(errorCodes[0])) {
|
|
192
|
+
this.tableData = [];
|
|
193
|
+
this.cdr.detectChanges();
|
|
194
|
+
}
|
|
195
|
+
else
|
|
196
|
+
this.handleErrors(error);
|
|
183
197
|
},
|
|
184
198
|
});
|
|
185
199
|
}
|
|
@@ -189,11 +203,11 @@ export class ViewRosterComponent {
|
|
|
189
203
|
* @memberof ViewRosterComponent
|
|
190
204
|
*/
|
|
191
205
|
onFilterUsersByRoles(roles) {
|
|
206
|
+
this.selectedRoleIds = [];
|
|
192
207
|
if (roles?.length === 0) {
|
|
193
208
|
this.getGroupUsersAndInitializeTableView();
|
|
194
209
|
return;
|
|
195
210
|
}
|
|
196
|
-
this.selectedRoleIds = [];
|
|
197
211
|
roles?.forEach((role) => {
|
|
198
212
|
this.selectedRoleIds.push(role.id);
|
|
199
213
|
});
|
|
@@ -213,9 +227,15 @@ export class ViewRosterComponent {
|
|
|
213
227
|
this.groupService.transformUserRolesNameAsString(response);
|
|
214
228
|
this.cdr.detectChanges();
|
|
215
229
|
},
|
|
216
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, no-unused-vars, @typescript-eslint/no-unused-vars
|
|
217
231
|
error: (error) => {
|
|
218
|
-
|
|
232
|
+
const errorCodes = error?.error?.body?.errorCodes;
|
|
233
|
+
if (errorCodes?.includes('1027')) {
|
|
234
|
+
this.tableData = [];
|
|
235
|
+
this.cdr.detectChanges();
|
|
236
|
+
}
|
|
237
|
+
else
|
|
238
|
+
this.handleErrors(error);
|
|
219
239
|
},
|
|
220
240
|
});
|
|
221
241
|
}
|
|
@@ -256,10 +276,10 @@ export class ViewRosterComponent {
|
|
|
256
276
|
this.destroy$.unsubscribe();
|
|
257
277
|
}
|
|
258
278
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ViewRosterComponent, deps: [{ token: i1.GroupsService }, { token: i2.AlertsService }, { token: i0.ChangeDetectorRef }, { token: i2.GlobalErrorHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
259
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: ViewRosterComponent, isStandalone: true, selector: "ieeesa-view-roster", ngImport: i0, template: "<ieeesa-data-table\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 (addRow)=\"onAddNewUser()\"\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "columnSchemaInfo", "tableActions", "caption", "paginatorConfig", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
279
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: ViewRosterComponent, isStandalone: true, selector: "ieeesa-view-roster", ngImport: i0, template: "<ieeesa-data-table\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 (addRow)=\"onAddNewUser()\"\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;min-height:405px}.ieeesa-modal-dialog.ieeesa-view-roster .ieeesa-modal-title{padding-bottom:1.25em}.ieeesa-data-table__content{height:500px}.ieeesa-data-table__no-table-data{height:auto}.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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "columnSchemaInfo", "tableActions", "caption", "paginatorConfig", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
260
280
|
}
|
|
261
281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ViewRosterComponent, decorators: [{
|
|
262
282
|
type: Component,
|
|
263
|
-
args: [{ selector: 'ieeesa-view-roster', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ieeesa-data-table\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 (addRow)=\"onAddNewUser()\"\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"] }]
|
|
283
|
+
args: [{ selector: 'ieeesa-view-roster', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ieeesa-data-table\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 (addRow)=\"onAddNewUser()\"\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;min-height:405px}.ieeesa-modal-dialog.ieeesa-view-roster .ieeesa-modal-title{padding-bottom:1.25em}.ieeesa-data-table__content{height:500px}.ieeesa-data-table__no-table-data{height:auto}.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"] }]
|
|
264
284
|
}], ctorParameters: function () { return [{ type: i1.GroupsService }, { type: i2.AlertsService }, { type: i0.ChangeDetectorRef }, { type: i2.GlobalErrorHandlerService }]; } });
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1yb3N0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXJvc3Rlci92aWV3LXJvc3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUVMLGVBQWUsRUFHZixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFNBQVMsR0FFVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEdBR1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTNFOzs7OztHQUtHO0FBVUgsTUFBTSxPQUFPLG1CQUFtQjtJQStEOUI7SUFDRSwwQ0FBMEM7SUFDbEMsWUFBMkI7SUFDbkMsMENBQTBDO0lBQ2xDLFlBQTJCO0lBQ25DLDBDQUEwQztJQUNsQyxHQUFzQjtJQUM5QiwwQ0FBMEM7SUFDbEMseUJBQW9EO1FBTnBELGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNC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QkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGlCQUc1QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQge1xyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxuICBUYWJsZUFjdGlvbnMsXHJcbiAgQ2hlY2tib3hPcHRpb24sXHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbixcclxuICBDaGlwc1R5cGUsXHJcbiAgQ2hpcE9wdGlvbixcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0VHlwZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IEdyb3Vwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncm91cHMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VhcmNoVXNlcnNQYXlsb2FkLFxyXG4gIEZpbHRlclVzZXJzQnlSb2xlc1BheWxvYWQsXHJcbiAgVXNlcixcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBhZGQsIGVkaXQsIGRlbGV0ZSB1c2VyIHRvIGdyb3VwIHJvc3RlciwgYXNzaWduIGFuZCBtb2RpZnkgcm9sZXMocykgdG8gdGhlIGdyb3VwIHVzZXJzLCBhbmQgc2VhcmNoIHVzZXIgZnJvbSByb3N0ZXIuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXZpZXctcm9zdGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXJvc3Rlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3Um9zdGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICB2aWV3Um9zdGVyQ29uc3RhbnRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdSb3N0ZXI7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbmFtZTogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy5maWx0ZXJCeVJvbGUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICBjb2x1bW5TY2hlbWE6IFRhYmxlQ29sdW1uU2NoZW1hW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5zZWxlY3R9YCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBjb2x1bW5EZWY6ICduYW1lJyxcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3Um9zdGVyQ29uc3RhbnRzPy50YWJsZUNvbHVtbnM/Lm5hbWUsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5uYW1lfWAsXHJcbiAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMyxcclxuICAgICAgY29sdW1uRGVmOiAnZW1haWwnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8uZW1haWwsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5lbWFpbH1gLFxyXG4gICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDQsXHJcbiAgICAgIGNvbHVtbkRlZjogJ3JvbGUnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8ucm9sZSxcclxuICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnJvbGV9YCxcclxuICAgIH0sXHJcbiAgXTtcclxuICB0YWJsZURhdGEhOiBVc2VyW107XHJcbiAgc2VsZWN0ZWRSb2xlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUm9sZXMhOiBDaGlwT3B0aW9uW10gfCBDaGVja2JveE9wdGlvbltdO1xyXG4gIHJvbGVzOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgcm9zdGVyQWN0aW9uczogVGFibGVBY3Rpb25zID0ge1xyXG4gICAgaXNTZWFyY2hOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogdHJ1ZSxcclxuICAgIGlzQWRkTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0VkaXROZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBkZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMV0uY29sdW1uRGVmO1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID1cclxuICAgIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZ2V0Um9sZXMoKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2hvdyBhZGQgbmV3IHVzZXIgc3VjY2VzcyBtZXNzYWdlIHdoZW4gY2FuU2hvd01lc3NhZ2UgaXMgc2V0IHRydWVcclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyb3VwU2VydmljZS5jYW5TaG93TWVzc2FnZSkge1xyXG4gICAgICB0aGlzLmdyb3VwU2VydmljZS5jYW5TaG93TWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmNvbnN0YW50cz8uYWRkVXNlclJvc3Rlcj8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvbixcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5TVUNDRVNTLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCB1c2VycyBieSBjYWxsaW5nIGdldEdyb3VwVXNlcnMoKSBmcm9tIGdyb3VwU2VydmljZSBhbmQgc2V0cyB0YWJsZURhdGEgdG8gZGlzcGxheSB0aGUgdXNlcnMgaW4gYSBncmlkLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBVc2VycyhcclxuICAgICAgICB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZ1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLnRyYW5zZm9ybVVzZXJSb2xlc05hbWVBc1N0cmluZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0ZWQgZ3JvdXAgdHlwZSByb2xlcyBieSBjYWxsaW5nIGdldEdyb3VwVHlwZVJvbGVzKCkgZnJvbSBncm91cFNlcnZpY2UgYW5kIHNldHMgYXNzaWduIHJvbGVzLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Um9sZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBUeXBlUm9sZXMoXHJcbiAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UuZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBUeXBlIGFzIHN0cmluZ1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvbGVzID0gcmVzcG9uc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgYnkgY2FsbGluZyBzZWFyY2hHcm91cFVzZXJzKCkgZnJvbSBncm91cFNlcnZpY2UgYW5kIHNldHMgdGFibGVEYXRhIHRvIGRpc3BsYXkgdGhlIHVzZXJzIGluIGEgZ3JpZC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybSAtc2VhcmNoVGVybSBjYW4gYmUgdXNlciBuYW1lIG9yIGVtYWlsIGFuZCB1c2VyIGlzIHNlYXJjaGVkIGJhc2VkIG9uIHRoZSBlbWFpbCBvciBuYW1lLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWFyY2hHcm91cFVzZXJzKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFzZWFyY2hUZXJtKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm9sZUlkcz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5nZXRHcm91cFVzZXJzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldygpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUm9sZUlkcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMub25GaWx0ZXJVc2Vyc0J5Um9sZXModGhpcy5zZWxlY3RlZFJvbGVzKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghc2VhcmNoVGVybS50cmltKCkpIHJldHVybjtcclxuICAgIGNvbnN0IHBheWxvYWQ6IFNlYXJjaFVzZXJzUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIHNlYXJjaEJ5TmFtZU9yRW1haWw6IHNlYXJjaFRlcm0sXHJcbiAgICAgICAgcm9sZXM6IHRoaXMuc2VsZWN0ZWRSb2xlSWRzLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBTZXJ2aWNlXHJcbiAgICAgIC5zZWFyY2hHcm91cFVzZXJzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLnRyYW5zZm9ybVVzZXJSb2xlc05hbWVBc1N0cmluZyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgYnkgY2FsbGluZyBnZXRHcm91cFVzZXJzQnlSb2xlcygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIHRhYmxlRGF0YSB0byBkaXNwbGF5IHRoZSB1c2VycyBpbiBhIGdyaWQuXHJcbiAgICogQHBhcmFtIHtDaGlwT3B0aW9uW10gfCB8IENoZWNrYm94T3B0aW9uW119IHJvbGVzXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZpbHRlclVzZXJzQnlSb2xlcyhyb2xlczogQ2hpcE9wdGlvbltdIHwgQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgaWYgKHJvbGVzPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5nZXRHcm91cFVzZXJzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkUm9sZUlkcyA9IFtdO1xyXG4gICAgcm9sZXM/LmZvckVhY2goKHJvbGUpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvbGVJZHMucHVzaChyb2xlLmlkIGFzIHN0cmluZyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlcyA9IHJvbGVzO1xyXG4gICAgY29uc3QgcGF5bG9hZDogRmlsdGVyVXNlcnNCeVJvbGVzUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkUm9sZUlkcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBVc2Vyc0J5Um9sZXMocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID1cclxuICAgICAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UudHJhbnNmb3JtVXNlclJvbGVzTmFtZUFzU3RyaW5nKHJlc3BvbnNlKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBjdXN0b20gZXJyb3JzIHdoaWxlIHJldHJpZXZpbmcgZ3JvdXBzIHVzZXJzLCByb2xlcywgc2VhcmNoIHVzZXJzLCBmaWx0ZXIgdXNlciBieSByb2xlcy5cclxuICAgKiBAcGFyYW0geyp9IGVycm9yXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGhhbmRsZUVycm9ycyhlcnJvcjogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBlcnJvckNvZGVzID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3JDb2RlcykgJiYgIWVycm9yPy5lcnJvcj8uc3RhdHVzKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHRoaXMuZ3JvdXBTZXJ2aWNlLnBhcnNlRXJyb3JNZXNzYWdlKGVycm9yQ29kZXMpO1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGUuRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5nbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIG9wZW5Nb2RhbE5vdGlmaWVyIGV2ZW50IHdpdGggR3JvdXBGdW5jdGlvblR5cGUgdmFsdWUgYXMgQUREX1VTRVJfVE9fUk9TVEVSXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBvbkFkZE5ld1VzZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZT8ub3Blbk1vZGFsTm90aWZpZXI/Lm5leHQoXHJcbiAgICAgIEdyb3VwRnVuY3Rpb25UeXBlLkFERF9VU0VSX1RPX1JPU1RFUlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aWVlZXNhLWRhdGEtdGFibGVcclxuICBbdGFibGVEYXRhSW5mb109XCJ0YWJsZURhdGFcIlxyXG4gIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgW2RlZmF1bHRTb3J0ZWRDb2x1bW5dPVwiZGVmYXVsdFNvcnRlZENvbHVtblwiXHJcbiAgW2RlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICBbc2VhcmNoUGxhY2VIb2xkZXJUZXh0XT1cInZpZXdSb3N0ZXJDb25zdGFudHM/LnNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICBbdGFibGVBY3Rpb25zXT1cInJvc3RlckFjdGlvbnNcIlxyXG4gIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gIFtzZWxlY3RlZEZpbHRlck9wdGlvbnNdPVwicm9sZXNcIlxyXG4gIChyZW1vdmVGaWx0ZXJlZE9wdGlvbik9XCJvbkZpbHRlclVzZXJzQnlSb2xlcygkZXZlbnQpXCJcclxuICAoZmlsdGVyZWRPcHRpb25zKT1cIm9uRmlsdGVyVXNlcnNCeVJvbGVzKCRldmVudClcIlxyXG4gIChzZWFyY2hlZFZhbHVlKT1cIm9uU2VhcmNoR3JvdXBVc2VycygkZXZlbnQpXCJcclxuICAoYWRkUm93KT1cIm9uQWRkTmV3VXNlcigpXCJcclxuPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1yb3N0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXJvc3Rlci92aWV3LXJvc3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUVMLGVBQWUsRUFHZix3QkFBd0IsRUFDeEIsU0FBUyxFQUVULGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEdBR1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTNFOzs7OztHQUtHO0FBVUgsTUFBTSxPQUFPLG1CQUFtQjtJQStEOUI7SUFDRSwwQ0FBMEM7SUFDbEMsWUFBMkI7SUFDbkMsMENBQTBDO0lBQ2xDLFlBQTJCO0lBQ25DLDBDQUEwQztJQUNsQyxHQUFzQjtJQUM5QiwwQ0FBMEM7SUFDbEMseUJBQW9EO1FBTnBELGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNC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TyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztnQkFDNUIsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO1lBQ3RELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUN4QyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXRRVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4RUNuRGhDLDJtQkFjQSxrL09EK0JZLFlBQVksK0JBQUUsa0JBQWtCOzsyRkFNL0IsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7XHJcbiAgVGFibGVDb2x1bW5TY2hlbWEsXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBDaGVja2JveE9wdGlvbixcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgQ2hpcHNUeXBlLFxyXG4gIENoaXBPcHRpb24sXHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTZWFyY2hVc2Vyc1BheWxvYWQsXHJcbiAgRmlsdGVyVXNlcnNCeVJvbGVzUGF5bG9hZCxcclxuICBVc2VyLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy91c2VyLm1vZGVsJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdyb3VwRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIFZpZXdSb3N0ZXJDb21wb25lbnQgaW1wbGVtZW50cyB0aGUgZnVuY3Rpb25hbGl0aWVzIHRvIGFkZCwgZWRpdCwgZGVsZXRlIHVzZXIgdG8gZ3JvdXAgcm9zdGVyLCBhc3NpZ24gYW5kIG1vZGlmeSByb2xlcyhzKSB0byB0aGUgZ3JvdXAgdXNlcnMsIGFuZCBzZWFyY2ggdXNlciBmcm9tIHJvc3Rlci5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2Etdmlldy1yb3N0ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGF0YVRhYmxlQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1yb3N0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZpZXctcm9zdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdSb3N0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHZpZXdSb3N0ZXJDb25zdGFudHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1Jvc3RlcjtcclxuICBmaWx0ZXJzOiBDaGlwT3B0aW9uW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBuYW1lOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LmZpbHRlckJ5Um9sZSxcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGNoaXBUeXBlOiBDaGlwc1R5cGUuVE9HR0xFLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIGNvbHVtblNjaGVtYTogVGFibGVDb2x1bW5TY2hlbWFbXSA9IFtcclxuICAgIHtcclxuICAgICAgaWQ6IDEsXHJcbiAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgaGVhZGluZzogJycsXHJcbiAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnNlbGVjdH1gLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDIsXHJcbiAgICAgIGNvbHVtbkRlZjogJ25hbWUnLFxyXG4gICAgICBoZWFkaW5nOiB0aGlzLnZpZXdSb3N0ZXJDb25zdGFudHM/LnRhYmxlQ29sdW1ucz8ubmFtZSxcclxuICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm5hbWV9YCxcclxuICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAzLFxyXG4gICAgICBjb2x1bW5EZWY6ICdlbWFpbCcsXHJcbiAgICAgIGhlYWRpbmc6IHRoaXMudmlld1Jvc3RlckNvbnN0YW50cz8udGFibGVDb2x1bW5zPy5lbWFpbCxcclxuICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmVtYWlsfWAsXHJcbiAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogNCxcclxuICAgICAgY29sdW1uRGVmOiAncm9sZScsXHJcbiAgICAgIGhlYWRpbmc6IHRoaXMudmlld1Jvc3RlckNvbnN0YW50cz8udGFibGVDb2x1bW5zPy5yb2xlLFxyXG4gICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQucm9sZX1gLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIHRhYmxlRGF0YSE6IFVzZXJbXTtcclxuICBzZWxlY3RlZFJvbGVJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRSb2xlcyE6IENoaXBPcHRpb25bXSB8IENoZWNrYm94T3B0aW9uW107XHJcbiAgcm9sZXM6IENoZWNrYm94T3B0aW9uW10gPSBbXTtcclxuICByb3N0ZXJBY3Rpb25zOiBUYWJsZUFjdGlvbnMgPSB7XHJcbiAgICBpc1NlYXJjaE5lZWRlZDogdHJ1ZSxcclxuICAgIGlzRmlsdGVyTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNBZGROZWVkZWQ6IHRydWUsXHJcbiAgICBpc0RlbGV0ZU5lZWRlZDogdHJ1ZSxcclxuICAgIGlzRWRpdE5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIGRlZmF1bHRTb3J0ZWRDb2x1bW4gPSB0aGlzLmNvbHVtblNjaGVtYVsxXS5jb2x1bW5EZWY7XHJcbiAgZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPVxyXG4gICAgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLkFTQ0VORElORztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cFNlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5nZXRSb2xlcygpO1xyXG4gICAgdGhpcy5nZXRHcm91cFVzZXJzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTaG93IGFkZCBuZXcgdXNlciBzdWNjZXNzIG1lc3NhZ2Ugd2hlbiBjYW5TaG93TWVzc2FnZSBpcyBzZXQgdHJ1ZVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBTZXJ2aWNlLmNhblNob3dNZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLmNhblNob3dNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uc3RhbnRzPy5hZGRVc2VyUm9zdGVyPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9uLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLlNVQ0NFU1MsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgZ2V0R3JvdXBVc2VycygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIHRhYmxlRGF0YSB0byBkaXNwbGF5IHRoZSB1c2VycyBpbiBhIGdyaWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFVzZXJzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFVzZXJzKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwSWQgYXMgc3RyaW5nXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID1cclxuICAgICAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UudHJhbnNmb3JtVXNlclJvbGVzTmFtZUFzU3RyaW5nKHJlc3BvbnNlKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlcnJvckNvZGVzID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgICAgICAgaWYgKGVycm9yQ29kZXM/LmluY2x1ZGVzKCcxMDI2JykpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSBlbHNlIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNlbGVjdGVkIGdyb3VwIHR5cGUgcm9sZXMgYnkgY2FsbGluZyBnZXRHcm91cFR5cGVSb2xlcygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIGFzc2lnbiByb2xlcy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvbGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVHlwZVJvbGVzKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwVHlwZSBhcyBzdHJpbmdcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb2xlcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJ5IGNhbGxpbmcgc2VhcmNoR3JvdXBVc2VycygpIGZyb20gZ3JvdXBTZXJ2aWNlIGFuZCBzZXRzIHRhYmxlRGF0YSB0byBkaXNwbGF5IHRoZSB1c2VycyBpbiBhIGdyaWQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm0gLXNlYXJjaFRlcm0gY2FuIGJlIHVzZXIgbmFtZSBvciBlbWFpbCBhbmQgdXNlciBpcyBzZWFyY2hlZCBiYXNlZCBvbiB0aGUgZW1haWwgb3IgbmFtZS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoR3JvdXBVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghc2VhcmNoVGVybSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZ2V0R3JvdXBVc2Vyc0FuZEluaXRpYWxpemVUYWJsZVZpZXcoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvbGVJZHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm9uRmlsdGVyVXNlcnNCeVJvbGVzKHRoaXMuc2VsZWN0ZWRSb2xlcyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXNlYXJjaFRlcm0udHJpbSgpKSByZXR1cm47XHJcbiAgICBjb25zdCBwYXlsb2FkOiBTZWFyY2hVc2Vyc1BheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgICBzZWFyY2hCeU5hbWVPckVtYWlsOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkUm9sZUlkcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwU2VydmljZVxyXG4gICAgICAuc2VhcmNoR3JvdXBVc2VycyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVycm9yQ29kZXMgPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICAgICAgICBjb25zdCBub1VzZXJzRm91bmRFcnJvckNvZGVzID0gWycxMDI5JywgJzEwMzAnLCAnMTAzMScsICcxMDMyJ107XHJcbiAgICAgICAgICBpZiAoZXJyb3JDb2RlcyAmJiBub1VzZXJzRm91bmRFcnJvckNvZGVzLmluY2x1ZGVzKGVycm9yQ29kZXNbMF0pKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCB1c2VycyBieSBjYWxsaW5nIGdldEdyb3VwVXNlcnNCeVJvbGVzKCkgZnJvbSBncm91cFNlcnZpY2UgYW5kIHNldHMgdGFibGVEYXRhIHRvIGRpc3BsYXkgdGhlIHVzZXJzIGluIGEgZ3JpZC5cclxuICAgKiBAcGFyYW0ge0NoaXBPcHRpb25bXSB8IHwgQ2hlY2tib3hPcHRpb25bXX0gcm9sZXNcclxuICAgKiBAbWVtYmVyb2YgVmlld1Jvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyVXNlcnNCeVJvbGVzKHJvbGVzOiBDaGlwT3B0aW9uW10gfCBDaGVja2JveE9wdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm9sZUlkcyA9IFtdO1xyXG4gICAgaWYgKHJvbGVzPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5nZXRHcm91cFVzZXJzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByb2xlcz8uZm9yRWFjaCgocm9sZSkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm9sZUlkcy5wdXNoKHJvbGUuaWQgYXMgc3RyaW5nKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGVzID0gcm9sZXM7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBJZDogdGhpcy5ncm91cFNlcnZpY2UuZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBJZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgcm9sZXM6IHRoaXMuc2VsZWN0ZWRSb2xlSWRzLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFVzZXJzQnlSb2xlcyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPVxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwU2VydmljZS50cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVycm9yQ29kZXMgPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICAgICAgICBpZiAoZXJyb3JDb2Rlcz8uaW5jbHVkZXMoJzEwMjcnKSkge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2UgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgY3VzdG9tIGVycm9ycyB3aGlsZSByZXRyaWV2aW5nIGdyb3VwcyB1c2Vycywgcm9sZXMsIHNlYXJjaCB1c2VycywgZmlsdGVyIHVzZXIgYnkgcm9sZXMuXHJcbiAgICogQHBhcmFtIHsqfSBlcnJvclxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFcnJvcnMoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXJyb3JDb2RlcyA9IGVycm9yPy5lcnJvcj8uYm9keT8uZXJyb3JDb2RlcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yQ29kZXMpICYmICFlcnJvcj8uZXJyb3I/LnN0YXR1cykge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLmdyb3VwU2VydmljZS5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBvcGVuTW9kYWxOb3RpZmllciBldmVudCB3aXRoIEdyb3VwRnVuY3Rpb25UeXBlIHZhbHVlIGFzIEFERF9VU0VSX1RPX1JPU1RFUlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3Um9zdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGROZXdVc2VyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFNlcnZpY2U/Lm9wZW5Nb2RhbE5vdGlmaWVyPy5uZXh0KFxyXG4gICAgICBHcm91cEZ1bmN0aW9uVHlwZS5BRERfVVNFUl9UT19ST1NURVJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgW3RhYmxlRGF0YUluZm9dPVwidGFibGVEYXRhXCJcclxuICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gIFtkZWZhdWx0U29ydGVkQ29sdW1uXT1cImRlZmF1bHRTb3J0ZWRDb2x1bW5cIlxyXG4gIFtkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbl09XCJkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvblwiXHJcbiAgW3NlYXJjaFBsYWNlSG9sZGVyVGV4dF09XCJ2aWV3Um9zdGVyQ29uc3RhbnRzPy5zZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgW3RhYmxlQWN0aW9uc109XCJyb3N0ZXJBY3Rpb25zXCJcclxuICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICBbc2VsZWN0ZWRGaWx0ZXJPcHRpb25zXT1cInJvbGVzXCJcclxuICAocmVtb3ZlRmlsdGVyZWRPcHRpb24pPVwib25GaWx0ZXJVc2Vyc0J5Um9sZXMoJGV2ZW50KVwiXHJcbiAgKGZpbHRlcmVkT3B0aW9ucyk9XCJvbkZpbHRlclVzZXJzQnlSb2xlcygkZXZlbnQpXCJcclxuICAoc2VhcmNoZWRWYWx1ZSk9XCJvblNlYXJjaEdyb3VwVXNlcnMoJGV2ZW50KVwiXHJcbiAgKGFkZFJvdyk9XCJvbkFkZE5ld1VzZXIoKVwiXHJcbj48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQnVzaW5lc3NSdWxlIHtcclxuICBhbGxvd1N1Ykdyb3VwOiBib29sZWFuO1xyXG4gIGFsbG93Um9zdGVyOiBib29sZWFuO1xyXG4gIHJvc3RlclR5cGU6IHN0cmluZztcclxuICBhbGxvd0FsdGVybmF0ZVZvdGluZzogYm9vbGVhbjtcclxuICBtYW5hZ2VSb3N0ZXJJbkFwcDogYm9vbGVhbjtcclxuICBhbGxvd2VkR3JvdXBUeXBlOiBzdHJpbmdbXTtcclxuICBpc0FkbWluPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcm91cFR5cGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsZWdlbmRDb2xvcjogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgYnVzaW5lc3NSdWxlOiBCdXNpbmVzc1J1bGU7XHJcbiAgaGllcmFyY2h5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBUeXBlQ29uZmlndXJhdGlvbiB7XHJcbiAgY29uZmlnRmllbGRJZDogc3RyaW5nO1xyXG4gIGNvbmZpZ0ZpZWxkVmFsdWU6IEdyb3VwVHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcm91cFR5cGVSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5OiBHcm91cFR5cGVDb25maWd1cmF0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBUeXBlQ29uZmlnVmFsdWUge1xyXG4gIFtrZXk6IHN0cmluZ106IEdyb3VwVHlwZTtcclxufVxyXG4iXX0=
|
|
@@ -325,6 +325,7 @@ export class GroupsService {
|
|
|
325
325
|
* @memberof GroupsService
|
|
326
326
|
*/
|
|
327
327
|
getGroupTypeUserRoles() {
|
|
328
|
+
this.groupTypeRoles?.map((option) => (option.checked = false));
|
|
328
329
|
return this.groupTypeRoles;
|
|
329
330
|
}
|
|
330
331
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsService, deps: [{ token: i1.HttpService }, { token: i1.AlertsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -336,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
|
|
|
336
337
|
providedIn: 'root',
|
|
337
338
|
}]
|
|
338
339
|
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i1.AlertsService }]; } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9zZXJ2aWNlcy9ncm91cHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxHQUFHLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVlwRSxPQUFPLEtBQUssV0FBVyxNQUFNLDBCQUEwQixDQUFDO0FBWXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFReEU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFheEIsNkRBQTZEO0lBQzdEO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNuQyxZQUEyQixDQUFDLDZDQUE2Qzs7UUFGeEUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFekIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFqQnBDLGVBQVUsR0FBRyxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBT2pDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUNyQyxpQkFBaUIsQ0FBQyxXQUFXLENBQzlCLENBQUM7UUFFRixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU9wQixDQUFDO0lBQ0osOERBQThEO0lBQzlELFlBQVksQ0FBQyxVQUFrQixFQUFFLGNBQW1CO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsOERBQThEO0lBQzlELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDRCQUE0QixDQUFDO2FBQ3ZELElBQUksQ0FD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O1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDOzhHQXJaVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBjYXRjaEVycm9yLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVHcm91cFBheWxvYWQsXHJcbiAgQ3JlYXRlR3JvdXBSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvY3JlYXRlLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBHcm91cFR5cGVDb25maWd1cmF0aW9uLFxyXG4gIEdyb3VwVHlwZUNvbmZpZ1ZhbHVlLFxyXG4gIEdyb3VwVHlwZVJlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEFsZXJ0c1NlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IEdldEdyb3VwUmVzcG9uc2UsIEdldEdyb3Vwc1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IERlbGV0ZUdyb3VwUGF5bG9hZCB9IGZyb20gJy4uL21vZGVscy9kZWxldGUtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEluZm8gfSBmcm9tICcuLi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgU2VhcmNoVXNlcnNQYXlsb2FkLFxyXG4gIEZpbHRlclVzZXJzQnlSb2xlc1BheWxvYWQsXHJcbiAgR2V0R3JvdXBVc2Vyc1Jlc3BvbnNlLFxyXG4gIFVzZXIsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi4vbW9kZWxzL3JvbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEVkaXRHcm91cFBheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvZWRpdC1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEFkZE5ld1VzZXJQYXlsb2FkLFxyXG4gIEdldFVzZXJEZXRhaWxzUGF5bG9hZCxcclxuICBTZWFyY2hVc2VyQnlFbWFpbFJlc3BvbnNlLFxyXG4gIEdyb3VwVXNlckRldGFpbHNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvYWRkLW5ldy11c2VyLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBHcm91cHMgc2VydmljZSBpcyBhbiBhYnN0cmFjdCBsYXllciBhbmQgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGdyb3VwcyBSRVNUIEFQSSBjYWxscy5cclxuICogQGNsYXNzIEdyb3Vwc1NlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cHNTZXJ2aWNlIHtcclxuICBncm91cHNUZXh0ID0gc2NyZWVuVGV4dHM/LmVycm9ycztcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgdXNlclBlcm1pc3Npb246IGFueTtcclxuICBzZWxlY3RlZEdyb3VwSW5mbyE6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZDtcclxuICBncm91cEZ1bmN0aW9uVHlwZSE6IEdyb3VwRnVuY3Rpb25UeXBlO1xyXG4gIHNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvITogR3JvdXBJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIG9wZW5Nb2RhbE5vdGlmaWVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHcm91cEZ1bmN0aW9uVHlwZT4oXHJcbiAgICBHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUlxyXG4gICk7XHJcbiAgZ3JvdXBUeXBlUm9sZXMhOiBDaGVja2JveE9wdGlvbltdO1xyXG4gIGNhblNob3dNZXNzYWdlID0gZmFsc2U7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLCBuby11bnVzZWQtdmFyc1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXRBcHBDb25maWcoYXBpQmFzZVVybDogc3RyaW5nLCB1c2VyUGVybWlzc2lvbjogYW55KSB7XHJcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSBhcGlCYXNlVXJsO1xyXG4gICAgdGhpcy51c2VyUGVybWlzc2lvbiA9IHVzZXJQZXJtaXNzaW9uO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGFwcGxpY2F0aW9uIGdyb3VwIHR5cGVzIGZyb20gQVBJIGFuZCByZXR1cm5zIGl0IGFzIGFuIG9ic2VydmFibGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHcm91cFR5cGVSZXNwb25zZT59IC1JdCByZXR1cm5zIGdyb3VwIHR5cGVzIGlmIHN1Y2Nlc3MgZWxzZSBlcnJvci5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0R3JvdXBUeXBlcygpOiBPYnNlcnZhYmxlPEdyb3VwVHlwZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2dyb3VwX3R5cGVgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGFsbCB0aGUgZ3JvdXBzIGJhc2VkIG9uIHBhc3NlZCBncm91cCBJZCBhbmQgZ3JvdXAgdHlwZS5cclxuICAgKiBAcGFyYW0ge0dldEdyb3Vwc1BheWxvYWR9IGdldEdyb3Vwc1BheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldEdyb3VwUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBzKGdldEdyb3Vwc1BheWxvYWQ6IEdldEdyb3Vwc1BheWxvYWQpOiBPYnNlcnZhYmxlPEdldEdyb3VwUmVzcG9uc2U+IHtcclxuICAgIGxldCB1cmwgPSAncm9vdEdyb3Vwcyc7XHJcbiAgICBpZiAoZ2V0R3JvdXBzUGF5bG9hZC5ncm91cElkKVxyXG4gICAgICB1cmwgPSAnaW1tQ2hpbGRHcm91cHNCeUdyb3VwSWQvJyArIGdldEdyb3Vwc1BheWxvYWQuZ3JvdXBJZDtcclxuICAgIGVsc2UgaWYgKGdldEdyb3Vwc1BheWxvYWQuZ3JvdXBUeXBlSWQpXHJcbiAgICAgIHVybCA9ICdncm91cHNCeUdyb3VwVHlwZS8nICsgZ2V0R3JvdXBzUGF5bG9hZC5ncm91cFR5cGVJZDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzLyR7dXJsfWApLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIGdyb3VwIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbmZvcm1hdGlvblxyXG4gICAqIEBwYXJhbSB7Z3JvdXBJZH0gc3RyaW5nIC1ncm91cElkIG9mIHRoZSBncm91cCB3aGljaCBpcyB0byBiZSBkZWxldGVkXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPGFueT59IC1PYnNlcnZhYmxlIHJlcHJlc2VudGluZyB0aGUgZ3JvdXAgZGVsZXRpb24gcmVzcG9uc2VcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGVsZXRlR3JvdXAoZGVsZXRlR3JvdXBQYXlsb2FkOiBEZWxldGVHcm91cFBheWxvYWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvZGVsZXRlYCwgZGVsZXRlR3JvdXBQYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3N0cyBjcmVhdGUgZ3JvdXAgZm9ybSBkYXRhIHRvIHNlcnZlciB1c2luZyBIdHRwU2VydmljZSBmb3IgY3JlYXRpbmcgbmV3IGdyb3VwLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlR3JvdXBQYXlsb2FkfSBjcmVhdGVHcm91cFBheWxvYWQgLWNyZWF0ZSBncm91cCBmb3JtIGRhdGEgd2hpY2ggaW5jbHVkZXMgZ3JvdXAgbmFtZSwgdHlwZSwgc2hvcnQgbmFtZSwgc2NvcGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDcmVhdGVHcm91cFJlc3BvbnNlPn0gLXJldHVybnMgY3JlYXRlIGdyb3VwIEFQSSByZXNwb25zZSAoc3VjY2VzcyBvciBlcnJvcikgYXMgYW4gb2JzZXJ2YWJsZS5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoXHJcbiAgICBjcmVhdGVHcm91cFBheWxvYWQ6IENyZWF0ZUdyb3VwUGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8Q3JlYXRlR3JvdXBSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2NyZWF0ZWAsIGNyZWF0ZUdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBncm91cCBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSB7RWRpdEdyb3VwUGF5bG9hZH0gZWRpdEdyb3VwUGF5bG9hZCAtZWRpdCBncm91cCBmb3JtIGRhdGEgd2hpY2ggaW5jbHVkZXMgZ3JvdXAgbmFtZSwgc2hvcnQgbmFtZSwgc2NvcGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFZGl0R3JvdXBQYXlsb2FkPn0gLXJldHVybnMgZWRpdCBncm91cCBBUEkgcmVzcG9uc2UgKHN1Y2Nlc3Mgb3IgZXJyb3IpIGFzIGFuIG9ic2VydmFibGUuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBlZGl0R3JvdXAoXHJcbiAgICBlZGl0R3JvdXBQYXlsb2FkOiBFZGl0R3JvdXBQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxDcmVhdGVHcm91cFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9lZGl0YCwgZWRpdEdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBwYXJzZSB0aGUgZXJyb3IgY29kZXMgYW5kIHJldHVybiB0aGUgcmVzcGVjdGl2ZSBlcnJvciBtZXNzYWdlIGZvciBlYWNoIGNvZGUuXHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gZXJyb3JDb2Rlc1xyXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdfSBlcnJvck1lc3NhZ2VcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yQ29kZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBlcnJvck1lc3NhZ2U6IHN0cmluZ1tdID0gW107XHJcbiAgICBlcnJvckNvZGVzPy5mb3JFYWNoKChpdGVtOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlS2V5ID0gZXJyb3JDb2Rlc1tpbmRleF0gYXMga2V5b2YgdHlwZW9mIHRoaXMuZ3JvdXBzVGV4dDtcclxuICAgICAgZXJyb3JNZXNzYWdlLnB1c2godGhpcy5ncm91cHNUZXh0W2Vycm9yTWVzc2FnZUtleV0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBzZWxlY3RlZCBncm91cCBpbmZvLlxyXG4gICAqIEBwYXJhbSB7KEdyb3VwSW5mbyB8IHVuZGVmaW5lZCl9IHNlbGVjdGVkR3JvdXBJbmZvIC1zZWxlY3RlZCBncm91cCBpbmZvLlxyXG4gICAqIEBwYXJhbSB7KEdyb3VwSW5mbyB8IHVuZGVmaW5lZCl9IFtzZWxlY3RlZEdyb3VwUGFyZW50SW5mb10gLXNlbGVjdGVkIHBhcmVudCBncm91cCBpbmZvLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRHcm91cEluZm8oXHJcbiAgICBzZWxlY3RlZEdyb3VwSW5mbzogR3JvdXBJbmZvIHwgdW5kZWZpbmVkLFxyXG4gICAgc2VsZWN0ZWRHcm91cFBhcmVudEluZm8/OiBHcm91cEluZm8gfCB1bmRlZmluZWRcclxuICApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEluZm8gPSBzZWxlY3RlZEdyb3VwSW5mbztcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBhcmVudEluZm8gPSBzZWxlY3RlZEdyb3VwUGFyZW50SW5mbztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHNlbGVjdGVkIGdyb3VwIGluZm8uXHJcbiAgICogQHJldHVybiB7KEdyb3VwSW5mbyB8IHVuZGVmaW5lZCl9IC1ncm91cCBpbmZvLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRHcm91cEluZm8oKTogR3JvdXBJbmZvIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgc2VsZWN0ZWQgZ3JvdXAgcGFyZW50IGdyb3VwIGluZm8uXHJcbiAgICogQHJldHVybiB7KEdyb3VwSW5mbyB8IHVuZGVmaW5lZCl9IC1ncm91cCBpbmZvLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRHcm91cFBhcmVudEluZm8oKTogR3JvdXBJbmZvIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBncm91cCBmdW5jdGlvbiB0eXBlLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBGdW5jdGlvblR5cGV9IGdyb3VwRnVuY3Rpb25UeXBlIC1ncm91cCBmdW5jdGlvbiB0eXBlLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0R3JvdXBGdW5jdGlvblR5cGUoZ3JvdXBGdW5jdGlvblR5cGU6IEdyb3VwRnVuY3Rpb25UeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID0gZ3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGdyb3VwIGZ1bmN0aW9uIHR5cGUuXHJcbiAgICogQHJldHVybiB7R3JvdXBGdW5jdGlvblR5cGV9IC1ncm91cCBmdW5jdGlvbiB0eXBlLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBGdW5jdGlvblR5cGUoKTogR3JvdXBGdW5jdGlvblR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCB1c2VycyBmb3IgdGhlIGdpdmVuIGdyb3VwIGlkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRHcm91cFVzZXJzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBVc2Vycyhncm91cElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdldEdyb3VwVXNlcnNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9zdGVyLyR7Z3JvdXBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCB1c2VycyBiYXNlZCBvbiB0aGUgZmlsdGVyZWQgcm9sZXMuXHJcbiAgICogQHBhcmFtIHtGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRHcm91cFVzZXJzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBVc2Vyc0J5Um9sZXMoXHJcbiAgICBwYXlsb2FkOiBGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHZXRHcm91cFVzZXJzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb3N0ZXIvZ3JvdXBVc2Vyc0J5Um9sZWAsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHVzZXJzIGJhc2VkIG9uIHNlYXJjaGVkIG5hbWUgb3IgZW1haWxcclxuICAgKiBAcGFyYW0ge1NlYXJjaFVzZXJzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0R3JvdXBVc2Vyc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHNlYXJjaEdyb3VwVXNlcnMoXHJcbiAgICBwYXlsb2FkOiBTZWFyY2hVc2Vyc1BheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPEdldEdyb3VwVXNlcnNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3Jvc3Rlci9ncm91cFVzZXJzQnlSb2xlQnlOYW1lQnlFbWFpbGAsXHJcbiAgICAgICAgcGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGdyb3VwIHJvbGVzIGJhc2VkIG9uIHRoZSBncm91cCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cFR5cGVJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2hlY2tib3hPcHRpb25bXT59XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVSb2xlcyhncm91cFR5cGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGVja2JveE9wdGlvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9jb25maWcvcm9sZXNCeUdyb3VwVHlwZS8ke2dyb3VwVHlwZUlkfWBcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByb2xlc09wdGlvbjogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LmZvckVhY2goKHJvbGU6IFJvbGUpID0+IHtcclxuICAgICAgICAgICAgcm9sZXNPcHRpb24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgaWQ6IHJvbGUucm9sZUlkLFxyXG4gICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRHcm91cFR5cGVVc2VyUm9sZXMocm9sZXNPcHRpb24pO1xyXG4gICAgICAgICAgcmV0dXJuIHJvbGVzT3B0aW9uO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uY2F0ZW5hdGVzIHRoZSBncm91cCB1c2VycyBhc3NpZ25lZCByb2xlcyBuYW1lIHNlcGFyYXRlZCBieSBjb21tYSBhcyBzdHJpbmcgYW5kIHJldHVybnMgdGhlIGdyb3VwIHVzZXJzIGluIGFuIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7R2V0R3JvdXBVc2Vyc1Jlc3BvbnNlfSByZXNwb25zZVxyXG4gICAqIEByZXR1cm4ge1VzZXJbXX1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybVVzZXJSb2xlc05hbWVBc1N0cmluZyhyZXNwb25zZTogR2V0R3JvdXBVc2Vyc1Jlc3BvbnNlKTogVXNlcltdIHtcclxuICAgIGNvbnN0IHVzZXJzOiBVc2VyW10gPSBbXTtcclxuICAgIHJlc3BvbnNlPy5ib2R5Py5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvbGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBpdGVtPy5yb2xlc0xpc3Q/LmZvckVhY2goKHJvbGUpID0+IHJvbGVzLnB1c2gocm9sZT8ucm9sZU5hbWUpKTtcclxuICAgICAgdXNlcnMucHVzaCh7XHJcbiAgICAgICAgdXNlcklkOiBpdGVtLnVzZXJJZCxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgZW1haWw6IGl0ZW0uZW1haWwsXHJcbiAgICAgICAgcm9sZTogcm9sZXMuam9pbignLCAnKSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1c2VycztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBmb3JtYXR0ZWQgZ3JvdXAgdHlwZXMuXHJcbiAgICogQHBhcmFtIHtHcm91cFR5cGVDb25maWd1cmF0aW9uW119IGdyb3VwVHlwZVJlc3BvbnNlXHJcbiAgICogQHJldHVybiB7R3JvdXBUeXBlQ29uZmlnVmFsdWV9XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRGb3JtYXR0ZWRHcm91cFR5cGVzKFxyXG4gICAgZ3JvdXBUeXBlUmVzcG9uc2U6IEdyb3VwVHlwZUNvbmZpZ3VyYXRpb25bXVxyXG4gICk6IEdyb3VwVHlwZUNvbmZpZ1ZhbHVlIHtcclxuICAgIGNvbnN0IGdyb3VwVHlwZXM6IEdyb3VwVHlwZUNvbmZpZ1ZhbHVlID0ge307XHJcbiAgICBncm91cFR5cGVSZXNwb25zZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGdyb3VwVHlwZXNbaXRlbS5jb25maWdGaWVsZElkXSA9IGl0ZW0uY29uZmlnRmllbGRWYWx1ZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwVHlwZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGdyb3VwIHVzZXIgZGV0YWlscyBpZiBlbWFpbCBpcyBmb3VuZCwgZWxzZSB0aHJvd3MgZXJyb3IuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTZWFyY2hVc2VyQnlFbWFpbFJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFVzZXJCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlYXJjaFVzZXJCeUVtYWlsUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3VzZXJzL3VzZXJCeUVtYWlsLyR7ZW1haWx9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdXNlciBkZXRhaWxzIGZvciB0aGUgc2VsZWN0ZWQgZ3JvdXBcclxuICAgKiBAcGFyYW0ge0dldFVzZXJEZXRhaWxzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R3JvdXBVc2VyRGV0YWlsc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwVXNlckRldGFpbHMoXHJcbiAgICBwYXlsb2FkOiBHZXRVc2VyRGV0YWlsc1BheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPEdyb3VwVXNlckRldGFpbHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3Jvc3Rlci91c2VyRGV0YWlsc2AsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIGFkZCBuZXcgdXNlciBmb3JtIGRhdGEgdG8gdGhlIEFQSSBmb3IgdGhlIHNlbGVjdGVkIGdyb3VwIGFuZCByZXR1cm5zIHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHtBZGROZXdVc2VyUGF5bG9hZH0gYWRkTmV3VXNlclBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdyb3VwVXNlckRldGFpbHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBhZGROZXdHcm91cFVzZXIoXHJcbiAgICBhZGROZXdVc2VyUGF5bG9hZDogQWRkTmV3VXNlclBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPEdyb3VwVXNlckRldGFpbHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3Jvc3Rlci9jcmVhdGVHcm91cFVzZXJSb2xlYCxcclxuICAgICAgICBhZGROZXdVc2VyUGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGxvYWRlZCBncm91cCB0eXBlIHVzZXIgcm9sZXNcclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IHVzZXJSb2xlc1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0R3JvdXBUeXBlVXNlclJvbGVzKHVzZXJSb2xlczogQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cFR5cGVSb2xlcyA9IHVzZXJSb2xlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGdyb3VwIHR5cGUgdXNlciByb2xlcy5cclxuICAgKiBAcmV0dXJuIHtDaGVja2JveE9wdGlvbltdfVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlVXNlclJvbGVzKCk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBUeXBlUm9sZXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9zZXJ2aWNlcy9ncm91cHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxHQUFHLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVlwRSxPQUFPLEtBQUssV0FBVyxNQUFNLDBCQUEwQixDQUFDO0FBWXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFReEU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFheEIsNkRBQTZEO0lBQzdEO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNuQyxZQUEyQixDQUFDLDZDQUE2Qzs7UUFGeEUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFekIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFqQnBDLGVBQVUsR0FBRyxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBT2pDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUNyQyxpQkFBaUIsQ0FBQyxXQUFXLENBQzlCLENBQUM7UUFFRixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU9wQixDQUFDO0lBQ0osOERBQThEO0lBQzlELFlBQVksQ0FBQyxVQUFrQixFQUFFLGNBQW1CO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsOERBQThEO0lBQzlELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDRCQUE0QixDQUFDO2FBQ3ZELElBQUksQ0FD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O1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzs4R0F0WlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCwgY2F0Y2hFcnJvciwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlR3JvdXBQYXlsb2FkLFxyXG4gIENyZWF0ZUdyb3VwUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2NyZWF0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgR3JvdXBUeXBlQ29uZmlndXJhdGlvbixcclxuICBHcm91cFR5cGVDb25maWdWYWx1ZSxcclxuICBHcm91cFR5cGVSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBBbGVydHNTZXJ2aWNlLCBIdHRwU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBHZXRHcm91cFJlc3BvbnNlLCBHZXRHcm91cHNQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL3ZpZXctZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBzY3JlZW5UZXh0cyBmcm9tICcuLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBEZWxldGVHcm91cFBheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvZGVsZXRlLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFVzZXJzUGF5bG9hZCxcclxuICBGaWx0ZXJVc2Vyc0J5Um9sZXNQYXlsb2FkLFxyXG4gIEdldEdyb3VwVXNlcnNSZXNwb25zZSxcclxuICBVc2VyLFxyXG59IGZyb20gJy4uL21vZGVscy91c2VyLm1vZGVsJztcclxuaW1wb3J0IHsgUm9sZSB9IGZyb20gJy4uL21vZGVscy9yb2xlLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24gfSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBFZGl0R3JvdXBQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBBZGROZXdVc2VyUGF5bG9hZCxcclxuICBHZXRVc2VyRGV0YWlsc1BheWxvYWQsXHJcbiAgU2VhcmNoVXNlckJ5RW1haWxSZXNwb25zZSxcclxuICBHcm91cFVzZXJEZXRhaWxzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2FkZC1uZXctdXNlci5tb2RlbCc7XHJcblxyXG4vKipcclxuICogR3JvdXBzIHNlcnZpY2UgaXMgYW4gYWJzdHJhY3QgbGF5ZXIgYW5kIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBncm91cHMgUkVTVCBBUEkgY2FsbHMuXHJcbiAqIEBjbGFzcyBHcm91cHNTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JvdXBzU2VydmljZSB7XHJcbiAgZ3JvdXBzVGV4dCA9IHNjcmVlblRleHRzPy5lcnJvcnM7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHVzZXJQZXJtaXNzaW9uOiBhbnk7XHJcbiAgc2VsZWN0ZWRHcm91cEluZm8hOiBHcm91cEluZm8gfCB1bmRlZmluZWQ7XHJcbiAgZ3JvdXBGdW5jdGlvblR5cGUhOiBHcm91cEZ1bmN0aW9uVHlwZTtcclxuICBzZWxlY3RlZEdyb3VwUGFyZW50SW5mbyE6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZDtcclxuICBvcGVuTW9kYWxOb3RpZmllciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R3JvdXBGdW5jdGlvblR5cGU+KFxyXG4gICAgR3JvdXBGdW5jdGlvblR5cGUuVklFV19ST1NURVJcclxuICApO1xyXG4gIGdyb3VwVHlwZVJvbGVzITogQ2hlY2tib3hPcHRpb25bXTtcclxuICBjYW5TaG93TWVzc2FnZSA9IGZhbHNlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvbiwgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2V0QXBwQ29uZmlnKGFwaUJhc2VVcmw6IHN0cmluZywgdXNlclBlcm1pc3Npb246IGFueSkge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICAgIHRoaXMudXNlclBlcm1pc3Npb24gPSB1c2VyUGVybWlzc2lvbjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBhcHBsaWNhdGlvbiBncm91cCB0eXBlcyBmcm9tIEFQSSBhbmQgcmV0dXJucyBpdCBhcyBhbiBvYnNlcnZhYmxlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R3JvdXBUeXBlUmVzcG9uc2U+fSAtSXQgcmV0dXJucyBncm91cCB0eXBlcyBpZiBzdWNjZXNzIGVsc2UgZXJyb3IuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldEdyb3VwVHlwZXMoKTogT2JzZXJ2YWJsZTxHcm91cFR5cGVSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9ncm91cF90eXBlYClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhbGwgdGhlIGdyb3VwcyBiYXNlZCBvbiBwYXNzZWQgZ3JvdXAgSWQgYW5kIGdyb3VwIHR5cGUuXHJcbiAgICogQHBhcmFtIHtHZXRHcm91cHNQYXlsb2FkfSBnZXRHcm91cHNQYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRHcm91cFJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwcyhnZXRHcm91cHNQYXlsb2FkOiBHZXRHcm91cHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxHZXRHcm91cFJlc3BvbnNlPiB7XHJcbiAgICBsZXQgdXJsID0gJ3Jvb3RHcm91cHMnO1xyXG4gICAgaWYgKGdldEdyb3Vwc1BheWxvYWQuZ3JvdXBJZClcclxuICAgICAgdXJsID0gJ2ltbUNoaWxkR3JvdXBzQnlHcm91cElkLycgKyBnZXRHcm91cHNQYXlsb2FkLmdyb3VwSWQ7XHJcbiAgICBlbHNlIGlmIChnZXRHcm91cHNQYXlsb2FkLmdyb3VwVHlwZUlkKVxyXG4gICAgICB1cmwgPSAnZ3JvdXBzQnlHcm91cFR5cGUvJyArIGdldEdyb3Vwc1BheWxvYWQuZ3JvdXBUeXBlSWQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy8ke3VybH1gKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBncm91cCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb25cclxuICAgKiBAcGFyYW0ge2dyb3VwSWR9IHN0cmluZyAtZ3JvdXBJZCBvZiB0aGUgZ3JvdXAgd2hpY2ggaXMgdG8gYmUgZGVsZXRlZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxhbnk+fSAtT2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgdGhlIGdyb3VwIGRlbGV0aW9uIHJlc3BvbnNlXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRlbGV0ZUdyb3VwKGRlbGV0ZUdyb3VwUGF5bG9hZDogRGVsZXRlR3JvdXBQYXlsb2FkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2RlbGV0ZWAsIGRlbGV0ZUdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUG9zdHMgY3JlYXRlIGdyb3VwIGZvcm0gZGF0YSB0byBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UgZm9yIGNyZWF0aW5nIG5ldyBncm91cC5cclxuICAgKiBAcGFyYW0ge0NyZWF0ZUdyb3VwUGF5bG9hZH0gY3JlYXRlR3JvdXBQYXlsb2FkIC1jcmVhdGUgZ3JvdXAgZm9ybSBkYXRhIHdoaWNoIGluY2x1ZGVzIGdyb3VwIG5hbWUsIHR5cGUsIHNob3J0IG5hbWUsIHNjb3BlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlR3JvdXBSZXNwb25zZT59IC1yZXR1cm5zIGNyZWF0ZSBncm91cCBBUEkgcmVzcG9uc2UgKHN1Y2Nlc3Mgb3IgZXJyb3IpIGFzIGFuIG9ic2VydmFibGUuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUdyb3VwKFxyXG4gICAgY3JlYXRlR3JvdXBQYXlsb2FkOiBDcmVhdGVHcm91cFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZUdyb3VwUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9jcmVhdGVgLCBjcmVhdGVHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgZ3JvdXAgZm9ybSBkYXRhIHRvIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcGFyYW0ge0VkaXRHcm91cFBheWxvYWR9IGVkaXRHcm91cFBheWxvYWQgLWVkaXQgZ3JvdXAgZm9ybSBkYXRhIHdoaWNoIGluY2x1ZGVzIGdyb3VwIG5hbWUsIHNob3J0IG5hbWUsIHNjb3BlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RWRpdEdyb3VwUGF5bG9hZD59IC1yZXR1cm5zIGVkaXQgZ3JvdXAgQVBJIHJlc3BvbnNlIChzdWNjZXNzIG9yIGVycm9yKSBhcyBhbiBvYnNlcnZhYmxlLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZWRpdEdyb3VwKFxyXG4gICAgZWRpdEdyb3VwUGF5bG9hZDogRWRpdEdyb3VwUGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8Q3JlYXRlR3JvdXBSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvZWRpdGAsIGVkaXRHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgcGFyc2UgdGhlIGVycm9yIGNvZGVzIGFuZCByZXR1cm4gdGhlIHJlc3BlY3RpdmUgZXJyb3IgbWVzc2FnZSBmb3IgZWFjaCBjb2RlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGVycm9yQ29kZXNcclxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gZXJyb3JNZXNzYWdlXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBwYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZXJyb3JDb2Rlcz8uZm9yRWFjaCgoaXRlbTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZUtleSA9IGVycm9yQ29kZXNbaW5kZXhdIGFzIGtleW9mIHR5cGVvZiB0aGlzLmdyb3Vwc1RleHQ7XHJcbiAgICAgIGVycm9yTWVzc2FnZS5wdXNoKHRoaXMuZ3JvdXBzVGV4dFtlcnJvck1lc3NhZ2VLZXldKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VsZWN0ZWQgZ3JvdXAgaW5mby5cclxuICAgKiBAcGFyYW0geyhHcm91cEluZm8gfCB1bmRlZmluZWQpfSBzZWxlY3RlZEdyb3VwSW5mbyAtc2VsZWN0ZWQgZ3JvdXAgaW5mby5cclxuICAgKiBAcGFyYW0geyhHcm91cEluZm8gfCB1bmRlZmluZWQpfSBbc2VsZWN0ZWRHcm91cFBhcmVudEluZm9dIC1zZWxlY3RlZCBwYXJlbnQgZ3JvdXAgaW5mby5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHNldFNlbGVjdGVkR3JvdXBJbmZvKFxyXG4gICAgc2VsZWN0ZWRHcm91cEluZm86IEdyb3VwSW5mbyB8IHVuZGVmaW5lZCxcclxuICAgIHNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvPzogR3JvdXBJbmZvIHwgdW5kZWZpbmVkXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvID0gc2VsZWN0ZWRHcm91cEluZm87XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvID0gc2VsZWN0ZWRHcm91cFBhcmVudEluZm87XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBzZWxlY3RlZCBncm91cCBpbmZvLlxyXG4gICAqIEByZXR1cm4geyhHcm91cEluZm8gfCB1bmRlZmluZWQpfSAtZ3JvdXAgaW5mby5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkR3JvdXBJbmZvKCk6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEdyb3VwSW5mbztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHNlbGVjdGVkIGdyb3VwIHBhcmVudCBncm91cCBpbmZvLlxyXG4gICAqIEByZXR1cm4geyhHcm91cEluZm8gfCB1bmRlZmluZWQpfSAtZ3JvdXAgaW5mby5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvKCk6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEdyb3VwUGFyZW50SW5mbztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgZ3JvdXAgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcGFyYW0ge0dyb3VwRnVuY3Rpb25UeXBlfSBncm91cEZ1bmN0aW9uVHlwZSAtZ3JvdXAgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEdyb3VwRnVuY3Rpb25UeXBlKGdyb3VwRnVuY3Rpb25UeXBlOiBHcm91cEZ1bmN0aW9uVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9IGdyb3VwRnVuY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBncm91cCBmdW5jdGlvbiB0eXBlLlxyXG4gICAqIEByZXR1cm4ge0dyb3VwRnVuY3Rpb25UeXBlfSAtZ3JvdXAgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwRnVuY3Rpb25UeXBlKCk6IEdyb3VwRnVuY3Rpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgZm9yIHRoZSBnaXZlbiBncm91cCBpZC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0R3JvdXBVc2Vyc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwVXNlcnMoZ3JvdXBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxHZXRHcm91cFVzZXJzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3Jvc3Rlci8ke2dyb3VwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZ3JvdXAgdXNlcnMgYmFzZWQgb24gdGhlIGZpbHRlcmVkIHJvbGVzLlxyXG4gICAqIEBwYXJhbSB7RmlsdGVyVXNlcnNCeVJvbGVzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0R3JvdXBVc2Vyc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwVXNlcnNCeVJvbGVzKFxyXG4gICAgcGF5bG9hZDogRmlsdGVyVXNlcnNCeVJvbGVzUGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8R2V0R3JvdXBVc2Vyc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9zdGVyL2dyb3VwVXNlcnNCeVJvbGVgLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCB1c2VycyBiYXNlZCBvbiBzZWFyY2hlZCBuYW1lIG9yIGVtYWlsXHJcbiAgICogQHBhcmFtIHtTZWFyY2hVc2Vyc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldEdyb3VwVXNlcnNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBzZWFyY2hHcm91cFVzZXJzKFxyXG4gICAgcGF5bG9hZDogU2VhcmNoVXNlcnNQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHZXRHcm91cFVzZXJzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb3N0ZXIvZ3JvdXBVc2Vyc0J5Um9sZUJ5TmFtZUJ5RW1haWxgLFxyXG4gICAgICAgIHBheWxvYWRcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBncm91cCByb2xlcyBiYXNlZCBvbiB0aGUgZ3JvdXAgdHlwZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBUeXBlSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENoZWNrYm94T3B0aW9uW10+fVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlUm9sZXMoZ3JvdXBUeXBlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2hlY2tib3hPcHRpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvY29uZmlnL3JvbGVzQnlHcm91cFR5cGUvJHtncm91cFR5cGVJZH1gXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgcm9sZXNPcHRpb246IENoZWNrYm94T3B0aW9uW10gPSBbXTtcclxuICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5mb3JFYWNoKChyb2xlOiBSb2xlKSA9PiB7XHJcbiAgICAgICAgICAgIHJvbGVzT3B0aW9uLnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiByb2xlLnJvbGVJZCxcclxuICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2V0R3JvdXBUeXBlVXNlclJvbGVzKHJvbGVzT3B0aW9uKTtcclxuICAgICAgICAgIHJldHVybiByb2xlc09wdGlvbjtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmNhdGVuYXRlcyB0aGUgZ3JvdXAgdXNlcnMgYXNzaWduZWQgcm9sZXMgbmFtZSBzZXBhcmF0ZWQgYnkgY29tbWEgYXMgc3RyaW5nIGFuZCByZXR1cm5zIHRoZSBncm91cCB1c2VycyBpbiBhbiBhcnJheS5cclxuICAgKiBAcGFyYW0ge0dldEdyb3VwVXNlcnNSZXNwb25zZX0gcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHtVc2VyW119XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICB0cmFuc2Zvcm1Vc2VyUm9sZXNOYW1lQXNTdHJpbmcocmVzcG9uc2U6IEdldEdyb3VwVXNlcnNSZXNwb25zZSk6IFVzZXJbXSB7XHJcbiAgICBjb25zdCB1c2VyczogVXNlcltdID0gW107XHJcbiAgICByZXNwb25zZT8uYm9keT8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCByb2xlczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgaXRlbT8ucm9sZXNMaXN0Py5mb3JFYWNoKChyb2xlKSA9PiByb2xlcy5wdXNoKHJvbGU/LnJvbGVOYW1lKSk7XHJcbiAgICAgIHVzZXJzLnB1c2goe1xyXG4gICAgICAgIHVzZXJJZDogaXRlbS51c2VySWQsXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgIGVtYWlsOiBpdGVtLmVtYWlsLFxyXG4gICAgICAgIHJvbGU6IHJvbGVzLmpvaW4oJywgJyksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdXNlcnM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgZm9ybWF0dGVkIGdyb3VwIHR5cGVzLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBUeXBlQ29uZmlndXJhdGlvbltdfSBncm91cFR5cGVSZXNwb25zZVxyXG4gICAqIEByZXR1cm4ge0dyb3VwVHlwZUNvbmZpZ1ZhbHVlfVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Rm9ybWF0dGVkR3JvdXBUeXBlcyhcclxuICAgIGdyb3VwVHlwZVJlc3BvbnNlOiBHcm91cFR5cGVDb25maWd1cmF0aW9uW11cclxuICApOiBHcm91cFR5cGVDb25maWdWYWx1ZSB7XHJcbiAgICBjb25zdCBncm91cFR5cGVzOiBHcm91cFR5cGVDb25maWdWYWx1ZSA9IHt9O1xyXG4gICAgZ3JvdXBUeXBlUmVzcG9uc2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBncm91cFR5cGVzW2l0ZW0uY29uZmlnRmllbGRJZF0gPSBpdGVtLmNvbmZpZ0ZpZWxkVmFsdWU7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBncm91cFR5cGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBncm91cCB1c2VyIGRldGFpbHMgaWYgZW1haWwgaXMgZm91bmQsIGVsc2UgdGhyb3dzIGVycm9yLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBlbWFpbFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2VhcmNoVXNlckJ5RW1haWxSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRVc2VyQnlFbWFpbChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWFyY2hVc2VyQnlFbWFpbFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy91c2Vycy91c2VyQnlFbWFpbC8ke2VtYWlsfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVzZXIgZGV0YWlscyBmb3IgdGhlIHNlbGVjdGVkIGdyb3VwXHJcbiAgICogQHBhcmFtIHtHZXRVc2VyRGV0YWlsc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdyb3VwVXNlckRldGFpbHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRHcm91cFVzZXJEZXRhaWxzKFxyXG4gICAgcGF5bG9hZDogR2V0VXNlckRldGFpbHNQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHcm91cFVzZXJEZXRhaWxzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb3N0ZXIvdXNlckRldGFpbHNgLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3N0cyBhZGQgbmV3IHVzZXIgZm9ybSBkYXRhIHRvIHRoZSBBUEkgZm9yIHRoZSBzZWxlY3RlZCBncm91cCBhbmQgcmV0dXJucyB0aGUgc3VjY2VzcyBvciBmYWlsdXJlIHJlc3BvbnNlLlxyXG4gICAqIEBwYXJhbSB7QWRkTmV3VXNlclBheWxvYWR9IGFkZE5ld1VzZXJQYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHcm91cFVzZXJEZXRhaWxzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNTZXJ2aWNlXHJcbiAgICovXHJcbiAgYWRkTmV3R3JvdXBVc2VyKFxyXG4gICAgYWRkTmV3VXNlclBheWxvYWQ6IEFkZE5ld1VzZXJQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHcm91cFVzZXJEZXRhaWxzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb3N0ZXIvY3JlYXRlR3JvdXBVc2VyUm9sZWAsXHJcbiAgICAgICAgYWRkTmV3VXNlclBheWxvYWRcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBsb2FkZWQgZ3JvdXAgdHlwZSB1c2VyIHJvbGVzXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbltdfSB1c2VyUm9sZXNcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEdyb3VwVHlwZVVzZXJSb2xlcyh1c2VyUm9sZXM6IENoZWNrYm94T3B0aW9uW10pOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBUeXBlUm9sZXMgPSB1c2VyUm9sZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBncm91cCB0eXBlIHVzZXIgcm9sZXMuXHJcbiAgICogQHJldHVybiB7Q2hlY2tib3hPcHRpb25bXX1cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEdyb3VwVHlwZVVzZXJSb2xlcygpOiBDaGVja2JveE9wdGlvbltdIHtcclxuICAgIHRoaXMuZ3JvdXBUeXBlUm9sZXM/Lm1hcCgob3B0aW9uKSA9PiAob3B0aW9uLmNoZWNrZWQgPSBmYWxzZSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBUeXBlUm9sZXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|