@ieeesa-npm/groups 0.13.2 → 0.13.4

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.
@@ -503,11 +503,11 @@ export class CreateGroupComponent {
503
503
  this.destroy$.unsubscribe();
504
504
  }
505
505
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateGroupComponent, deps: [{ token: i1.GroupsService }, { token: i2.GlobalErrorHandlerService }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
506
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateGroupComponent, isStandalone: true, selector: "ieeesa-create-group", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;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.813rem;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.9375rem;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.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;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.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;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.5rem;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.5rem;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.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;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:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;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.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;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.5rem;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:1rem;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:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;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:#6750a41f}.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:#6750a414}.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:1rem;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:1rem;border:1px solid #cac4d0;background:#fff;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:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize{resize:auto}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important;margin:0 1em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateGroupComponent, isStandalone: true, selector: "ieeesa-create-group", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;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.813rem;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.9375rem;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.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;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.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;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.5rem;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.5rem;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.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;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:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;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.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;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.5rem;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:1rem;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:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;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:#6750a41f}.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:#6750a414}.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:1rem;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:1rem;border:1px solid #cac4d0;background:#fff;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:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize{resize:auto}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important;margin:0 1em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
507
507
  }
508
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateGroupComponent, decorators: [{
509
509
  type: Component,
510
- args: [{ selector: 'ieeesa-create-group', standalone: true, imports: [CommonModule, DynamicFormComponent, MatDialogModule], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;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.813rem;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.9375rem;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.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;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.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;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.5rem;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.5rem;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.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;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:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;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.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;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.5rem;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:1rem;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:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;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:#6750a41f}.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:#6750a414}.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:1rem;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:1rem;border:1px solid #cac4d0;background:#fff;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:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize{resize:auto}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important;margin:0 1em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"] }]
510
+ args: [{ selector: 'ieeesa-create-group', standalone: true, imports: [CommonModule, DynamicFormComponent, MatDialogModule], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;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.813rem;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.9375rem;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.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;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.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;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.5rem;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.5rem;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.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;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:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;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.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;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.5rem;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:1rem;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:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;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:#6750a41f}.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:#6750a414}.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:1rem;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:1rem;border:1px solid #cac4d0;background:#fff;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:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .ieeesa-text-area-field__resize{resize:auto}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important;margin:0 1em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"] }]
511
511
  }], ctorParameters: function () { return [{ type: i1.GroupsService }, { type: i2.GlobalErrorHandlerService }, { type: i2.AlertsService }]; }, propDecorators: { submitFormResponse: [{
512
512
  type: Output
513
513
  }], formCancel: [{
@@ -516,4 +516,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
516
516
  type: ViewChild,
517
517
  args: [DynamicFormComponent]
518
518
  }] } });
519
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBSUwsU0FBUyxFQUdULGVBQWUsRUFDZixvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsR0FFVixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFFM0UsTUFB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Q0FBRSxlQUFlOzs0RkFNbEQsb0JBQW9CO2tCQVZoQyxTQUFTOytCQUVFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLGlCQUcvQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsYUFBYSxDQUFDO3dLQVFoQixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkF3QjBCLG9CQUFvQjtzQkFBcEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyaWQsXHJcbiAgRm9ybU1vZGVsLFxyXG4gIFNlbGVjdE9wdGlvbixcclxuICBBbGlnblR5cGUsXHJcbiAgU2xpZGVUb2dnbGVPcHRpb24sXHJcbiAgRmllbGRDb25maWcsXHJcbiAgRm9ybUNvbnRyb2xUeXBlLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBBbGVydFR5cGUsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2Zvcm0tdmFsaWRhdGlvbnMnO1xyXG5pbXBvcnQgeyBDcmVhdGVHcm91cFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvY3JlYXRlLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcm91cFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IEVkaXRHcm91cFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRpdC1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1TdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zdGF0dXMubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgUGFyZW50R3JvdXBzSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9wYXJlbnQtZ3JvdXBzLWluZm8ubW9kZWwnO1xyXG5jb25zdCBJTkRFWF9WQUxVRSA9IDQ7XHJcblxyXG4vKipcclxuICogQ3JlYXRlR3JvdXBDb21wb25lbnQgdXNlcyBEeW5hbWljRm9ybUNvbXBvbmVudCB0byBidWlsZCBjcmVhdGUgbmV3IGdyb3VwIGZvcm0gb3IgZWRpdCBncm91cCBhbmQgaW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXRpZXMgb2Ygc3VibWlzc2lvbiBvZiBmb3JtIGFuZCBoYW5kbGluZyBzdWNjZXNzIGFuZCBlcnJvciBzY2VuYXJpb3MuXHJcbiAqIEBjbGFzcyBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1jcmVhdGUtZ3JvdXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHluYW1pY0Zvcm1Db21wb25lbnQsIE1hdERpYWxvZ01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3VibWl0Rm9ybVJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBjYW5jZWxsZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY3JlYXRlR3JvdXBUZXh0ID0gc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICBsZWZ0QnV0dG9uTGFiZWwgPSB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5yaWdodEJ1dHRvbkxhYmVsO1xyXG4gIGlzTGVnZW5kVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGlzTGVmdEJ1dHRvbk5lZWRlZCA9IHRydWU7XHJcbiAgY29sV2lkdGg6IEZvcm1HcmlkID0geyB4czogMTIsIHhsOiAxMiwgc206IDEyLCBtZDogMTIsIGxnOiAxMiB9O1xyXG4gIGZvcm1Hcm91cCE6IEZvcm1Nb2RlbDtcclxuICBncm91cFR5cGVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgYWN0aW9uQnV0dG9uQWxpZ24gPSBBbGlnblR5cGUuTEVGVDtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkR3JvdXBJbmZvITogR3JvdXBJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIGdyb3VwRnVuY3Rpb25UeXBlITogR3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgc2VsZWN0ZWRHcm91cFBhcmVudEluZm8hOiBHcm91cEluZm8gfCB1bmRlZmluZWQ7XHJcbiAgYWxsb3dlZFBhcmVudEdyb3VwczogUGFyZW50R3JvdXBzSW5mb1tdID0gW107XHJcbiAgYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgaXNQYXJlbnRHcm91cENoYW5nZWQgPSBmYWxzZTtcclxuICBzbGlkZVRvZ2dsZU9wdGlvbjogU2xpZGVUb2dnbGVPcHRpb24gPSB7XHJcbiAgICBpZDogMSxcclxuICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmNoYW5nZVBhcmVudEdyb3VwLFxyXG4gICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgfTtcclxuICBAVmlld0NoaWxkKER5bmFtaWNGb3JtQ29tcG9uZW50KSBkeW5hbWljRm9ybUNvbXBvbmVudCE6IER5bmFtaWNGb3JtQ29tcG9uZW50O1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY3JlYXRlIGdyb3VwIGZvcm0gZ3JvdXAgYXJyYXkgYW5kIGNvbXBvbmVudC5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEdyb3VwRnVuY3Rpb25UeXBlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZEdyb3VwSW5mbygpO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwUGFyZW50SW5mbyA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZEdyb3VwUGFyZW50SW5mbygpO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBQYXJlbnRJZClcclxuICAgICAgICB0aGlzLmdldFBhcmVudEdyb3Vwcyh0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkKTtcclxuICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGdyb3VwVHlwZXMgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEZvcm1hdHRlZEdyb3VwVHlwZXMoXHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRMb2FkZWRHcm91cFR5cGVzKClcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwVHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGFsbG93ZWRHcm91cFR5cGUgPVxyXG4gICAgICAgICAgZ3JvdXBUeXBlc1t0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFR5cGVdPy5idXNpbmVzc1J1bGVcclxuICAgICAgICAgICAgPy5hbGxvd2VkR3JvdXBUeXBlO1xyXG4gICAgICAgIGlmIChhbGxvd2VkR3JvdXBUeXBlPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBUeXBlcyA9IGFsbG93ZWRHcm91cFR5cGUubWFwKChncm91cFR5cGVJZDogc3RyaW5nKSA9PiAoe1xyXG4gICAgICAgICAgICBpZDogZ3JvdXBUeXBlSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGdyb3VwVHlwZXNbZ3JvdXBUeXBlSWRdPy5uYW1lLFxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cFR5cGVzLmZpbHRlcihcclxuICAgICAgICAgICAgKGdyb3VwVHlwZSkgPT4gIWdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uYnVzaW5lc3NSdWxlPy5pc0FkbWluXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2Uoc2NyZWVuVGV4dHM/LmVycm9ycz8uRVIxMDAwLCBBbGVydFR5cGUuRVJST1IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSBPYmplY3QuZW50cmllcyhncm91cFR5cGVzKS5tYXAoXHJcbiAgICAgICAgICAoW2lkLCBpdGVtXTogW3N0cmluZywgR3JvdXBUeXBlXSkgPT4gKHtcclxuICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0/Lm5hbWUsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cFR5cGVzLmZpbHRlcihcclxuICAgICAgICAgIChncm91cFR5cGUpID0+XHJcbiAgICAgICAgICAgIGdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uaGllcmFyY2h5ID09PSAwICYmXHJcbiAgICAgICAgICAgICFncm91cFR5cGVzW2dyb3VwVHlwZS5pZF0/LmJ1c2luZXNzUnVsZT8uaXNBZG1pblxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ3JvdXBUeXBlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2Uoc2NyZWVuVGV4dHM/LmVycm9ycz8uWycxMDEwJ10sIEFsZXJ0VHlwZS5FUlJPUik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgdGhlIGdyb3VwIHR5cGUgZm9ybSBmaWVsZCBiYXNlZCBvbiBlZGl0IGdyb3VwIG9yIG5vdC5cclxuICAgKiBAcmV0dXJuIHtGaWVsZENvbmZpZ30gLWdyb3VwIHR5cGUgZm9ybSBmaWVsZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVGaWVsZCgpOiBGaWVsZENvbmZpZyB7XHJcbiAgICBsZXQgZ3JvdXBUeXBlRmllbGQ6IEZpZWxkQ29uZmlnO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgZ3JvdXBUeXBlRmllbGQgPSB7XHJcbiAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiAnZ3JvdXBUeXBlJyxcclxuICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFR5cGVJbmZvPy5uYW1lLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmVkaXRHcm91cD8uYXJpYUxhYmVsPy5ncm91cFR5cGUsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ncm91cFR5cGUsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBncm91cFR5cGVGaWVsZCA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cFR5cGUgKyAnKicsXHJcbiAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFR5cGUnLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmdyb3VwVHlwZXMsXHJcbiAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwVHlwZSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXBUeXBlRmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBjcmVhdGUgZ3JvdXAgZm9ybSBncm91cCBhcnJheS5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUZvcm1Hcm91cChmb3JtVmFsdWU/OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0ge1xyXG4gICAgICBmb3JtR3JvdXA6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6ICcnLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cFR5cGVGaWVsZCgpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1WYWx1ZT8uZ3JvdXBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cE5hbWVcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjUwMFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihHcm91cHNWYWxpZGF0aW9uUGF0dGVybnM/Lmdyb3VwTmFtZSksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5ncm91cE5hbWUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5zaG9ydE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdzaG9ydE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1WYWx1ZT8uc2hvcnROYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFNob3J0TmFtZVxyXG4gICAgICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChcclxuICAgICAgICAgICAgICAgICAgc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwPy5jaGFyYWN0ZXJMaW1pdD8uY2hhcmFjdGVyMTVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5zaG9ydE5hbWUpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2dyb3VwU2NvcGUnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgICAgICAgID8gZm9ybVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWU/Lmdyb3VwU2NvcGVcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwRGVzY1xyXG4gICAgICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5jcmVhdGVHcm91cFRleHQ/LnN1cHBvcnRUZXh0Py5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIG1heExlbmd0aDpcclxuICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjIwMDAsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjE1MDBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5ncm91cFNjb3BlKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDcmVhdGVGb3JtR3JvdXAodGhpcy5zZWxlY3RlZEdyb3VwSW5mbyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGNyZWF0ZSBzdWIgZ3JvdXAgZm9ybSBncm91cCBhcnJheS5cclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb30gcGFyZW50R3JvdXBJbmZvIC1QYXJlbnQgZ3JvdXAgaW5mby5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVDcmVhdGVGb3JtR3JvdXAocGFyZW50R3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQgJiZcclxuICAgICAgICBwYXJlbnRHcm91cEluZm8/Lmdyb3VwUGFyZW50SWQpIHx8XHJcbiAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkNSRUFURVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQWRkVXNlckZvcm1Db250cm9scyhcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5wYXJlbnRHcm91cCxcclxuICAgICAgICAgIGNvbnRyb2xOYW1lOiAncGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBhcmVudEluZm8/Lmdyb3VwTmFtZSA/P1xyXG4gICAgICAgICAgICBwYXJlbnRHcm91cEluZm8/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/LnBhcmVudEdyb3VwLFxyXG4gICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnBhcmVudEdyb3VwLFxyXG4gICAgICAgICAgaXNSZWFkb25seTogdHJ1ZSxcclxuICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFkZFVzZXJGb3JtQ29udHJvbHMoXHJcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uU0xJREVfVE9HR0xFLFxyXG4gICAgICAgICAgICBjb250cm9sTmFtZTogJ2NoYW5nZVBhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5jaGFuZ2VQYXJlbnRHcm91cCxcclxuICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uY2hhbmdlUGFyZW50R3JvdXAsXHJcbiAgICAgICAgICAgIHNsaWRlVG9nZ2xlT3B0aW9uOiB0aGlzLnNsaWRlVG9nZ2xlT3B0aW9uLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucy5sZW5ndGggPT09IDAsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVBZGRVc2VyRm9ybUNvbnRyb2xzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5uZXdQYXJlbnRHcm91cCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ25ld1BhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZFxyXG4gICAgICAgICAgICAgIClbMF0sXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnMsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/Lm5ld1BhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lm5ld1BhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8ubmV3UGFyZW50R3JvdXAsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjcmVhdGUgb3IgZWRpdCB1c2VyIGZvcm0gZ3JvdXAgY29udHJvbHMgYnkgYWRkaW5nIGZpZWxkQ29uZmlnIGF0IHJlcXVpcmVkIGluZGV4LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFBvc2l0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gZmllbGRDb25maWdcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVBZGRVc2VyRm9ybUNvbnRyb2xzKFxyXG4gICAgaW5kZXhQb3NpdGlvbjogbnVtYmVyLFxyXG4gICAgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8uc3BsaWNlKFxyXG4gICAgICBpbmRleFBvc2l0aW9uLFxyXG4gICAgICAwLFxyXG4gICAgICBmaWVsZENvbmZpZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBhbmQgY2FsbHMgY3JlYXRlIGdyb3VwIG9yIGVkaXQgZ3JvdXAgbWV0aG9kcy5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtIC1BcnJheSBvZiBmb3JtR3JvdXBcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TdWJtaXQoZm9ybTogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGZvcm1bMF0/Lm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgIGlmIChmb3JtWzBdLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5WQUxJRCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IGZvcm1bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgICAgdGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgID8gdGhpcy5lZGl0R3JvdXAoZm9ybURhdGEpXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZUdyb3VwKGZvcm1EYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBjcmVhdGUgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgY3JlYXRlIGdyb3VwIEFQSSBhbmQgZW1pdHMgY3JlYXRlIGdyb3VwIEFQSSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUdyb3VwKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNyZWF0ZUdyb3VwUGF5bG9hZDogQ3JlYXRlR3JvdXBQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiBmb3JtRGF0YT8uZ3JvdXBOYW1lLFxyXG4gICAgICAgIGdyb3VwU2hvcnROYW1lOiBmb3JtRGF0YT8uc2hvcnROYW1lLFxyXG4gICAgICAgIGdyb3VwVHlwZTogZm9ybURhdGE/Lmdyb3VwVHlwZT8uaWQsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkID8/IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVHcm91cChjcmVhdGVHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybVJlc3BvbnNlPy5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGVkaXQgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgZWRpdCBncm91cCBBUEkgYW5kIGVtaXRzIGNyZWF0ZSBncm91cCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBlZGl0R3JvdXAoZm9ybURhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRQYXJlbnRHcm91cENoYW5nZVN0YXR1cyh0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkKTtcclxuICAgIGNvbnN0IGVkaXRHcm91cFBheWxvYWQ6IEVkaXRHcm91cFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cE5hbWU6IGZvcm1EYXRhPy5ncm91cE5hbWUsXHJcbiAgICAgICAgZ3JvdXBTaG9ydE5hbWU6IGZvcm1EYXRhPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkXHJcbiAgICAgICAgICA/IGZvcm1EYXRhPy5uZXdQYXJlbnRHcm91cD8uaWRcclxuICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBQYXJlbnRJZCA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZWRpdEdyb3VwKGVkaXRHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybVJlc3BvbnNlPy5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXB0dXJlcyB0aGUgc2VydmVyIHNpZGUgZXJyb3JzIGFuZCBoYW5kbGVzIHRoZSBlcnJvcnMgYmFzZWQgb24gdGhlIGN1c3RvbSBvciBIdHRwIGVycm9ycy5cclxuICAgKiBAcGFyYW0ge0h0dHBFcnJvclJlc3BvbnNlfSBlcnJvclxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUVycm9ycyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXM6IHN0cmluZ1tdID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3JDb2RlcykpIHtcclxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKGVycm9yTWVzc2FnZSwgQWxlcnRUeXBlLkVSUk9SKTtcclxuICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICB0aGlzLmdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U/LmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmb3JtIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Rm9ybUdyb3VwUmVmZXJlbmNlKGZvcm06IEZvcm1Hcm91cFtdKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtWzBdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhbGVydHMgZm9yIGVycm9yLCB3YXJuaW5nLlxyXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IHN0cmluZ1tdKX0gbWVzc2FnZSAtZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlXHJcbiAgICogQHBhcmFtIHtBbGVydFR5cGV9IGFsZXJ0VHlwZVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dBbGVydE1lc3NhZ2UobWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIGFsZXJ0VHlwZTogQWxlcnRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IGFsZXJ0VHlwZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybSBjYW5jZWwgZXZlbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlR3JvdXBDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWw/LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgYWxsb3dlZCBwYXJlbnQgZ3JvdXBzIGZvciByZWFzc2lnbmluZyB0aGUgcGFyZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0UGFyZW50R3JvdXBzKGdyb3VwSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzID0gW107XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldEFsbG93ZWRQYXJlbnRHcm91cHMoZ3JvdXBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJlc3BvbnNlPy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgaWQ6IG9wdGlvbj8uZ3JvdXBJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBvcHRpb24/Lmdyb3VwTmFtZSArICcgKCcgKyBvcHRpb24/Lmdyb3VwQWNyb255bSArICcpJyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3VwcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgICAnY2hhbmdlUGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAgICdpc0Rpc2FibGVkJyxcclxuICAgICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgICAnbmV3UGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgJ2NoYW5nZVBhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgJ2lzRGlzYWJsZWQnLFxyXG4gICAgICAgICAgICB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBwYXNzZWQgZm9ybSBmaWVsZCB2YWx1ZXMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1Db250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtQ29udHJvbElucHV0UHJvcGVydHlcclxuICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBmb3JtQ29udHJvbElucHV0UHJvcGVydHk6IHN0cmluZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICB2YWx1ZTogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtRmllbGRzID0gdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudD8uZm9ybUZpZWxkcz8udG9BcnJheSgpO1xyXG4gICAgZm9ybUZpZWxkcz8uZm9yRWFjaCgoZm9ybUZpZWxkKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtRmllbGQ/LmNvbXBvbmVudD8uaW5zdGFuY2U/LmNvbmZpZz8uY29udHJvbE5hbWUgPT09XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgICBmb3JtRmllbGQ/LmNvbXBvbmVudD8uaW5zdGFuY2U/Lltmb3JtQ29udHJvbElucHV0UHJvcGVydHldXHJcbiAgICAgIClcclxuICAgICAgICBmb3JtRmllbGQuY29tcG9uZW50Lmluc3RhbmNlW2Zvcm1Db250cm9sSW5wdXRQcm9wZXJ0eV0gPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcy9yZW1vdmVzIG5ldyBwYXJlbnQgZ3JvdXAgc2VsZWN0aW9uIG9wdGlvbnMgd2hlbmV2ZXIgQ2hhbmdlIFBhcmVudCBHcm91cCBzbGlkZXIgaXMgdG9nZ2xlZC5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSB0b2dnbGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNsaWRlVG9nZ2xlT3B0aW9uLmNoZWNrZWQgPSB0b2dnbGU/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAodGhpcy5mb3JtPy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNyZWF0ZSBncm91cCBmb3JtIGNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DcmVhdGVHcm91cEZvcm1DaGFuZ2UoZm9ybTogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGFyZW50R3JvdXAgPSB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHM/LmZpbHRlcihcclxuICAgICAgICAob3B0aW9uOiBQYXJlbnRHcm91cHNJbmZvKSA9PlxyXG4gICAgICAgICAgb3B0aW9uPy5ncm91cElkID09PVxyXG4gICAgICAgICAgZm9ybVswXT8uY29udHJvbHNbJ25ld1BhcmVudEdyb3VwJ10/LnZhbHVlPy5pZD8udG9TdHJpbmcoKVxyXG4gICAgICApWzBdO1xyXG4gICAgICB0aGlzLmZvcm0/LmdldCgncGFyZW50R3JvdXAnKT8uc2V0VmFsdWUoc2VsZWN0ZWRQYXJlbnRHcm91cD8uZ3JvdXBOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1keW5hbWljLWZvcm1cclxuICAqbmdJZj1cImZvcm1Hcm91cFwiXHJcbiAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gIFtyaWdodEJ1dHRvbkxhYmVsXT1cInJpZ2h0QnV0dG9uTGFiZWxcIlxyXG4gIFtpc0xlZ2VuZFZpc2libGVdPVwiaXNMZWdlbmRWaXNpYmxlXCJcclxuICBbY29sV2lkdGhdPVwiY29sV2lkdGhcIlxyXG4gIFthY3Rpb25CdXR0b25BbGlnbl09XCJhY3Rpb25CdXR0b25BbGlnblwiXHJcbiAgW2Zvcm1Hcm91cHNdPVwiZm9ybUdyb3VwXCJcclxuICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cImlzTGVmdEJ1dHRvbk5lZWRlZFwiXHJcbiAgKGZvcm1TdWJtaXQpPVwib25Gb3JtU3VibWl0KCRldmVudClcIlxyXG4gIChmb3JtTGVmdEJ1dHRvbkNsaWNrZWQpPVwiY3JlYXRlR3JvdXBDYW5jZWxsZWQoKVwiXHJcbiAgKGZvcm1Hcm91cHNSZWZlcmVuY2UpPVwiZ2V0Rm9ybUdyb3VwUmVmZXJlbmNlKCRldmVudClcIlxyXG4gIChmb3JtU2xpZGVUb2dnbGVDaGFuZ2UpPVwib25Gb3JtU2xpZGVUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKGZvcm1DaGFuZ2UpPVwib25DcmVhdGVHcm91cEZvcm1DaGFuZ2UoJGV2ZW50KVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+Il19
519
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBSUwsU0FBUyxFQUdULGVBQWUsRUFDZixvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsR0FFVixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFFM0UsTUFB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Q0FBRSxlQUFlOzs0RkFNbEQsb0JBQW9CO2tCQVZoQyxTQUFTOytCQUVFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLGlCQUcvQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsYUFBYSxDQUFDO3dLQVFoQixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkF3QjBCLG9CQUFvQjtzQkFBcEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyaWQsXHJcbiAgRm9ybU1vZGVsLFxyXG4gIFNlbGVjdE9wdGlvbixcclxuICBBbGlnblR5cGUsXHJcbiAgU2xpZGVUb2dnbGVPcHRpb24sXHJcbiAgRmllbGRDb25maWcsXHJcbiAgRm9ybUNvbnRyb2xUeXBlLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBBbGVydFR5cGUsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2Zvcm0tdmFsaWRhdGlvbnMnO1xyXG5pbXBvcnQgeyBDcmVhdGVHcm91cFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvY3JlYXRlLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcm91cFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IEVkaXRHcm91cFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRpdC1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1TdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zdGF0dXMubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgUGFyZW50R3JvdXBzSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9wYXJlbnQtZ3JvdXBzLWluZm8ubW9kZWwnO1xyXG5jb25zdCBJTkRFWF9WQUxVRSA9IDQ7XHJcblxyXG4vKipcclxuICogQ3JlYXRlR3JvdXBDb21wb25lbnQgdXNlcyBEeW5hbWljRm9ybUNvbXBvbmVudCB0byBidWlsZCBjcmVhdGUgbmV3IGdyb3VwIGZvcm0gb3IgZWRpdCBncm91cCBhbmQgaW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXRpZXMgb2Ygc3VibWlzc2lvbiBvZiBmb3JtIGFuZCBoYW5kbGluZyBzdWNjZXNzIGFuZCBlcnJvciBzY2VuYXJpb3MuXHJcbiAqIEBjbGFzcyBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1jcmVhdGUtZ3JvdXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHluYW1pY0Zvcm1Db21wb25lbnQsIE1hdERpYWxvZ01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3VibWl0Rm9ybVJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBjYW5jZWxsZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY3JlYXRlR3JvdXBUZXh0ID0gc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICBsZWZ0QnV0dG9uTGFiZWwgPSB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5yaWdodEJ1dHRvbkxhYmVsO1xyXG4gIGlzTGVnZW5kVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGlzTGVmdEJ1dHRvbk5lZWRlZCA9IHRydWU7XHJcbiAgY29sV2lkdGg6IEZvcm1HcmlkID0geyB4czogMTIsIHhsOiAxMiwgc206IDEyLCBtZDogMTIsIGxnOiAxMiB9O1xyXG4gIGZvcm1Hcm91cCE6IEZvcm1Nb2RlbDtcclxuICBncm91cFR5cGVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgYWN0aW9uQnV0dG9uQWxpZ24gPSBBbGlnblR5cGUuTEVGVDtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkR3JvdXBJbmZvITogR3JvdXBJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIGdyb3VwRnVuY3Rpb25UeXBlITogR3JvdXBGdW5jdGlvblR5cGU7XHJcbiAgc2VsZWN0ZWRHcm91cFBhcmVudEluZm8hOiBHcm91cEluZm8gfCB1bmRlZmluZWQ7XHJcbiAgYWxsb3dlZFBhcmVudEdyb3VwczogUGFyZW50R3JvdXBzSW5mb1tdID0gW107XHJcbiAgYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgaXNQYXJlbnRHcm91cENoYW5nZWQgPSBmYWxzZTtcclxuICBzbGlkZVRvZ2dsZU9wdGlvbjogU2xpZGVUb2dnbGVPcHRpb24gPSB7XHJcbiAgICBpZDogMSxcclxuICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmNoYW5nZVBhcmVudEdyb3VwLFxyXG4gICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgfTtcclxuICBAVmlld0NoaWxkKER5bmFtaWNGb3JtQ29tcG9uZW50KSBkeW5hbWljRm9ybUNvbXBvbmVudCE6IER5bmFtaWNGb3JtQ29tcG9uZW50O1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY3JlYXRlIGdyb3VwIGZvcm0gZ3JvdXAgYXJyYXkgYW5kIGNvbXBvbmVudC5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEdyb3VwRnVuY3Rpb25UeXBlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZEdyb3VwSW5mbygpO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwUGFyZW50SW5mbyA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZEdyb3VwUGFyZW50SW5mbygpO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBQYXJlbnRJZClcclxuICAgICAgICB0aGlzLmdldFBhcmVudEdyb3Vwcyh0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkKTtcclxuICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGdyb3VwVHlwZXMgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEZvcm1hdHRlZEdyb3VwVHlwZXMoXHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRMb2FkZWRHcm91cFR5cGVzKClcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwVHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGFsbG93ZWRHcm91cFR5cGUgPVxyXG4gICAgICAgICAgZ3JvdXBUeXBlc1t0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFR5cGVdPy5idXNpbmVzc1J1bGVcclxuICAgICAgICAgICAgPy5hbGxvd2VkR3JvdXBUeXBlO1xyXG4gICAgICAgIGlmIChhbGxvd2VkR3JvdXBUeXBlPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBUeXBlcyA9IGFsbG93ZWRHcm91cFR5cGUubWFwKChncm91cFR5cGVJZDogc3RyaW5nKSA9PiAoe1xyXG4gICAgICAgICAgICBpZDogZ3JvdXBUeXBlSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGdyb3VwVHlwZXNbZ3JvdXBUeXBlSWRdPy5uYW1lLFxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cFR5cGVzLmZpbHRlcihcclxuICAgICAgICAgICAgKGdyb3VwVHlwZSkgPT4gIWdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uYnVzaW5lc3NSdWxlPy5pc0FkbWluXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2Uoc2NyZWVuVGV4dHM/LmVycm9ycz8uRVIxMDAwLCBBbGVydFR5cGUuRVJST1IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSBPYmplY3QuZW50cmllcyhncm91cFR5cGVzKS5tYXAoXHJcbiAgICAgICAgICAoW2lkLCBpdGVtXTogW3N0cmluZywgR3JvdXBUeXBlXSkgPT4gKHtcclxuICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0/Lm5hbWUsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cFR5cGVzLmZpbHRlcihcclxuICAgICAgICAgIChncm91cFR5cGUpID0+XHJcbiAgICAgICAgICAgIGdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uaGllcmFyY2h5ID09PSAwICYmXHJcbiAgICAgICAgICAgICFncm91cFR5cGVzW2dyb3VwVHlwZS5pZF0/LmJ1c2luZXNzUnVsZT8uaXNBZG1pblxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ3JvdXBUeXBlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2Uoc2NyZWVuVGV4dHM/LmVycm9ycz8uWycxMDEwJ10sIEFsZXJ0VHlwZS5FUlJPUik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgdGhlIGdyb3VwIHR5cGUgZm9ybSBmaWVsZCBiYXNlZCBvbiBlZGl0IGdyb3VwIG9yIG5vdC5cclxuICAgKiBAcmV0dXJuIHtGaWVsZENvbmZpZ30gLWdyb3VwIHR5cGUgZm9ybSBmaWVsZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVGaWVsZCgpOiBGaWVsZENvbmZpZyB7XHJcbiAgICBsZXQgZ3JvdXBUeXBlRmllbGQ6IEZpZWxkQ29uZmlnO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgZ3JvdXBUeXBlRmllbGQgPSB7XHJcbiAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiAnZ3JvdXBUeXBlJyxcclxuICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFR5cGVJbmZvPy5uYW1lLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmVkaXRHcm91cD8uYXJpYUxhYmVsPy5ncm91cFR5cGUsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ncm91cFR5cGUsXHJcbiAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBncm91cFR5cGVGaWVsZCA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cFR5cGUgKyAnKicsXHJcbiAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFR5cGUnLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmdyb3VwVHlwZXMsXHJcbiAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwVHlwZSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXBUeXBlRmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBjcmVhdGUgZ3JvdXAgZm9ybSBncm91cCBhcnJheS5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUZvcm1Hcm91cChmb3JtVmFsdWU/OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0ge1xyXG4gICAgICBmb3JtR3JvdXA6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6ICcnLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cFR5cGVGaWVsZCgpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1WYWx1ZT8uZ3JvdXBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cE5hbWVcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjUwMFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihHcm91cHNWYWxpZGF0aW9uUGF0dGVybnM/Lmdyb3VwTmFtZSksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5ncm91cE5hbWUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5zaG9ydE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdzaG9ydE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1WYWx1ZT8uc2hvcnROYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFNob3J0TmFtZVxyXG4gICAgICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChcclxuICAgICAgICAgICAgICAgICAgc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwPy5jaGFyYWN0ZXJMaW1pdD8uY2hhcmFjdGVyMTVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5zaG9ydE5hbWUpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2dyb3VwU2NvcGUnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgICAgICAgID8gZm9ybVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWU/Lmdyb3VwU2NvcGVcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwRGVzY1xyXG4gICAgICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5jcmVhdGVHcm91cFRleHQ/LnN1cHBvcnRUZXh0Py5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIG1heExlbmd0aDpcclxuICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjIwMDAsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjE1MDBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5ncm91cFNjb3BlKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDcmVhdGVGb3JtR3JvdXAodGhpcy5zZWxlY3RlZEdyb3VwSW5mbyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGNyZWF0ZSBzdWIgZ3JvdXAgZm9ybSBncm91cCBhcnJheS5cclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb30gcGFyZW50R3JvdXBJbmZvIC1QYXJlbnQgZ3JvdXAgaW5mby5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVDcmVhdGVGb3JtR3JvdXAocGFyZW50R3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQgJiZcclxuICAgICAgICBwYXJlbnRHcm91cEluZm8/Lmdyb3VwUGFyZW50SWQpIHx8XHJcbiAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkNSRUFURVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQWRkVXNlckZvcm1Db250cm9scyhcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5wYXJlbnRHcm91cCxcclxuICAgICAgICAgIGNvbnRyb2xOYW1lOiAncGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBhcmVudEluZm8/Lmdyb3VwTmFtZSA/P1xyXG4gICAgICAgICAgICBwYXJlbnRHcm91cEluZm8/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/LnBhcmVudEdyb3VwLFxyXG4gICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnBhcmVudEdyb3VwLFxyXG4gICAgICAgICAgaXNSZWFkb25seTogdHJ1ZSxcclxuICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVQpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFkZFVzZXJGb3JtQ29udHJvbHMoXHJcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uU0xJREVfVE9HR0xFLFxyXG4gICAgICAgICAgICBjb250cm9sTmFtZTogJ2NoYW5nZVBhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5jaGFuZ2VQYXJlbnRHcm91cCxcclxuICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uY2hhbmdlUGFyZW50R3JvdXAsXHJcbiAgICAgICAgICAgIHNsaWRlVG9nZ2xlT3B0aW9uOiB0aGlzLnNsaWRlVG9nZ2xlT3B0aW9uLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucy5sZW5ndGggPT09IDAsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVBZGRVc2VyRm9ybUNvbnRyb2xzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gSU5ERVhfVkFMVUUsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5uZXdQYXJlbnRHcm91cCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ25ld1BhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZFxyXG4gICAgICAgICAgICAgIClbMF0sXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnMsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/Lm5ld1BhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lm5ld1BhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8ubmV3UGFyZW50R3JvdXAsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjcmVhdGUgb3IgZWRpdCB1c2VyIGZvcm0gZ3JvdXAgY29udHJvbHMgYnkgYWRkaW5nIGZpZWxkQ29uZmlnIGF0IHJlcXVpcmVkIGluZGV4LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFBvc2l0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gZmllbGRDb25maWdcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVBZGRVc2VyRm9ybUNvbnRyb2xzKFxyXG4gICAgaW5kZXhQb3NpdGlvbjogbnVtYmVyLFxyXG4gICAgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8uc3BsaWNlKFxyXG4gICAgICBpbmRleFBvc2l0aW9uLFxyXG4gICAgICAwLFxyXG4gICAgICBmaWVsZENvbmZpZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBhbmQgY2FsbHMgY3JlYXRlIGdyb3VwIG9yIGVkaXQgZ3JvdXAgbWV0aG9kcy5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtIC1BcnJheSBvZiBmb3JtR3JvdXBcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TdWJtaXQoZm9ybTogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGZvcm1bMF0/Lm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgIGlmIChmb3JtWzBdLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5WQUxJRCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IGZvcm1bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgICAgdGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgID8gdGhpcy5lZGl0R3JvdXAoZm9ybURhdGEpXHJcbiAgICAgICAgOiB0aGlzLmNyZWF0ZUdyb3VwKGZvcm1EYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBjcmVhdGUgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgY3JlYXRlIGdyb3VwIEFQSSBhbmQgZW1pdHMgY3JlYXRlIGdyb3VwIEFQSSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUdyb3VwKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNyZWF0ZUdyb3VwUGF5bG9hZDogQ3JlYXRlR3JvdXBQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiBmb3JtRGF0YT8uZ3JvdXBOYW1lLFxyXG4gICAgICAgIGdyb3VwU2hvcnROYW1lOiBmb3JtRGF0YT8uc2hvcnROYW1lLFxyXG4gICAgICAgIGdyb3VwVHlwZTogZm9ybURhdGE/Lmdyb3VwVHlwZT8uaWQsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkID8/IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVHcm91cChjcmVhdGVHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybVJlc3BvbnNlPy5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGVkaXQgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgZWRpdCBncm91cCBBUEkgYW5kIGVtaXRzIGNyZWF0ZSBncm91cCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBlZGl0R3JvdXAoZm9ybURhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRQYXJlbnRHcm91cENoYW5nZVN0YXR1cyh0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkKTtcclxuICAgIGNvbnN0IGVkaXRHcm91cFBheWxvYWQ6IEVkaXRHcm91cFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cE5hbWU6IGZvcm1EYXRhPy5ncm91cE5hbWUsXHJcbiAgICAgICAgZ3JvdXBTaG9ydE5hbWU6IGZvcm1EYXRhPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkXHJcbiAgICAgICAgICA/IGZvcm1EYXRhPy5uZXdQYXJlbnRHcm91cD8uaWRcclxuICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBQYXJlbnRJZCA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZWRpdEdyb3VwKGVkaXRHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybVJlc3BvbnNlPy5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXB0dXJlcyB0aGUgc2VydmVyIHNpZGUgZXJyb3JzIGFuZCBoYW5kbGVzIHRoZSBlcnJvcnMgYmFzZWQgb24gdGhlIGN1c3RvbSBvciBIdHRwIGVycm9ycy5cclxuICAgKiBAcGFyYW0ge0h0dHBFcnJvclJlc3BvbnNlfSBlcnJvclxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUVycm9ycyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXM6IHN0cmluZ1tdID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3JDb2RlcykpIHtcclxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKGVycm9yTWVzc2FnZSwgQWxlcnRUeXBlLkVSUk9SKTtcclxuICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICB0aGlzLmdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U/LmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmb3JtIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Rm9ybUdyb3VwUmVmZXJlbmNlKGZvcm06IEZvcm1Hcm91cFtdKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtWzBdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhbGVydHMgZm9yIGVycm9yLCB3YXJuaW5nLlxyXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IHN0cmluZ1tdKX0gbWVzc2FnZSAtZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlXHJcbiAgICogQHBhcmFtIHtBbGVydFR5cGV9IGFsZXJ0VHlwZVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dBbGVydE1lc3NhZ2UobWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIGFsZXJ0VHlwZTogQWxlcnRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IGFsZXJ0VHlwZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybSBjYW5jZWwgZXZlbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlR3JvdXBDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWw/LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgYWxsb3dlZCBwYXJlbnQgZ3JvdXBzIGZvciByZWFzc2lnbmluZyB0aGUgcGFyZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0UGFyZW50R3JvdXBzKGdyb3VwSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzID0gW107XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldEFsbG93ZWRQYXJlbnRHcm91cHMoZ3JvdXBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJlc3BvbnNlPy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgaWQ6IG9wdGlvbj8uZ3JvdXBJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBvcHRpb24/Lmdyb3VwTmFtZSArICcgKCcgKyBvcHRpb24/Lmdyb3VwQWNyb255bSArICcpJyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3VwcyA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgICAnY2hhbmdlUGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAgICdpc0Rpc2FibGVkJyxcclxuICAgICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgICAnbmV3UGFyZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgJ2NoYW5nZVBhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgJ2lzRGlzYWJsZWQnLFxyXG4gICAgICAgICAgICB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBwYXNzZWQgZm9ybSBmaWVsZCB2YWx1ZXMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1Db250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtQ29udHJvbElucHV0UHJvcGVydHlcclxuICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBmb3JtQ29udHJvbElucHV0UHJvcGVydHk6IHN0cmluZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICB2YWx1ZTogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtRmllbGRzID0gdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudD8uZm9ybUZpZWxkcz8udG9BcnJheSgpO1xyXG4gICAgZm9ybUZpZWxkcz8uZm9yRWFjaCgoZm9ybUZpZWxkKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtRmllbGQ/LmNvbXBvbmVudD8uaW5zdGFuY2U/LmNvbmZpZz8uY29udHJvbE5hbWUgPT09XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgICBmb3JtRmllbGQ/LmNvbXBvbmVudD8uaW5zdGFuY2U/Lltmb3JtQ29udHJvbElucHV0UHJvcGVydHldXHJcbiAgICAgIClcclxuICAgICAgICBmb3JtRmllbGQuY29tcG9uZW50Lmluc3RhbmNlW2Zvcm1Db250cm9sSW5wdXRQcm9wZXJ0eV0gPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcy9yZW1vdmVzIG5ldyBwYXJlbnQgZ3JvdXAgc2VsZWN0aW9uIG9wdGlvbnMgd2hlbmV2ZXIgQ2hhbmdlIFBhcmVudCBHcm91cCBzbGlkZXIgaXMgdG9nZ2xlZC5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSB0b2dnbGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNsaWRlVG9nZ2xlT3B0aW9uLmNoZWNrZWQgPSB0b2dnbGU/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAodGhpcy5mb3JtPy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNyZWF0ZSBncm91cCBmb3JtIGNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DcmVhdGVHcm91cEZvcm1DaGFuZ2UoZm9ybTogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzUGFyZW50R3JvdXBDaGFuZ2VkKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGFyZW50R3JvdXAgPSB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHM/LmZpbHRlcihcclxuICAgICAgICAob3B0aW9uOiBQYXJlbnRHcm91cHNJbmZvKSA9PlxyXG4gICAgICAgICAgb3B0aW9uPy5ncm91cElkID09PVxyXG4gICAgICAgICAgZm9ybVswXT8uY29udHJvbHNbJ25ld1BhcmVudEdyb3VwJ10/LnZhbHVlPy5pZD8udG9TdHJpbmcoKVxyXG4gICAgICApWzBdO1xyXG4gICAgICB0aGlzLmZvcm0/LmdldCgncGFyZW50R3JvdXAnKT8uc2V0VmFsdWUoc2VsZWN0ZWRQYXJlbnRHcm91cD8uZ3JvdXBOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1keW5hbWljLWZvcm1cclxuICAqbmdJZj1cImZvcm1Hcm91cFwiXHJcbiAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gIFtyaWdodEJ1dHRvbkxhYmVsXT1cInJpZ2h0QnV0dG9uTGFiZWxcIlxyXG4gIFtpc0xlZ2VuZFZpc2libGVdPVwiaXNMZWdlbmRWaXNpYmxlXCJcclxuICBbY29sV2lkdGhdPVwiY29sV2lkdGhcIlxyXG4gIFthY3Rpb25CdXR0b25BbGlnbl09XCJhY3Rpb25CdXR0b25BbGlnblwiXHJcbiAgW2Zvcm1Hcm91cHNdPVwiZm9ybUdyb3VwXCJcclxuICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cImlzTGVmdEJ1dHRvbk5lZWRlZFwiXHJcbiAgKGZvcm1TdWJtaXQpPVwib25Gb3JtU3VibWl0KCRldmVudClcIlxyXG4gIChmb3JtTGVmdEJ1dHRvbkNsaWNrZWQpPVwiY3JlYXRlR3JvdXBDYW5jZWxsZWQoKVwiXHJcbiAgKGZvcm1Hcm91cHNSZWZlcmVuY2UpPVwiZ2V0Rm9ybUdyb3VwUmVmZXJlbmNlKCRldmVudClcIlxyXG4gIChmb3JtU2xpZGVUb2dnbGVDaGFuZ2UpPVwib25Gb3JtU2xpZGVUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKGZvcm1DaGFuZ2UpPVwib25DcmVhdGVHcm91cEZvcm1DaGFuZ2UoJGV2ZW50KVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+Il19