ca-components 1.7.993 → 1.7.995

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.
@@ -243,7 +243,7 @@ export class CaLocationFilterComponent {
243
243
  // modules
244
244
  AngularSvgIconModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: HttpClientModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type:
245
245
  // components
246
- CaTabSwitchComponent, selector: "app-ca-tab-switch", inputs: ["tabs", "type", "hasDashboardHeight", "subPeriodDropdownList", "selectedSubPeriod", "isClearCustomPeriodRangeValue", "isDisabled", "isBold", "isMarginTopDisabled"], outputs: ["switchClicked", "customPeriodRangeEmitter", "customPeriodRangeSubperiodEmitter", "popoverClosedEmitter"] }, { kind: "component", type: CaInputAddressDropdownComponent, selector: "app-ca-input-address-dropdown", inputs: ["placeholderType", "activeAddress", "receivedAddressData", "receivedAddressList", "inputConfig", "commandHandler", "isRouting", "closedBorder", "incorrectValue", "hideEmptyLoaded", "addresList", "template"], outputs: ["sentAddressValue", "selectedAddress", "sentAddressData", "closeDropdown", "commandEvent", "changeFlag", "incorrectEvent"] }, { kind: "component", type: CaNgxSliderComponent, selector: "app-ca-ngx-slider", inputs: ["sliderTemplate", "sliderName", "sliderOptions", "startedValue", "customClass", "minValue", "maxValue", "isDisabled"], outputs: ["onUserValueChange", "onUserHighValueChange"] }], animations: [
246
+ CaTabSwitchComponent, selector: "app-ca-tab-switch", inputs: ["tabs", "type", "hasDashboardHeight", "subPeriodDropdownList", "selectedSubPeriod", "isClearCustomPeriodRangeValue", "isDisabled", "isBold", "isMarginTopDisabled"], outputs: ["switchClicked", "customPeriodRangeEmitter", "customPeriodRangeSubperiodEmitter", "popoverClosedEmitter"] }, { kind: "component", type: CaInputAddressDropdownComponent, selector: "app-ca-input-address-dropdown", inputs: ["placeholderType", "activeAddress", "receivedAddressData", "receivedAddressList", "parkingList", "inputConfig", "commandHandler", "isRouting", "closedBorder", "incorrectValue", "hideEmptyLoaded", "addresList", "template"], outputs: ["sentAddressValue", "selectedAddress", "sentAddressData", "closeDropdown", "commandEvent", "changeFlag", "incorrectEvent"] }, { kind: "component", type: CaNgxSliderComponent, selector: "app-ca-ngx-slider", inputs: ["sliderTemplate", "sliderName", "sliderOptions", "startedValue", "customClass", "minValue", "maxValue", "isDisabled"], outputs: ["onUserValueChange", "onUserHighValueChange"] }], animations: [
247
247
  inOutAnimation('inOutAnimation'),
248
248
  showAnimation('showAnimation'),
249
249
  areaLeftSideAnimation('areaLeftSideAnimation'),
@@ -290,4 +290,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
290
290
  }], sentAddressData: [{
291
291
  type: Output
292
292
  }] } });
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUNILFdBQVcsRUFDWCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLGFBQWE7QUFDYixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnR0FBZ0csQ0FBQztBQUVuSSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNB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Q0FBQyxnQkFBZ0IsQ0FBQztZQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO1lBQzlCLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDO1lBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO1NBQ25EOzs0RkFFUSx5QkFBeUI7a0JBeEJyQyxTQUFTOytCQUNJLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ0wsVUFBVTt3QkFDVixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0Isb0JBQW9CO3FCQUN2QixjQUdXO3dCQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUIscUJBQXFCLENBQUMsdUJBQXVCLENBQUM7d0JBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO3FCQUNuRDt1RkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRVcsZ0JBQWdCO3NCQUFoQyxNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXItc2xpZGVyL25neC1zbGlkZXInO1xuaW1wb3J0IHtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuLy8gZW51bXNcbmltcG9ydCB7IGVMb2FkU3RhdHVzLCBlR2VuZXJhbEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBUb29sYmFyRmlsdGVyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uLy4uL2NhLW1hcC9lbnVtcy90b29sYmFyLWZpbHRlci1zdHJpbmcuZW51bSc7XG5cbi8vIHZhbGlkYXRvcnNcbmltcG9ydCB7IGFkZHJlc3NWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL3ZhbGlkYXRvcnMvY2EtaW5wdXQtYWRkcmVzcy5yZWdleC12YWxpZGF0aW9ucyc7XG5cbi8vIGFuaW1hdGlvbnNcbmltcG9ydCB7IGluT3V0QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9pbi1vdXQuYW5pbWF0aW9uJztcbmltcG9ydCB7IHNob3dBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL3Nob3cuYW5pbWF0aW9uJztcbmltcG9ydCB7IGFyZWFMZWZ0U2lkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvYXJlYS1sZWZ0LXNpZGUuYW5pbWF0aW9uJztcbmltcG9ydCB7IGFyZWFSaWdodFNpZGVBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2FyZWEtcmlnaHQtc2lkZS5hbmltYXRpb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcbmltcG9ydCB7IEFyZWFCb3hUYWIgfSBmcm9tICcuL21vZGVscy9hcmVhLWJveC10YWIubW9kZWwnO1xuaW1wb3J0IHsgU2VudEFkZHJlc3NEYXRhIH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9tb2RlbHMvc2VudC1hZGRyZXNzLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3RSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9hZGRyZXNzLWxpc3QtcmVzcG9uc2UubW9kZWwnO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IEZpbHRlckNvbmZpZ0NvbnN0YW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbnN0YW50cy9maWx0ZXItY29uZmlnLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBMb2NhdGlvbkZpbHRlckNvbnN0YW50cyB9IGZyb20gJy4vdXRpbHMvY29uc3RhbnRzL2xvY2F0aW9uLWZpbHRlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jb25maWcnO1xuaW1wb3J0IHsgQ2FMb2NhdGlvbkZpbHRlckNvbmZpZyB9IGZyb20gJy4vY29uZmlnL2NhLWxvY2F0aW9uLWZpbHRlci5jb25maWcnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYVRhYlN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NhLXRhYi1zd2l0Y2gvY2EtdGFiLXN3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dEFkZHJlc3NEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYU5neFNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NhLW5neC1zbGlkZXIvY2Etbmd4LXNsaWRlci5jb21wb25lbnQnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFkZHJlc3NEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3QgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWxpc3QubW9kZWwnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtbG9jYXRpb24tZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gbW9kdWxlc1xuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgLy8gY29tcG9uZW50c1xuICAgICAgICBDYVRhYlN3aXRjaENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dEFkZHJlc3NEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgQ2FOZ3hTbGlkZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1sb2NhdGlvbi1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIGluT3V0QW5pbWF0aW9uKCdpbk91dEFuaW1hdGlvbicpLFxuICAgICAgICBzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksXG4gICAgICAgIGFyZWFMZWZ0U2lkZUFuaW1hdGlvbignYXJlYUxlZnRTaWRlQW5pbWF0aW9uJyksXG4gICAgICAgIGFyZWFSaWdodFNpZGVBbmltYXRpb24oJ2FyZWFSaWdodFNpZGVBbmltYXRpb24nKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUxvY2F0aW9uRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9Eb1N1YlR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNMZWdlbmRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0FyZWFGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFkZHJlc3NMaXN0ITogQWRkcmVzc0xpc3RbXTtcblxuICAgIEBJbnB1dCgpIHJlY2VpdmVkQWRkcmVzc0xpc3QhOiBBZGRyZXNzTGlzdFJlc3BvbnNlO1xuICAgIEBJbnB1dCgpIHJlY2VpdmVkQWRkcmVzc0RhdGEhOiBBZGRyZXNzRGF0YTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VudEFkZHJlc3NWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKSBzZW50QWRkcmVzc0RhdGE6IEV2ZW50RW1pdHRlcjxTZW50QWRkcmVzc0RhdGE+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxTZW50QWRkcmVzc0RhdGE+KCk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBsb2NhdGlvblNsaWRlckRhdGE6IE9wdGlvbnMgPVxuICAgICAgICBGaWx0ZXJDb25maWdDb25zdGFudHMuTE9DQVRJT05fU0xJREVSX0RBVEE7XG5cbiAgICBwdWJsaWMgbG9jYXRpb25OYW1lU2V0ITogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgbG9jYXRpb25Gb3JtITogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBsb2NhdGlvblJhbmdlOiBudW1iZXIgPSAyNTtcbiAgICBwdWJsaWMgbG9jYXRpb25SYW5nZVNldDogbnVtYmVyID0gMjU7XG5cbiAgICBwdWJsaWMgbG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgbGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIG9yaWdpbkxvbmdWYWw6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG9yaWdpbkxhdFZhbDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBkZXN0TG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdExhdFZhbDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBsb25nVmFsdWVTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGxhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBvcmlnaW5Mb25nVmFsU2V0OiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBvcmlnaW5MYXRWYWxTZXQ6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgZGVzdExvbmdWYWxTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGRlc3RMYXRWYWxTZXQ6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RlZFZpc2libGVDb3VudDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgYXJlYUZpbHRlclNlbGVjdGVkITogc3RyaW5nO1xuXG4gICAgcHVibGljIGlzQnV0dG9uQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzQXNjZW5kaW5nU29ydE9yZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBsb2FkU3RhdHVzRW51bSA9IGVMb2FkU3RhdHVzO1xuICAgIHB1YmxpYyBmaWx0ZXJBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyB0b3RhbEZpbHRlcnNOdW06IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgYXJlYUZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBsb2NhdGlvblN0YXRlITogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgcmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdGluYXRpb25TdGF0ZSE6IHN0cmluZztcbiAgICBwdWJsaWMgb3JpZ2luU3RhdGUhOiBzdHJpbmc7XG4gICAgcHVibGljIGhhc1NpZGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBhcmVhQm94VGFiOiBBcmVhQm94VGFiW10gPSBMb2NhdGlvbkZpbHRlckNvbnN0YW50cy5BUkVBX0JPWF9UQUI7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG5cbiAgICAgICAgdGhpcy53YXRjaExvY2F0aW9uRm9ybVZhbHVlQ2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMud2F0Y2hBcmVhRm9ybVZhbHVlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCBnZXRPcmlnaW5Db250cm9sKCk6IElDYUlucHV0IHtcbiAgICAgICAgcmV0dXJuIENhTG9jYXRpb25GaWx0ZXJDb25maWcub3JpZ2luQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGdldCBnZXREZXN0aW5hdGlvbkNvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5kZXN0aW5hdGlvbkNvbnRyb2woKTtcbiAgICB9XG5cbiAgICBnZXQgZ2V0QWRkcmVzc0NvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5hZGRyZXNzQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge31cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGFkZHJlc3M6IFtudWxsLCBbLi4uYWRkcmVzc1ZhbGlkYXRpb25dXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcmVhRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgb3JpZ2luOiBbbnVsbCwgWy4uLmFkZHJlc3NWYWxpZGF0aW9uXV0sXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogW251bGwsIFsuLi5hZGRyZXNzVmFsaWRhdGlvbl1dLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoTG9jYXRpb25Gb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxPQ0FUSU9OO1xuXG4gICAgICAgIGlmICh0aGlzLmxvY2F0aW9uRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VzLmFkZHJlc3MpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hBcmVhRm9ybVZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXJlYUZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuYXJlYUZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VzLm9yaWdpbilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMuZGVzdGluYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkFyZWFGaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgRmlsdGVySGVscGVyLmhhbmRsZUFyZWFGaWx0ZXJDbG9zZShcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25Gb3JtLFxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQsXG4gICAgICAgICAgICB0aGlzLmxvbmdWYWwsXG4gICAgICAgICAgICB0aGlzLmxhdFZhbCxcbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0LFxuICAgICAgICAgICAgdGhpcy5sYXRWYWxTZXQsXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2UsXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJDaGFuZ2UoXG4gICAgICAgIGV2ZW50OiB7IGlkOiBudW1iZXI7IG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSxcbiAgICAgICAgc3ViVHlwZTogc3RyaW5nXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzU2lkZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgIGlmIChldmVudC5uYW1lKSB0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCA9IGV2ZW50Lm5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpbHRlclZhbHVlKCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICAgICAgY29uc3Qgc3ViVHlwZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIudG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAodGhpcy5hcmVhRmlsdGVyU2VsZWN0ZWQgIT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT04pIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIG9yaWdpbkxhdFZhbHVlOiB0aGlzLm9yaWdpbkxhdFZhbCxcbiAgICAgICAgICAgICAgICBvcmlnaW5Mb25nVmFsdWU6IHRoaXMub3JpZ2luTG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxhdFZhbHVlOiB0aGlzLmRlc3RMYXRWYWwsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25Mb25nVmFsdWU6IHRoaXMuZGVzdExvbmdWYWwsXG4gICAgICAgICAgICAgICAgcmFuZ2VWYWx1ZTogdGhpcy5sb2NhdGlvblJhbmdlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5MYXRWYWxTZXQgPSB0aGlzLm9yaWdpbkxhdFZhbDtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbFNldCA9IHRoaXMub3JpZ2luTG9uZ1ZhbDtcbiAgICAgICAgICAgIHRoaXMuZGVzdExvbmdWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5kZXN0TGF0VmFsU2V0ID0gdGhpcy5kZXN0TGF0VmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgbG9uZ1ZhbHVlOiB0aGlzLmxvbmdWYWwsXG4gICAgICAgICAgICAgICAgbGF0VmFsdWU6IHRoaXMubGF0VmFsLFxuICAgICAgICAgICAgICAgIHJhbmdlVmFsdWU6IHRoaXMubG9jYXRpb25SYW5nZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0ID0gdGhpcy5sb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5sYXRWYWxTZXQgPSB0aGlzLmxhdFZhbDtcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZVNldCA9IHRoaXMubG9jYXRpb25SYW5nZTtcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gdGhpcy5sb2NhdGlvbkZvcm0uZ2V0KCdhZGRyZXNzJyk/LnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLlNFVCxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgc3ViVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICAgICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgICBhZGRyZXNzOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcmVhRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgICBvcmlnaW46IG51bGwsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9jYXRpb25SYW5nZSA9IDI1O1xuICAgICAgICB0aGlzLmxvY2F0aW9uU3RhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLmxvbmdWYWwgPSAwO1xuICAgICAgICB0aGlzLmxhdFZhbCA9IDA7XG4gICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMub3JpZ2luTGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMuZGVzdExhdFZhbCA9IDA7XG4gICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gbnVsbDtcblxuICAgICAgICB0aGlzLmxvbmdWYWx1ZVNldCA9IHRoaXMubG9uZ1ZhbDtcbiAgICAgICAgdGhpcy5sYXRWYWxTZXQgPSB0aGlzLmxhdFZhbDtcbiAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsU2V0ID0gdGhpcy5vcmlnaW5Mb25nVmFsO1xuICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbFNldCA9IHRoaXMub3JpZ2luTGF0VmFsO1xuICAgICAgICB0aGlzLmRlc3RMYXRWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICB0aGlzLmRlc3RMb25nVmFsU2V0ID0gdGhpcy5kZXN0TG9uZ1ZhbDtcbiAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGVHZW5lcmFsQWN0aW9ucy5DTEVBUixcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJhbmdlVmFsdWUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihpbnB1dEVsZW1lbnQudmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSKVxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2UgdGhpcy5sb2NhdGlvblJhbmdlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVJhbmdlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICAvL2xlYXZlIHRoaXMgYW55IGZvciBub3dcbiAgICAgICAgaWYgKHRoaXMudHlwZSAhPT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSKVxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2UgdGhpcy5sb2NhdGlvblJhbmdlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0U2VsZWN0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZW50QWRkcmVzc1ZhbHVlLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmxvY2F0aW9uTmFtZVNldCA9IGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcmlnaW5TZWxlY3QoZXZlbnQ6IEFkZHJlc3NEYXRhKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudD8uYWRkcmVzcz8uYWRkcmVzcykgdGhpcy5vcmlnaW5TdGF0ZSA9IGV2ZW50LmFkZHJlc3MuYWRkcmVzcztcblxuICAgICAgICBpZiAoZXZlbnQ/LmxvbmdMYXQgJiYgZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVMb2NhdGlvbkNoYW5nZShldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb25nVmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxvbmdpdHVkZSA/PyAwO1xuICAgICAgICB0aGlzLmxhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZSA/PyAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVEZXN0aW5hdGlvblNlbGVjdChldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Py5hZGRyZXNzPy5hZGRyZXNzKVxuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvblN0YXRlID0gZXZlbnQuYWRkcmVzcy5hZGRyZXNzO1xuXG4gICAgICAgIGlmIChldmVudD8ubG9uZ0xhdCAmJiBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdExvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlIHx8IDA7XG4gICAgICAgICAgICB0aGlzLmRlc3RMYXRWYWwgPSBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ2FGaWx0ZXJzU3ZnUm91dGVzW3Byb3BlcnR5TmFtZV0gYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVBZGRyZXNzRGF0YShldmVudDogU2VudEFkZHJlc3NEYXRhKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VudEFkZHJlc3NEYXRhLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYXJlYUZpbHRlckhvbGRlclwiIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCI+XG4gICAgPGFwcC1jYS10YWItc3dpdGNoXG4gICAgICAgIFt0YWJzXT1cImFyZWFCb3hUYWJcIlxuICAgICAgICAoc3dpdGNoQ2xpY2tlZCk9XCJvblRhYkNoYW5nZSgkZXZlbnQsICdSRVFVRVNUUy1CT1gnKVwiXG4gICAgICAgIFt0eXBlXT1cIid0eXBlMi1tb2RhbC1wb3B1cCdcIlxuICAgID5cbiAgICA8L2FwcC1jYS10YWItc3dpdGNoPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXJlYS1hbGwtaG9sZGVyIGQtZmxleCBmbGV4LXdyYXAgZmxleC1yb3dcIj5cbiAgICBAaWYgKGlzQXJlYUZpbHRlciAmJiBhcmVhRmlsdGVyU2VsZWN0ZWQgIT09ICdMb2NhdGlvbicpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tcGFydC1ob2xkZXJcIiBbQGFyZWFSaWdodFNpZGVBbmltYXRpb25dPVwiJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJlYS1mb3Jtcy1ob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiYXJlYUZvcm1cIlxuICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJlYS1zaW5nbGUtZm9ybS1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmlnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldE9yaWdpbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyVHlwZV09XCInc2hvcnRBZGRyZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzTGlzdF09XCJhZGRyZXNzTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBZGRyZXNzKT1cImhhbmRsZU9yaWdpblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEtc2luZ2xlLWZvcm0taG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldERlc3RpbmF0aW9uQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEFkZHJlc3MpPVwiaGFuZGxlRGVzdGluYXRpb25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1wYXJ0LWhvbGRlclwiIFtAYXJlYUxlZnRTaWRlQW5pbWF0aW9uXT1cIidpbidcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1taWRkbGUtaG9sZGVyIGxvY2F0aW9uLW1pZGRsZS1wYWRkaW5nXCJcbiAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJsb2NhdGlvbkZvcm1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldEFkZHJlc3NDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyVHlwZV09XCInc2hvcnRBZGRyZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbnRBZGRyZXNzVmFsdWUpPVwiaGFuZGxlSW5wdXRTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWNlaXZlZEFkZHJlc3NMaXN0XT1cInJlY2VpdmVkQWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbcmVjZWl2ZWRBZGRyZXNzRGF0YV09XCJyZWNlaXZlZEFkZHJlc3NEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbnRBZGRyZXNzRGF0YSk9XCJoYW5kbGVBZGRyZXNzRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWRkcmVzcyk9XCJoYW5kbGVMb2NhdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmlsdGVyLW1pZGRsZS1ob2xkZXIgbG9jYXRpb24tc2xpZGVyLW1pZGRsZS1wYWRkaW5nXCJcbiAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1uZXctdmFsdWUtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLXRleHRcIj5SYW5nZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLWZsZXgtaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAob25Vc2VyVmFsdWVDaGFuZ2UpPVwic2V0UmFuZ2VWYWx1ZSgkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1uZ3gtc2xpZGVyXG4gICAgICAgICAgICAgICAgICAgIFtzbGlkZXJPcHRpb25zXT1cImxvY2F0aW9uU2xpZGVyRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGFydGVkVmFsdWVdPVwibG9jYXRpb25SYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3VzdG9tLXNsaWRlci1maWx0ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uVXNlclZhbHVlQ2hhbmdlKT1cImNoYW5nZVJhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvYXBwLWNhLW5neC1zbGlkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIGJvdHRvbS1ib3JkZXItbWFyZ2luXCI+PC9kaXY+XG4iXX0=
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1sb2NhdGlvbi1maWx0ZXIvY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUNILFdBQVcsRUFDWCxtQkFBbUIsR0FHdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLGFBQWE7QUFDYixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnR0FBZ0csQ0FBQztBQUVuSSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNB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Q0FBQyxnQkFBZ0IsQ0FBQztZQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO1lBQzlCLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDO1lBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO1NBQ25EOzs0RkFFUSx5QkFBeUI7a0JBeEJyQyxTQUFTOytCQUNJLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ0wsVUFBVTt3QkFDVixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0Isb0JBQW9CO3FCQUN2QixjQUdXO3dCQUNSLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUIscUJBQXFCLENBQUMsdUJBQXVCLENBQUM7d0JBQzlDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO3FCQUNuRDt1RkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRVcsZ0JBQWdCO3NCQUFoQyxNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXItc2xpZGVyL25neC1zbGlkZXInO1xuaW1wb3J0IHtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuLy8gZW51bXNcbmltcG9ydCB7IGVMb2FkU3RhdHVzLCBlR2VuZXJhbEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBUb29sYmFyRmlsdGVyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uLy4uL2NhLW1hcC9lbnVtcy90b29sYmFyLWZpbHRlci1zdHJpbmcuZW51bSc7XG5cbi8vIHZhbGlkYXRvcnNcbmltcG9ydCB7IGFkZHJlc3NWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL3ZhbGlkYXRvcnMvY2EtaW5wdXQtYWRkcmVzcy5yZWdleC12YWxpZGF0aW9ucyc7XG5cbi8vIGFuaW1hdGlvbnNcbmltcG9ydCB7IGluT3V0QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9pbi1vdXQuYW5pbWF0aW9uJztcbmltcG9ydCB7IHNob3dBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL3Nob3cuYW5pbWF0aW9uJztcbmltcG9ydCB7IGFyZWFMZWZ0U2lkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvYXJlYS1sZWZ0LXNpZGUuYW5pbWF0aW9uJztcbmltcG9ydCB7IGFyZWFSaWdodFNpZGVBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2FyZWEtcmlnaHQtc2lkZS5hbmltYXRpb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcbmltcG9ydCB7IEFyZWFCb3hUYWIgfSBmcm9tICcuL21vZGVscy9hcmVhLWJveC10YWIubW9kZWwnO1xuaW1wb3J0IHsgU2VudEFkZHJlc3NEYXRhIH0gZnJvbSAnLi4vLi4vLi4vY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9tb2RlbHMvc2VudC1hZGRyZXNzLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3RSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9hZGRyZXNzLWxpc3QtcmVzcG9uc2UubW9kZWwnO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IEZpbHRlckNvbmZpZ0NvbnN0YW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbnN0YW50cy9maWx0ZXItY29uZmlnLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBMb2NhdGlvbkZpbHRlckNvbnN0YW50cyB9IGZyb20gJy4vdXRpbHMvY29uc3RhbnRzL2xvY2F0aW9uLWZpbHRlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC9jb25maWcnO1xuaW1wb3J0IHsgQ2FMb2NhdGlvbkZpbHRlckNvbmZpZyB9IGZyb20gJy4vY29uZmlnL2NhLWxvY2F0aW9uLWZpbHRlci5jb25maWcnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYVRhYlN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NhLXRhYi1zd2l0Y2gvY2EtdGFiLXN3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dEFkZHJlc3NEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYU5neFNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NhLW5neC1zbGlkZXIvY2Etbmd4LXNsaWRlci5jb21wb25lbnQnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFkZHJlc3NEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3QgfSBmcm9tICcuLi8uLi8uLi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWxpc3QubW9kZWwnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtbG9jYXRpb24tZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gbW9kdWxlc1xuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgLy8gY29tcG9uZW50c1xuICAgICAgICBDYVRhYlN3aXRjaENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dEFkZHJlc3NEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgQ2FOZ3hTbGlkZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbG9jYXRpb24tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1sb2NhdGlvbi1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIGluT3V0QW5pbWF0aW9uKCdpbk91dEFuaW1hdGlvbicpLFxuICAgICAgICBzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksXG4gICAgICAgIGFyZWFMZWZ0U2lkZUFuaW1hdGlvbignYXJlYUxlZnRTaWRlQW5pbWF0aW9uJyksXG4gICAgICAgIGFyZWFSaWdodFNpZGVBbmltYXRpb24oJ2FyZWFSaWdodFNpZGVBbmltYXRpb24nKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUxvY2F0aW9uRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9Eb1N1YlR5cGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNMZWdlbmRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0FyZWFGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFkZHJlc3NMaXN0ITogQWRkcmVzc0xpc3RbXTtcblxuICAgIEBJbnB1dCgpIHJlY2VpdmVkQWRkcmVzc0xpc3QhOiBBZGRyZXNzTGlzdFJlc3BvbnNlO1xuICAgIEBJbnB1dCgpIHJlY2VpdmVkQWRkcmVzc0RhdGEhOiBBZGRyZXNzRGF0YTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VudEFkZHJlc3NWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKSBzZW50QWRkcmVzc0RhdGE6IEV2ZW50RW1pdHRlcjxTZW50QWRkcmVzc0RhdGE+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxTZW50QWRkcmVzc0RhdGE+KCk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBsb2NhdGlvblNsaWRlckRhdGE6IE9wdGlvbnMgPVxuICAgICAgICBGaWx0ZXJDb25maWdDb25zdGFudHMuTE9DQVRJT05fU0xJREVSX0RBVEE7XG5cbiAgICBwdWJsaWMgbG9jYXRpb25OYW1lU2V0ITogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgbG9jYXRpb25Gb3JtITogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBsb2NhdGlvblJhbmdlOiBudW1iZXIgPSAyNTtcbiAgICBwdWJsaWMgbG9jYXRpb25SYW5nZVNldDogbnVtYmVyID0gMjU7XG5cbiAgICBwdWJsaWMgbG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgbGF0VmFsOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIG9yaWdpbkxvbmdWYWw6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG9yaWdpbkxhdFZhbDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBkZXN0TG9uZ1ZhbDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdExhdFZhbDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBsb25nVmFsdWVTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGxhdFZhbFNldDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBvcmlnaW5Mb25nVmFsU2V0OiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBvcmlnaW5MYXRWYWxTZXQ6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgZGVzdExvbmdWYWxTZXQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGRlc3RMYXRWYWxTZXQ6IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RlZFZpc2libGVDb3VudDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgYXJlYUZpbHRlclNlbGVjdGVkITogc3RyaW5nO1xuXG4gICAgcHVibGljIGlzQnV0dG9uQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzQXNjZW5kaW5nU29ydE9yZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBsb2FkU3RhdHVzRW51bSA9IGVMb2FkU3RhdHVzO1xuICAgIHB1YmxpYyBmaWx0ZXJBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICAgIHB1YmxpYyB0b3RhbEZpbHRlcnNOdW06IG51bWJlciA9IDA7XG5cbiAgICBwdWJsaWMgYXJlYUZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBsb2NhdGlvblN0YXRlITogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgcmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgZGVzdGluYXRpb25TdGF0ZSE6IHN0cmluZztcbiAgICBwdWJsaWMgb3JpZ2luU3RhdGUhOiBzdHJpbmc7XG4gICAgcHVibGljIGhhc1NpZGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBhcmVhQm94VGFiOiBBcmVhQm94VGFiW10gPSBMb2NhdGlvbkZpbHRlckNvbnN0YW50cy5BUkVBX0JPWF9UQUI7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG5cbiAgICAgICAgdGhpcy53YXRjaExvY2F0aW9uRm9ybVZhbHVlQ2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMud2F0Y2hBcmVhRm9ybVZhbHVlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCBnZXRPcmlnaW5Db250cm9sKCk6IElDYUlucHV0IHtcbiAgICAgICAgcmV0dXJuIENhTG9jYXRpb25GaWx0ZXJDb25maWcub3JpZ2luQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGdldCBnZXREZXN0aW5hdGlvbkNvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5kZXN0aW5hdGlvbkNvbnRyb2woKTtcbiAgICB9XG5cbiAgICBnZXQgZ2V0QWRkcmVzc0NvbnRyb2woKTogSUNhSW5wdXQge1xuICAgICAgICByZXR1cm4gQ2FMb2NhdGlvbkZpbHRlckNvbmZpZy5hZGRyZXNzQ29udHJvbCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge31cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGFkZHJlc3M6IFtudWxsLCBbLi4uYWRkcmVzc1ZhbGlkYXRpb25dXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcmVhRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgb3JpZ2luOiBbbnVsbCwgWy4uLmFkZHJlc3NWYWxpZGF0aW9uXV0sXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogW251bGwsIFsuLi5hZGRyZXNzVmFsaWRhdGlvbl1dLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoTG9jYXRpb25Gb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxPQ0FUSU9OO1xuXG4gICAgICAgIGlmICh0aGlzLmxvY2F0aW9uRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbkZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VzLmFkZHJlc3MpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hBcmVhRm9ybVZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXJlYUZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuYXJlYUZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VzLm9yaWdpbilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXMuZGVzdGluYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkFyZWFGaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgRmlsdGVySGVscGVyLmhhbmRsZUFyZWFGaWx0ZXJDbG9zZShcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25Gb3JtLFxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbk5hbWVTZXQsXG4gICAgICAgICAgICB0aGlzLmxvbmdWYWwsXG4gICAgICAgICAgICB0aGlzLmxhdFZhbCxcbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0LFxuICAgICAgICAgICAgdGhpcy5sYXRWYWxTZXQsXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2UsXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uUmFuZ2VTZXRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJDaGFuZ2UoXG4gICAgICAgIGV2ZW50OiB7IGlkOiBudW1iZXI7IG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSxcbiAgICAgICAgc3ViVHlwZTogc3RyaW5nXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzU2lkZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgIGlmIChldmVudC5uYW1lKSB0aGlzLmFyZWFGaWx0ZXJTZWxlY3RlZCA9IGV2ZW50Lm5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpbHRlclZhbHVlKCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICAgICAgY29uc3Qgc3ViVHlwZSA9XG4gICAgICAgICAgICBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIudG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAodGhpcy5hcmVhRmlsdGVyU2VsZWN0ZWQgIT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT04pIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIG9yaWdpbkxhdFZhbHVlOiB0aGlzLm9yaWdpbkxhdFZhbCxcbiAgICAgICAgICAgICAgICBvcmlnaW5Mb25nVmFsdWU6IHRoaXMub3JpZ2luTG9uZ1ZhbCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxhdFZhbHVlOiB0aGlzLmRlc3RMYXRWYWwsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25Mb25nVmFsdWU6IHRoaXMuZGVzdExvbmdWYWwsXG4gICAgICAgICAgICAgICAgcmFuZ2VWYWx1ZTogdGhpcy5sb2NhdGlvblJhbmdlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5MYXRWYWxTZXQgPSB0aGlzLm9yaWdpbkxhdFZhbDtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbFNldCA9IHRoaXMub3JpZ2luTG9uZ1ZhbDtcbiAgICAgICAgICAgIHRoaXMuZGVzdExvbmdWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5kZXN0TGF0VmFsU2V0ID0gdGhpcy5kZXN0TGF0VmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgbG9uZ1ZhbHVlOiB0aGlzLmxvbmdWYWwsXG4gICAgICAgICAgICAgICAgbGF0VmFsdWU6IHRoaXMubGF0VmFsLFxuICAgICAgICAgICAgICAgIHJhbmdlVmFsdWU6IHRoaXMubG9jYXRpb25SYW5nZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMubG9uZ1ZhbHVlU2V0ID0gdGhpcy5sb25nVmFsO1xuICAgICAgICAgICAgdGhpcy5sYXRWYWxTZXQgPSB0aGlzLmxhdFZhbDtcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25SYW5nZVNldCA9IHRoaXMubG9jYXRpb25SYW5nZTtcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gdGhpcy5sb2NhdGlvbkZvcm0uZ2V0KCdhZGRyZXNzJyk/LnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGFjdGlvbjogZUdlbmVyYWxBY3Rpb25zLlNFVCxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgc3ViVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICAgICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmxvY2F0aW9uRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgICBhZGRyZXNzOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcmVhRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgICBvcmlnaW46IG51bGwsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9jYXRpb25SYW5nZSA9IDI1O1xuICAgICAgICB0aGlzLmxvY2F0aW9uU3RhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLmxvbmdWYWwgPSAwO1xuICAgICAgICB0aGlzLmxhdFZhbCA9IDA7XG4gICAgICAgIHRoaXMub3JpZ2luTG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMub3JpZ2luTGF0VmFsID0gMDtcbiAgICAgICAgdGhpcy5kZXN0TG9uZ1ZhbCA9IDA7XG4gICAgICAgIHRoaXMuZGVzdExhdFZhbCA9IDA7XG4gICAgICAgIHRoaXMubG9jYXRpb25OYW1lU2V0ID0gbnVsbDtcblxuICAgICAgICB0aGlzLmxvbmdWYWx1ZVNldCA9IHRoaXMubG9uZ1ZhbDtcbiAgICAgICAgdGhpcy5sYXRWYWxTZXQgPSB0aGlzLmxhdFZhbDtcbiAgICAgICAgdGhpcy5vcmlnaW5Mb25nVmFsU2V0ID0gdGhpcy5vcmlnaW5Mb25nVmFsO1xuICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbFNldCA9IHRoaXMub3JpZ2luTGF0VmFsO1xuICAgICAgICB0aGlzLmRlc3RMYXRWYWxTZXQgPSB0aGlzLmRlc3RMb25nVmFsO1xuICAgICAgICB0aGlzLmRlc3RMb25nVmFsU2V0ID0gdGhpcy5kZXN0TG9uZ1ZhbDtcbiAgICAgICAgdGhpcy5sb2NhdGlvblJhbmdlU2V0ID0gdGhpcy5sb2NhdGlvblJhbmdlO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGVHZW5lcmFsQWN0aW9ucy5DTEVBUixcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJhbmdlVmFsdWUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihpbnB1dEVsZW1lbnQudmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSKVxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2UgdGhpcy5sb2NhdGlvblJhbmdlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVJhbmdlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICAvL2xlYXZlIHRoaXMgYW55IGZvciBub3dcbiAgICAgICAgaWYgKHRoaXMudHlwZSAhPT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSKVxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsc2UgdGhpcy5sb2NhdGlvblJhbmdlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0U2VsZWN0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZW50QWRkcmVzc1ZhbHVlLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmxvY2F0aW9uTmFtZVNldCA9IGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcmlnaW5TZWxlY3QoZXZlbnQ6IEFkZHJlc3NEYXRhKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudD8uYWRkcmVzcz8uYWRkcmVzcykgdGhpcy5vcmlnaW5TdGF0ZSA9IGV2ZW50LmFkZHJlc3MuYWRkcmVzcztcblxuICAgICAgICBpZiAoZXZlbnQ/LmxvbmdMYXQgJiYgZXZlbnQ/LmxvbmdMYXQ/LmxhdGl0dWRlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkxhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVMb2NhdGlvbkNoYW5nZShldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb25nVmFsID0gZXZlbnQ/LmxvbmdMYXQ/LmxvbmdpdHVkZSA/PyAwO1xuICAgICAgICB0aGlzLmxhdFZhbCA9IGV2ZW50Py5sb25nTGF0Py5sYXRpdHVkZSA/PyAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVEZXN0aW5hdGlvblNlbGVjdChldmVudDogQWRkcmVzc0RhdGEpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Py5hZGRyZXNzPy5hZGRyZXNzKVxuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvblN0YXRlID0gZXZlbnQuYWRkcmVzcy5hZGRyZXNzO1xuXG4gICAgICAgIGlmIChldmVudD8ubG9uZ0xhdCAmJiBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdExvbmdWYWwgPSBldmVudD8ubG9uZ0xhdD8ubG9uZ2l0dWRlIHx8IDA7XG4gICAgICAgICAgICB0aGlzLmRlc3RMYXRWYWwgPSBldmVudD8ubG9uZ0xhdD8ubGF0aXR1ZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ2FGaWx0ZXJzU3ZnUm91dGVzW3Byb3BlcnR5TmFtZV0gYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVBZGRyZXNzRGF0YShldmVudDogU2VudEFkZHJlc3NEYXRhKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VudEFkZHJlc3NEYXRhLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYXJlYUZpbHRlckhvbGRlclwiIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCI+XG4gICAgPGFwcC1jYS10YWItc3dpdGNoXG4gICAgICAgIFt0YWJzXT1cImFyZWFCb3hUYWJcIlxuICAgICAgICAoc3dpdGNoQ2xpY2tlZCk9XCJvblRhYkNoYW5nZSgkZXZlbnQsICdSRVFVRVNUUy1CT1gnKVwiXG4gICAgICAgIFt0eXBlXT1cIid0eXBlMi1tb2RhbC1wb3B1cCdcIlxuICAgID5cbiAgICA8L2FwcC1jYS10YWItc3dpdGNoPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXJlYS1hbGwtaG9sZGVyIGQtZmxleCBmbGV4LXdyYXAgZmxleC1yb3dcIj5cbiAgICBAaWYgKGlzQXJlYUZpbHRlciAmJiBhcmVhRmlsdGVyU2VsZWN0ZWQgIT09ICdMb2NhdGlvbicpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tcGFydC1ob2xkZXJcIiBbQGFyZWFSaWdodFNpZGVBbmltYXRpb25dPVwiJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJlYS1mb3Jtcy1ob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiYXJlYUZvcm1cIlxuICAgICAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJlYS1zaW5nbGUtZm9ybS1ob2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmlnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldE9yaWdpbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyVHlwZV09XCInc2hvcnRBZGRyZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzTGlzdF09XCJhZGRyZXNzTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBZGRyZXNzKT1cImhhbmRsZU9yaWdpblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWFkZHJlc3MtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEtc2luZ2xlLWZvcm0taG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldERlc3RpbmF0aW9uQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJUeXBlXT1cIidzaG9ydEFkZHJlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEFkZHJlc3MpPVwiaGFuZGxlRGVzdGluYXRpb25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1wYXJ0LWhvbGRlclwiIFtAYXJlYUxlZnRTaWRlQW5pbWF0aW9uXT1cIidpbidcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1taWRkbGUtaG9sZGVyIGxvY2F0aW9uLW1pZGRsZS1wYWRkaW5nXCJcbiAgICAgICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJsb2NhdGlvbkZvcm1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImdldEFkZHJlc3NDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyVHlwZV09XCInc2hvcnRBZGRyZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthZGRyZXNMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbnRBZGRyZXNzVmFsdWUpPVwiaGFuZGxlSW5wdXRTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWNlaXZlZEFkZHJlc3NMaXN0XT1cInJlY2VpdmVkQWRkcmVzc0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbcmVjZWl2ZWRBZGRyZXNzRGF0YV09XCJyZWNlaXZlZEFkZHJlc3NEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbnRBZGRyZXNzRGF0YSk9XCJoYW5kbGVBZGRyZXNzRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWRkcmVzcyk9XCJoYW5kbGVMb2NhdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtYWRkcmVzcy1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmlsdGVyLW1pZGRsZS1ob2xkZXIgbG9jYXRpb24tc2xpZGVyLW1pZGRsZS1wYWRkaW5nXCJcbiAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1uZXctdmFsdWUtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLXRleHRcIj5SYW5nZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLWZsZXgtaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAob25Vc2VyVmFsdWVDaGFuZ2UpPVwic2V0UmFuZ2VWYWx1ZSgkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1uZ3gtc2xpZGVyXG4gICAgICAgICAgICAgICAgICAgIFtzbGlkZXJPcHRpb25zXT1cImxvY2F0aW9uU2xpZGVyRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGFydGVkVmFsdWVdPVwibG9jYXRpb25SYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3VzdG9tLXNsaWRlci1maWx0ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uVXNlclZhbHVlQ2hhbmdlKT1cImNoYW5nZVJhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvYXBwLWNhLW5neC1zbGlkZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIGJvdHRvbS1ib3JkZXItbWFyZ2luXCI+PC9kaXY+XG4iXX0=