bpm-core 0.0.63 → 0.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +2 -2
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +2 -2
- package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +16 -8
- package/esm2022/lib/components/shared-components/index.mjs +2 -1
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +2 -2
- package/fesm2022/bpm-core.mjs +425 -417
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.d.ts +2 -1
- package/lib/components/shared-components/index.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs
CHANGED
|
@@ -427,7 +427,7 @@ export class RequestDetailsSectionComponent {
|
|
|
427
427
|
this.pageSize = event.pageSize;
|
|
428
428
|
}
|
|
429
429
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i2.FormBuilder }, { token: i1.ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
430
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-toggle-button>\r\n <app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "emitedChangedValue1", "customErrorMessages"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "component", type: CheckBoxComponent, selector: "app-checkbox", inputs: ["containTerms", "termsLabel", "linkText", "hrefLink", "link", "termsBody"], outputs: ["downloadCheckBox"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InputCurrencyComponent, selector: "app-input-currency", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "numberSuffixName"] }, { kind: "component", type: DatePickerComponent, selector: "app-datepicker", inputs: ["className", "calendarType", "yearOnly", "error", "format"], outputs: ["dateValue"] }, { kind: "component", type: DateRangePickerComponent, selector: "app-date-range-picker", inputs: ["className", "yearOnly", "calendarType"] }, { kind: "component", type: InputEmailComponent, selector: "app-input-email", inputs: ["floatLabel", "className", "matPrefix", "iconPrefixName", "iconSuffixName", "numberSuffixName"] }, { kind: "component", type: InputNumberComponent, selector: "app-input-number", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "numberSuffixName", "allowedPattern"], outputs: ["emitedChangedValue"] }, { kind: "component", type: RadioComponent, selector: "app-radio", inputs: ["options"] }, { kind: "component", type: ToggleButtonComponent, selector: "app-toggle-button", inputs: ["className", "data", "error", "optionAr", "optionEn", "hasHint", "options", "displayedLabel", "key"], outputs: ["onChange"] }, { kind: "component", type: InputTelephoneComponent, selector: "app-input-telephone", inputs: ["floatLabel", "className"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "className", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: AttachmentSectionComponent, selector: "app-attachment-section", inputs: ["className", "attachmentsMax", "isSortable", "downloadAll", "isRequired", "descriptionRequired", "commentsRequired", "allowedExtensions"], outputs: ["emitedValue"] }] });
|
|
430
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-toggle-button>\r\n <app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "emitedChangedValue1", "customErrorMessages"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "component", type: CheckBoxComponent, selector: "app-checkbox", inputs: ["containTerms", "termsLabel", "linkText", "hrefLink", "link", "termsBody"], outputs: ["downloadCheckBox"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InputCurrencyComponent, selector: "app-input-currency", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "numberSuffixName"] }, { kind: "component", type: DatePickerComponent, selector: "app-datepicker", inputs: ["className", "calendarType", "yearOnly", "error", "format"], outputs: ["dateValue"] }, { kind: "component", type: DateRangePickerComponent, selector: "app-date-range-picker", inputs: ["className", "yearOnly", "calendarType"] }, { kind: "component", type: InputEmailComponent, selector: "app-input-email", inputs: ["floatLabel", "className", "matPrefix", "iconPrefixName", "iconSuffixName", "numberSuffixName"] }, { kind: "component", type: InputNumberComponent, selector: "app-input-number", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "numberSuffixName", "allowedPattern"], outputs: ["emitedChangedValue"] }, { kind: "component", type: RadioComponent, selector: "app-radio", inputs: ["options"] }, { kind: "component", type: ToggleButtonComponent, selector: "app-toggle-button", inputs: ["className", "data", "error", "optionAr", "optionEn", "hasHint", "options", "displayedLabel", "key"], outputs: ["onChange"] }, { kind: "component", type: InputTelephoneComponent, selector: "app-input-telephone", inputs: ["floatLabel", "className"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "customDownload", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "className", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: AttachmentSectionComponent, selector: "app-attachment-section", inputs: ["className", "attachmentsMax", "isSortable", "downloadAll", "isRequired", "descriptionRequired", "commentsRequired", "allowedExtensions"], outputs: ["emitedValue"] }] });
|
|
431
431
|
}
|
|
432
432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, decorators: [{
|
|
433
433
|
type: Component,
|
|
@@ -464,4 +464,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
464
464
|
}], className: [{
|
|
465
465
|
type: Input
|
|
466
466
|
}] } });
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsc0JBQXNCLEVBQzVCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUxRixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7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QThCO2tCQS9CMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FDMUM7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkOytJQU1RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBOT19FUlJPUlNfU0NIRU1BLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7QWN0aW9uU3RhdGVTZXJ2aWNlLCBDb3JlSTE4blNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge05nQ2xhc3N9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxyXG4gIEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50LFxyXG4gIENoZWNrQm94Q29tcG9uZW50LFxyXG4gIEN1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsXHJcbiAgRGF0ZVBpY2tlckNvbXBvbmVudCxcclxuICBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsXHJcbiAgSW5wdXRDb21wb25lbnQsXHJcbiAgSW5wdXRDdXJyZW5jeUNvbXBvbmVudCxcclxuICBJbnB1dEVtYWlsQ29tcG9uZW50LFxyXG4gIElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gIElucHV0VGVsZXBob25lQ29tcG9uZW50LFxyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LFxyXG4gIFRleHRhcmVhQ29tcG9uZW50XHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJlZ2V4UGF0dGVybnMgfSBmcm9tICcuLi8uLi9yZWdleC9yZWdleC1wYXR0ZXJucyc7XHJcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0RvY3NVcGxvYWRlckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuLy8gaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlcXVlc3QtZGV0YWlscy1zZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgQWN0aW9uQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tCb3hDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIElucHV0Q3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSW5wdXRFbWFpbENvbXBvbmVudCxcclxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gICAgUmFkaW9Db21wb25lbnQsXHJcbiAgICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBJbnB1dFRlbGVwaG9uZUNvbXBvbmVudCxcclxuICAgIERvY3NVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGVcclxuICBdXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJlcXVlc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWN0aW9uOiBTZWN0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgbG92OiBhbnk7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nID0gXCJpbmZvLXNlY3Rpb25cIjtcclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBvcHRpb25zOiBzdHJpbmdbXSA9IFsnT3B0aW9uIDEnLCAnT3B0aW9uIDInLCAnT3B0aW9uIDMnXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9TSVpFID0gMTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX1BBR0VfTlVNQkVSID0gMDtcclxuICBwYWdlTnVtYmVyOiBudW1iZXIgPSB0aGlzLkRFRkFVTFRfUEFHRV9OVU1CRVI7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IHRoaXMuREVGQVVMVF9QQUdFX1NJWkU7XHJcbiAgY29sdW1uc0NvbmZpZzogYW55W10gPSBbXTtcclxuICBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcmVxdWlyZWRTZWFyY2hhYmxlOmJvb2xlYW47XHJcblxyXG4gIGlzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgPSBbXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJCZW5xXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAyXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJCNDAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIlNjYW5uZXJcIixcclxuICAgICAgXCJjbGFzc2lmaWNhdGlvbnNcIjogbnVsbCxcclxuICAgICAgXCJjb25zdW1lZENvdW50XCI6IDAsXHJcbiAgICAgIFwiY29uc3VtZWRQZXJjZW50YWdlXCI6IDAsXHJcbiAgICAgIFwic3BlY3NcIjogW1xyXG4gICAgICAgIFwiNEdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhQXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAzXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJFbGl0ZUJvb2tcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjUxMkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhwXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA0XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJMYXNlclwiLFxyXG4gICAgICBcImZpbGVzXCI6IG51bGwsXHJcbiAgICAgIFwidmVuZG9yc1wiOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiA3MSxcclxuICAgICAgICAgIFwidmVuZG9yTmFtZVwiOiBudWxsLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOdW1iZXJcIjogXCIyNlwiLFxyXG4gICAgICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiVmVuZG9yRHRvXCJcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogbnVsbCxcclxuICAgICAgXCJhc3NldFR5cGVcIjogXCJQcmludGVyXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjJHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJBc3VzXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA1XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJBNTAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIkxhcHRvcFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIxVEJcIlxyXG4gICAgICBdLFxyXG4gICAgICBcInN1bVF1YW50aXR5XCI6IDEsXHJcbiAgICAgIFwiX190eXBlbmFtZVwiOiBcIkFsbEFzc2V0c0R0b1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiRGVsbFwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwN1wiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiTGF0aXR1ZGVcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjFUQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogNCxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJTYW1zdW5nXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA4XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJHYWxheHlcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiVGFibGV0XCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjI1NkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgdG90YWxFbGVtZW50czogbnVtYmVyID0gNjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblN0YXRlU2VydmljZTogQWN0aW9uU3RhdGVTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVRhYmxlQ29uZmlnKClcclxuICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHJlcz0+IHtcclxuICAgICAgaWYgKHJlcyl7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXN0b21TZWFyY2hhYmxlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgIHRoaXMucmVxdWlyZWRTZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSlcclxuICAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1c3RvbVNlYXJjaGFibGUnKS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSA9IGZhbHNlXHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5yZXF1aXJlZFNlYXJjaGFibGUpXHJcbiAgICAgICB9XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1c3RvbVNlYXJjaGFibGUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBpbml0aWFsaXplVGFibGVDb25maWcoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5zKClcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbkNvbmZpZygpXHJcblxyXG59XHJcbmluaXRpYWxpemVDb2x1bW5zKCkge1xyXG4gIHRoaXMuY29sdW1ucyA9IFsnaWQnLCAnYXNzZXRUeXBlJywgJ2JyYW5kJywgJ21vZGVsJywgJ3N1bVF1YW50aXR5JywgJ3NwZWNzJywgJ2FsbG9jYXRlJ107XHJcbn1cclxuXHJcbmluaXRpYWxpemVDb2x1bW5Db25maWcoKSB7XHJcbiAgdGhpcy5jb2x1bW5zQ29uZmlnID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJ0lkJyxcclxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdBc3NldCBUeXBlJyxcclxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdCcmFuZCcsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdNb2RlbCcsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdRdWFudGl0eScsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdDYXBhY2l0eScsXHJcbiAgICAgICAgICB0eXBlOiAnc3BlY3MnLFxyXG4gICAgICAgICAgY2xpY2thYmxlVGV4dDogJ1ZpZXcnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ0FjdGlvbnMnLFxyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25zJyxcclxuICAgICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAgICB7dmlld01vZGU6ICdhbGxvY2F0ZScsIGFjdGlvbk5hbWU6IFwiQWxsb2NhdGVcIiwgZGlzYWJsZWQ6dHJ1ZX0sXHJcbiAgICAgICAgICAge3ZpZXdNb2RlOiAnZWRpdCcsIGFjdGlvbk5hbWU6IFwiRWRpdFwiLCBhY3Rpb246IFwiZWRpdFwiLG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEFzc2V0KGFzc2V0KTtcclxuICAgICAgICB9LH0sXHJcbiAgICAgICAge3ZpZXdNb2RlOiAnZGVsZXRlJywgYWN0aW9uTmFtZTogXCJEZWxldGVcIiwgYWN0aW9uOiBcImRlbGV0ZVwiLG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUFzc2V0KGFzc2V0KTtcclxuICAgICAgfSx9LFxyXG4gICAgICB7dmlld01vZGU6ICdjaGFydCcsIGFjdGlvbk5hbWU6IFwiQ2hhcnRcIiwgYWN0aW9uOlwiY2hhcnRcIn0sXHJcbiAgICAgICAgICBdXHJcbiAgICB9LFxyXG4gIF07XHJcbn1cclxuXHJcblxyXG4gIGNyZWF0ZUZvcm0oKSB7XHJcbiAgICBsZXQgbmV3Rm9ybSA9IHtcclxuICAgICAgaW5wdXQxOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICBuZXdGb3JtW29wdGlvbi52YWx1ZV0gPSBbJyddO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgY3VycmVuY3lJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBlbWFpbElucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIG51bWJlcklucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGN1c3RvbVNlYXJjaGFibGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgY2hlY2tib3g6IG5ldyBGb3JtQ29udHJvbChudWxsICxbVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgdGV4dEFyZWE6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLm1heExlbmd0aCg1KV0pLFxyXG4gICAgICBkYXRlUGlja2VyOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGRhdGVQaWNrZXJSYW5nZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICByYWRpbzogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0b2dnbGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGVsZXBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHNlYXJjaEVtcGxveWVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIC4uLm5ld0Zvcm0sXHJcbiAgICAgIGF0dGFjaG1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgYXR0YWNobWVudFNlY3Rpb246IG5ldyBGb3JtQ29udHJvbChbXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICB9KTtcclxuICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgbGV0IGlzQWN0aW9uVmFsaWQgPSB0aGlzLmNoZWNrVmFsaWRpdHkob3B0aW9uLnZhbHVlKTtcclxuICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAgICAgY29uc29sZS5sb2coaXNBY3Rpb25WYWxpZClcclxuICAgICBcclxuICAgIH0pXHJcblxyXG4gICAgXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gIC8vICAgICBpbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBjdXJyZW5jeUlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIGVtYWlsSW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgbnVtYmVySW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgY3VzdG9tU2VhcmNoYWJsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBjaGVja2JveDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICB0ZXh0QXJlYTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBkYXRlUGlja2VyOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIGRhdGVQaWNrZXJSYW5nZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICByYWRpbzogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICB0b2dnbGU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgdGVsZXBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIHNlYXJjaEVtcGxveWVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIC8vIC4uLm5ld0Zvcm0sXHJcbiAgLy8gICAgIGF0dGFjaG1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgYXR0YWNobWVudFNlY3Rpb246IG5ldyBGb3JtQ29udHJvbChbXSksXHJcbiAgLy8gICB9KTtcclxuICAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpO1xyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0aWxzKTtcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMubG92Py5bJ2FwcHJvdmVyQWN0aW9ucyddPy5vcHRpb25zKVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpc0FjdGlvblZhbGlkKVxyXG4gICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICAgLyEqe1xyXG4gIC8vICAgICAgICAgaW5wdXQxOiB0aGlzLmZpZWxkc0Zvcm0uZ2V0KCdpbnB1dDEnKS52YWx1ZVxyXG4gIC8vICAgICAgIH0qIS9cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIC8vICAgY3JlYXRlRm9ybSgpIHtcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgLy8gICAgIGN1c3RvbWVyTmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgLy8gICAgIGN1c3RvbWVyUGhvbmU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICByZWFzb25Gb3JSZXF1ZXN0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbFR5cGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBjZW50ZXJPZkNhbGxzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbERhdGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBhZ3JlZW1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV0pLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAvLyAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAvLyAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmUgPSB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmU/LmUxNjROdW1iZXJcclxuICAvLyAgICAgICAvLyB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCA9ICh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCkudG9TdHJpbmcoKVxyXG5cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zKVxyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscylcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCB0aGlzLmZvcm1Hcm91cC52YWx1ZSlcclxuICAvLyB9XHJcblxyXG4gIGVkaXRBc3NldChhc3NldCl7XHJcbiAgICBjb25zb2xlLmxvZyhhc3NldClcclxuICB9XHJcbiAgc3RhcnRzV2l0aERNT0VPckNSKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiAodmFsdWUuc3RhcnRzV2l0aCgnRE1PRS0nKSB8fCB2YWx1ZS5zdGFydHNXaXRoKCdDUi0nKSkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDsgLy8gVmFsaWRcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBzdGFydHNXaXRoSW52YWxpZDogdHJ1ZSB9OyAvLyBJbnZhbGlkXHJcbiAgICB9O1xyXG4gIH1cclxuICBkZWxldGVBc3NldChhc3NldCl7XHJcbiAgICBjb25zb2xlLmxvZyhhc3NldClcclxuICB9XHJcblxyXG4gIGZvcm1WYWx1ZShmb3JtKXtcclxuY29uc29sZS5sb2coZm9ybS52YWx1ZSlcclxuICB9XHJcblxyXG4gIGNoZWNrVmFsaWRpdHkoYWN0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ1NVQk1JVCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xyXG4gICAgICBjYXNlICdBUFBST1ZFJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSAnUkVKRUNUJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICAgIGNhc2UgJ1NFTkRCQUNLJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICAgICAgY2FzZSAnU0FWRV9DSEFOR0VTJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tQ2FsbFN1Ym1pdChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCBhY3Rpb24pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpXHJcbiAgfVxyXG5cclxuICBwYWdlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBldmVudC5wYWdlSW5kZXhcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZVxyXG59XHJcblxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGZvcm0gW25nQ2xhc3NdPVwieydmb3JtLXNlY3Rpb24tZGl2aWRlIGZvcm0tc2VjdGlvbic6IXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHksJ2luZm8tc2VjdGlvbic6c2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seX1cIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxyXG5cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgIFthcnJheUxpc3RdPVwiZm9ybUdyb3VwLmdldCgnc2VhcmNoRW1wbG95ZWUnKS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1zZWFyY2gtZW1wbG95ZWVcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1pbnB1dCBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCIgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiIFtsb2FkaW5nXT1cInRydWVcIiB0eXBlPVwiZW5Pbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXRcIiBsYWJlbD1cIklucHV0XCI+PC9hcHAtaW5wdXQ+XHJcbiAgICA8YXBwLWlucHV0LWN1cnJlbmN5IGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lJbnB1dFwiIGxhYmVsPVwiY3VycmVuY3lcIj48L2FwcC1pbnB1dC1jdXJyZW5jeT5cclxuICAgIDxhcHAtaW5wdXQtZW1haWwgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbElucHV0XCIgbGFiZWw9XCJlbWFpbFwiPjwvYXBwLWlucHV0LWVtYWlsPlxyXG4gICAgPGFwcC1pbnB1dC1udW1iZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJudW1iZXJJbnB1dFwiIGxhYmVsPVwibnVtYmVyXCI+PC9hcHAtaW5wdXQtbnVtYmVyPlxyXG4gICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBtYi0wIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tU2VhcmNoYWJsZVwiXHJcbiAgICAgIGxhYmVsPVwiQ3VzdG9tLXNlYXJjaGFibGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuICAgIDxhcHAtY2hlY2tib3hcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveFwiXHJcbiAgICAgIHRlcm1zTGFiZWw9XCJUZXJtcyBhbmQgY29uZGl0aW9uc1wiXHJcbiAgICAgIGxhYmVsPVwiY2hlY2stYm94XCJcclxuICAgICAgW2NvbnRhaW5UZXJtc109XCJ0cnVlXCI+PC9hcHAtY2hlY2tib3g+XHJcbiAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dEFyZWFcIiBsYWJlbD1cIlRleHQtYXJlYVwiPjwvYXBwLXRleHRhcmVhPlxyXG4gICAgPGFwcC1kYXRlcGlja2VyXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclwiXHJcbiAgICAgIFttYXRTdWZmaXhdPVwidHJ1ZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXJcIj48L2FwcC1kYXRlcGlja2VyPlxyXG4gICAgPGFwcC1kYXRlLXJhbmdlLXBpY2tlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVQaWNrZXJSYW5nZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXItcmFuZ2VcIlxyXG4gICAgICBbbWF0U3VmZml4XT1cInRydWVcIj48L2FwcC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgIDxhcHAtcmFkaW8gY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBsYWJlbD1cIlJhZGlvXCI+PC9hcHAtcmFkaW8+XHJcbiAgICA8YXBwLXRvZ2dsZS1idXR0b25cclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0b2dnbGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBsYWJlbD1cIlRvZ2dsZS1idXR0b25cIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC10b2dnbGUtYnV0dG9uPlxyXG4gICAgPGFwcC1pbnB1dC10ZWxlcGhvbmUgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWxlcGhvbmVcIiBsYWJlbD1cIlRlbGVwaG9uZVwiPjwvYXBwLWlucHV0LXRlbGVwaG9uZT5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2NhbGxBcGldPVwidHJ1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICBsYWJlbD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdHRhY2htZW50XCI+PC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgIDxhcHAtYXR0YWNobWVudC1zZWN0aW9uXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbZGVzY3JpcHRpb25SZXF1aXJlZF09XCJmYWxzZVwiXHJcbiAgICAgIGxhYmVsPVwiQXR0YWNobWVudCBzZWN0aW9uXCJcclxuICAgICAgW2NvbW1lbnRzUmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXR0YWNobWVudFNlY3Rpb25cIj48L2FwcC1hdHRhY2htZW50LXNlY3Rpb24+XHJcblxyXG5cclxuICAgIDwhLS0gPGFwcC10YWJsZVxyXG4gICAgW2NvbHVtbnNDb25maWddPVwiY29sdW1uc0NvbmZpZ1wiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtpc0Vycm9yXT1cImlzRXJyb3JcIlxyXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgW3Jvd3NdPVwiY2F0ZWdvcnlEYXRhXCIgW2hhc1BhZ2luYXRvcl09XCJ0cnVlXCJcclxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtjdXJyZW50UGFnZV09XCJwYWdlTnVtYmVyXCJcclxuICAgIFt0b3RhbEVsZW1lbnRzXT1cInRvdGFsRWxlbWVudHNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICBjbGFzcz1cIm5ldy1wcmltYXJ5LXRhYmxlIGZ1bGxcIj5cclxuICAgIDwvYXBwLXRhYmxlPiAtLT5cclxuXHJcblxyXG4gIDwvZm9ybT5cclxuXHJcblxyXG48L2Rpdj5cclxuQGlmICghc2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seSkge1xyXG4gIDxkaXYgY2xhc3M9XCJtdC00XCI+XHJcbiAgICA8bGliLWFjdGlvbi1idXR0b25zXHJcbiAgICAgIFtsb3ZPcHRpb25zXT1cImxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zXCJcclxuICAgICAgW2xvdlR5cGVdPVwibG92Py5bJ2RlY2lzaW9uJ10/LnR5cGVcIlxyXG4gICAgICBbc2VjdGlvbl09XCJzZWN0aW9uXCJcclxuICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgIFtzZWN0aW9uc109XCJmb3JtLnNlY3Rpb25zXCJcclxuICAgICAgW3Nob3dBcHByb3ZhbEN5Y2xlXT1cInRydWVcIlxyXG4gICAgICBbY3VzdG9tQ2FsbF09XCJmYWxzZVwiXHJcbiAgICAgIFtmaWVsZHNGb3JtXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgIChjdXN0b21DYWxsRW1pdCk9XCJjdXN0b21DYWxsU3VibWl0KCRldmVudClcIlxyXG4gICAgICAocmVzZXRGb3JtRW1pdCk9XCJyZXNldEZvcm0oKVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
467
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsc0JBQXNCLEVBQzVCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUxRixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7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QThCO2tCQS9CMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FDMUM7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkOytJQU1RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBOT19FUlJPUlNfU0NIRU1BLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7QWN0aW9uU3RhdGVTZXJ2aWNlLCBDb3JlSTE4blNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge05nQ2xhc3N9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxyXG4gIEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50LFxyXG4gIENoZWNrQm94Q29tcG9uZW50LFxyXG4gIEN1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsXHJcbiAgRGF0ZVBpY2tlckNvbXBvbmVudCxcclxuICBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsXHJcbiAgSW5wdXRDb21wb25lbnQsXHJcbiAgSW5wdXRDdXJyZW5jeUNvbXBvbmVudCxcclxuICBJbnB1dEVtYWlsQ29tcG9uZW50LFxyXG4gIElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gIElucHV0VGVsZXBob25lQ29tcG9uZW50LFxyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LFxyXG4gIFRleHRhcmVhQ29tcG9uZW50XHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJlZ2V4UGF0dGVybnMgfSBmcm9tICcuLi8uLi9yZWdleC9yZWdleC1wYXR0ZXJucyc7XHJcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0RvY3NVcGxvYWRlckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuLy8gaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlcXVlc3QtZGV0YWlscy1zZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgQWN0aW9uQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tCb3hDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIElucHV0Q3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSW5wdXRFbWFpbENvbXBvbmVudCxcclxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gICAgUmFkaW9Db21wb25lbnQsXHJcbiAgICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBJbnB1dFRlbGVwaG9uZUNvbXBvbmVudCxcclxuICAgIERvY3NVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGVcclxuICBdXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJlcXVlc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWN0aW9uOiBTZWN0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgbG92OiBhbnk7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nID0gXCJpbmZvLXNlY3Rpb25cIjtcclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBvcHRpb25zOiBzdHJpbmdbXSA9IFsnT3B0aW9uIDEnLCAnT3B0aW9uIDInLCAnT3B0aW9uIDMnXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9TSVpFID0gMTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX1BBR0VfTlVNQkVSID0gMDtcclxuICBwYWdlTnVtYmVyOiBudW1iZXIgPSB0aGlzLkRFRkFVTFRfUEFHRV9OVU1CRVI7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IHRoaXMuREVGQVVMVF9QQUdFX1NJWkU7XHJcbiAgY29sdW1uc0NvbmZpZzogYW55W10gPSBbXTtcclxuICBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcmVxdWlyZWRTZWFyY2hhYmxlOmJvb2xlYW47XHJcblxyXG4gIGlzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgPSBbXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJCZW5xXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAyXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJCNDAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIlNjYW5uZXJcIixcclxuICAgICAgXCJjbGFzc2lmaWNhdGlvbnNcIjogbnVsbCxcclxuICAgICAgXCJjb25zdW1lZENvdW50XCI6IDAsXHJcbiAgICAgIFwiY29uc3VtZWRQZXJjZW50YWdlXCI6IDAsXHJcbiAgICAgIFwic3BlY3NcIjogW1xyXG4gICAgICAgIFwiNEdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhQXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAzXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJFbGl0ZUJvb2tcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjUxMkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhwXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA0XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJMYXNlclwiLFxyXG4gICAgICBcImZpbGVzXCI6IG51bGwsXHJcbiAgICAgIFwidmVuZG9yc1wiOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiA3MSxcclxuICAgICAgICAgIFwidmVuZG9yTmFtZVwiOiBudWxsLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOdW1iZXJcIjogXCIyNlwiLFxyXG4gICAgICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiVmVuZG9yRHRvXCJcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogbnVsbCxcclxuICAgICAgXCJhc3NldFR5cGVcIjogXCJQcmludGVyXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjJHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJBc3VzXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA1XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJBNTAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIkxhcHRvcFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIxVEJcIlxyXG4gICAgICBdLFxyXG4gICAgICBcInN1bVF1YW50aXR5XCI6IDEsXHJcbiAgICAgIFwiX190eXBlbmFtZVwiOiBcIkFsbEFzc2V0c0R0b1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiRGVsbFwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwN1wiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiTGF0aXR1ZGVcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjFUQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogNCxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJTYW1zdW5nXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA4XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJHYWxheHlcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiVGFibGV0XCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjI1NkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgdG90YWxFbGVtZW50czogbnVtYmVyID0gNjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblN0YXRlU2VydmljZTogQWN0aW9uU3RhdGVTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVRhYmxlQ29uZmlnKClcclxuICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHJlcz0+IHtcclxuICAgICAgaWYgKHJlcyl7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXN0b21TZWFyY2hhYmxlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgIHRoaXMucmVxdWlyZWRTZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSlcclxuICAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1c3RvbVNlYXJjaGFibGUnKS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSA9IGZhbHNlXHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5yZXF1aXJlZFNlYXJjaGFibGUpXHJcbiAgICAgICB9XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1c3RvbVNlYXJjaGFibGUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBpbml0aWFsaXplVGFibGVDb25maWcoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5zKClcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbkNvbmZpZygpXHJcblxyXG59XHJcbmluaXRpYWxpemVDb2x1bW5zKCkge1xyXG4gIHRoaXMuY29sdW1ucyA9IFsnaWQnLCAnYXNzZXRUeXBlJywgJ2JyYW5kJywgJ21vZGVsJywgJ3N1bVF1YW50aXR5JywgJ3NwZWNzJywgJ2FsbG9jYXRlJ107XHJcbn1cclxuXHJcbmluaXRpYWxpemVDb2x1bW5Db25maWcoKSB7XHJcbiAgdGhpcy5jb2x1bW5zQ29uZmlnID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJ0lkJyxcclxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdBc3NldCBUeXBlJyxcclxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdCcmFuZCcsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdNb2RlbCcsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdRdWFudGl0eScsXHJcbiAgICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdDYXBhY2l0eScsXHJcbiAgICAgICAgICB0eXBlOiAnc3BlY3MnLFxyXG4gICAgICAgICAgY2xpY2thYmxlVGV4dDogJ1ZpZXcnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ0FjdGlvbnMnLFxyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25zJyxcclxuICAgICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAgICB7dmlld01vZGU6ICdhbGxvY2F0ZScsIGFjdGlvbk5hbWU6IFwiQWxsb2NhdGVcIiwgZGlzYWJsZWQ6dHJ1ZX0sXHJcbiAgICAgICAgICAge3ZpZXdNb2RlOiAnZWRpdCcsIGFjdGlvbk5hbWU6IFwiRWRpdFwiLCBhY3Rpb246IFwiZWRpdFwiLG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEFzc2V0KGFzc2V0KTtcclxuICAgICAgICB9LH0sXHJcbiAgICAgICAge3ZpZXdNb2RlOiAnZGVsZXRlJywgYWN0aW9uTmFtZTogXCJEZWxldGVcIiwgYWN0aW9uOiBcImRlbGV0ZVwiLG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUFzc2V0KGFzc2V0KTtcclxuICAgICAgfSx9LFxyXG4gICAgICB7dmlld01vZGU6ICdjaGFydCcsIGFjdGlvbk5hbWU6IFwiQ2hhcnRcIiwgYWN0aW9uOlwiY2hhcnRcIn0sXHJcbiAgICAgICAgICBdXHJcbiAgICB9LFxyXG4gIF07XHJcbn1cclxuXHJcblxyXG4gIGNyZWF0ZUZvcm0oKSB7XHJcbiAgICBsZXQgbmV3Rm9ybSA9IHtcclxuICAgICAgaW5wdXQxOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICBuZXdGb3JtW29wdGlvbi52YWx1ZV0gPSBbJyddO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgY3VycmVuY3lJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBlbWFpbElucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIG51bWJlcklucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGN1c3RvbVNlYXJjaGFibGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgY2hlY2tib3g6IG5ldyBGb3JtQ29udHJvbChudWxsICxbVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgdGV4dEFyZWE6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLm1heExlbmd0aCg1KV0pLFxyXG4gICAgICBkYXRlUGlja2VyOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGRhdGVQaWNrZXJSYW5nZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICByYWRpbzogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0b2dnbGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGVsZXBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHNlYXJjaEVtcGxveWVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIC4uLm5ld0Zvcm0sXHJcbiAgICAgIGF0dGFjaG1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgYXR0YWNobWVudFNlY3Rpb246IG5ldyBGb3JtQ29udHJvbChbXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICB9KTtcclxuICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgbGV0IGlzQWN0aW9uVmFsaWQgPSB0aGlzLmNoZWNrVmFsaWRpdHkob3B0aW9uLnZhbHVlKTtcclxuICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAgICAgY29uc29sZS5sb2coaXNBY3Rpb25WYWxpZClcclxuICAgICBcclxuICAgIH0pXHJcblxyXG4gICAgXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gIC8vICAgICBpbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBjdXJyZW5jeUlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIGVtYWlsSW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgbnVtYmVySW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgY3VzdG9tU2VhcmNoYWJsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBjaGVja2JveDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICB0ZXh0QXJlYTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICBkYXRlUGlja2VyOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIGRhdGVQaWNrZXJSYW5nZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICByYWRpbzogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIC8vICAgICB0b2dnbGU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgdGVsZXBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIHNlYXJjaEVtcGxveWVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgLy8gICAgIC8vIC4uLm5ld0Zvcm0sXHJcbiAgLy8gICAgIGF0dGFjaG1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAvLyAgICAgYXR0YWNobWVudFNlY3Rpb246IG5ldyBGb3JtQ29udHJvbChbXSksXHJcbiAgLy8gICB9KTtcclxuICAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpO1xyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0aWxzKTtcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMubG92Py5bJ2FwcHJvdmVyQWN0aW9ucyddPy5vcHRpb25zKVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpc0FjdGlvblZhbGlkKVxyXG4gICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICAgLyEqe1xyXG4gIC8vICAgICAgICAgaW5wdXQxOiB0aGlzLmZpZWxkc0Zvcm0uZ2V0KCdpbnB1dDEnKS52YWx1ZVxyXG4gIC8vICAgICAgIH0qIS9cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIC8vICAgY3JlYXRlRm9ybSgpIHtcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgLy8gICAgIGN1c3RvbWVyTmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgLy8gICAgIGN1c3RvbWVyUGhvbmU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICByZWFzb25Gb3JSZXF1ZXN0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbFR5cGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBjZW50ZXJPZkNhbGxzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbERhdGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBhZ3JlZW1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV0pLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAvLyAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAvLyAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmUgPSB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmU/LmUxNjROdW1iZXJcclxuICAvLyAgICAgICAvLyB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCA9ICh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCkudG9TdHJpbmcoKVxyXG5cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zKVxyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscylcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCB0aGlzLmZvcm1Hcm91cC52YWx1ZSlcclxuICAvLyB9XHJcblxyXG4gIGVkaXRBc3NldChhc3NldCl7XHJcbiAgICBjb25zb2xlLmxvZyhhc3NldClcclxuICB9XHJcbiAgc3RhcnRzV2l0aERNT0VPckNSKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiAodmFsdWUuc3RhcnRzV2l0aCgnRE1PRS0nKSB8fCB2YWx1ZS5zdGFydHNXaXRoKCdDUi0nKSkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDsgLy8gVmFsaWRcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBzdGFydHNXaXRoSW52YWxpZDogdHJ1ZSB9OyAvLyBJbnZhbGlkXHJcbiAgICB9O1xyXG4gIH1cclxuICBkZWxldGVBc3NldChhc3NldCl7XHJcbiAgICBjb25zb2xlLmxvZyhhc3NldClcclxuICB9XHJcblxyXG4gIGZvcm1WYWx1ZShmb3JtKXtcclxuY29uc29sZS5sb2coZm9ybS52YWx1ZSlcclxuICB9XHJcblxyXG4gIGNoZWNrVmFsaWRpdHkoYWN0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ1NVQk1JVCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xyXG4gICAgICBjYXNlICdBUFBST1ZFJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSAnUkVKRUNUJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICAgIGNhc2UgJ1NFTkRCQUNLJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICAgICAgY2FzZSAnU0FWRV9DSEFOR0VTJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tQ2FsbFN1Ym1pdChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCBhY3Rpb24pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpXHJcbiAgfVxyXG5cclxuICBwYWdlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBldmVudC5wYWdlSW5kZXhcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZVxyXG59XHJcblxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGZvcm0gW25nQ2xhc3NdPVwieydmb3JtLXNlY3Rpb24tZGl2aWRlIGZvcm0tc2VjdGlvbic6IXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHksJ2luZm8tc2VjdGlvbic6c2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seX1cIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxyXG5cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgIFthcnJheUxpc3RdPVwiZm9ybUdyb3VwLmdldCgnc2VhcmNoRW1wbG95ZWUnKS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1zZWFyY2gtZW1wbG95ZWVcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1pbnB1dCBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCIgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiIFtsb2FkaW5nXT1cInRydWVcIiB0eXBlPVwiZW5Pbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXRcIiBsYWJlbD1cIklucHV0XCI+PC9hcHAtaW5wdXQ+XHJcbiAgICA8YXBwLWlucHV0LWN1cnJlbmN5IGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lJbnB1dFwiIGxhYmVsPVwiY3VycmVuY3lcIj48L2FwcC1pbnB1dC1jdXJyZW5jeT5cclxuICAgIDxhcHAtaW5wdXQtZW1haWwgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbElucHV0XCIgbGFiZWw9XCJlbWFpbFwiPjwvYXBwLWlucHV0LWVtYWlsPlxyXG4gICAgPGFwcC1pbnB1dC1udW1iZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJudW1iZXJJbnB1dFwiIGxhYmVsPVwibnVtYmVyXCI+PC9hcHAtaW5wdXQtbnVtYmVyPlxyXG4gICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBtYi0wIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tU2VhcmNoYWJsZVwiXHJcbiAgICAgIGxhYmVsPVwiQ3VzdG9tLXNlYXJjaGFibGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuICAgIDxhcHAtY2hlY2tib3hcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveFwiXHJcbiAgICAgIHRlcm1zTGFiZWw9XCJUZXJtcyBhbmQgY29uZGl0aW9uc1wiXHJcbiAgICAgIGxhYmVsPVwiY2hlY2stYm94XCJcclxuICAgICAgW2NvbnRhaW5UZXJtc109XCJ0cnVlXCI+PC9hcHAtY2hlY2tib3g+XHJcbiAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dEFyZWFcIiBsYWJlbD1cIlRleHQtYXJlYVwiPjwvYXBwLXRleHRhcmVhPlxyXG4gICAgPGFwcC1kYXRlcGlja2VyXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclwiXHJcbiAgICAgIFttYXRTdWZmaXhdPVwidHJ1ZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXJcIj48L2FwcC1kYXRlcGlja2VyPlxyXG4gICAgPGFwcC1kYXRlLXJhbmdlLXBpY2tlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVQaWNrZXJSYW5nZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXItcmFuZ2VcIlxyXG4gICAgICBbbWF0U3VmZml4XT1cInRydWVcIj48L2FwcC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgIDxhcHAtcmFkaW8gY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBsYWJlbD1cIlJhZGlvXCI+PC9hcHAtcmFkaW8+XHJcbiAgICA8YXBwLXRvZ2dsZS1idXR0b25cclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0b2dnbGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBsYWJlbD1cIlRvZ2dsZS1idXR0b25cIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC10b2dnbGUtYnV0dG9uPlxyXG4gICAgPGFwcC1pbnB1dC10ZWxlcGhvbmUgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWxlcGhvbmVcIiBsYWJlbD1cIlRlbGVwaG9uZVwiPjwvYXBwLWlucHV0LXRlbGVwaG9uZT5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2NhbGxBcGldPVwidHJ1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICBsYWJlbD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdHRhY2htZW50XCI+PC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgIDxhcHAtYXR0YWNobWVudC1zZWN0aW9uXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbZGVzY3JpcHRpb25SZXF1aXJlZF09XCJmYWxzZVwiXHJcbiAgICAgIGxhYmVsPVwiQXR0YWNobWVudCBzZWN0aW9uXCJcclxuICAgICAgW2NvbW1lbnRzUmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXR0YWNobWVudFNlY3Rpb25cIj48L2FwcC1hdHRhY2htZW50LXNlY3Rpb24+XHJcblxyXG5cclxuICAgIDwhLS0gPGFwcC10YWJsZVxyXG4gICAgW2NvbHVtbnNDb25maWddPVwiY29sdW1uc0NvbmZpZ1wiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtpc0Vycm9yXT1cImlzRXJyb3JcIlxyXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgW3Jvd3NdPVwiY2F0ZWdvcnlEYXRhXCIgW2hhc1BhZ2luYXRvcl09XCJ0cnVlXCJcclxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtjdXJyZW50UGFnZV09XCJwYWdlTnVtYmVyXCJcclxuICAgIFt0b3RhbEVsZW1lbnRzXT1cInRvdGFsRWxlbWVudHNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICBjbGFzcz1cIm5ldy1wcmltYXJ5LXRhYmxlIGZ1bGxcIj5cclxuICAgIDwvYXBwLXRhYmxlPiAtLT5cclxuXHJcblxyXG4gIDwvZm9ybT5cclxuXHJcblxyXG48L2Rpdj5cclxuQGlmICghc2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seSkge1xyXG4gIDxkaXYgY2xhc3M9XCJtdC00XCI+XHJcbiAgICA8bGliLWFjdGlvbi1idXR0b25zXHJcbiAgICAgIFtsb3ZPcHRpb25zXT1cImxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zXCJcclxuICAgICAgW2xvdlR5cGVdPVwibG92Py5bJ2RlY2lzaW9uJ10/LnR5cGVcIlxyXG4gICAgICBbc2VjdGlvbl09XCJzZWN0aW9uXCJcclxuICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgIFtzZWN0aW9uc109XCJmb3JtLnNlY3Rpb25zXCJcclxuICAgICAgW3Nob3dBcHByb3ZhbEN5Y2xlXT1cInRydWVcIlxyXG4gICAgICBbY3VzdG9tQ2FsbF09XCJmYWxzZVwiXHJcbiAgICAgIFtmaWVsZHNGb3JtXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgIChjdXN0b21DYWxsRW1pdCk9XCJjdXN0b21DYWxsU3VibWl0KCRldmVudClcIlxyXG4gICAgICAocmVzZXRGb3JtRW1pdCk9XCJyZXNldEZvcm0oKVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|