@skyux/lookup 11.43.1 → 11.45.0
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/documentation.json +969 -969
- package/esm2022/lib/modules/lookup/lookup-show-more-modal.component.mjs +2 -2
- package/esm2022/lib/modules/selection-modal/selection-modal.component.mjs +2 -2
- package/fesm2022/skyux-lookup.mjs +2 -2
- package/fesm2022/skyux-lookup.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -285,7 +285,7 @@ export class SkyLookupShowMoreModalComponent {
|
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
287
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyLookupShowMoreModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
288
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyLookupShowMoreModalComponent, isStandalone: true, selector: "sky-lookup-show-more-modal", ngImport: i0, template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.userConfig.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.userConfig.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item.value }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"itemsHaveMore\"\n [loading]=\"itemsLoading\"\n (scrollEnd)=\"addItems()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyInfiniteScrollModule }, { kind: "component", type: i4.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { kind: "ngmodule", type: SkyLookupResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i6.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy"] }, { kind: "component", type: i6.λ2, selector: "sky-modal-content" }, { kind: "component", type: i6.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i6.λ4, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i4.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i4.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i4.λ8, selector: "sky-repeater-item-content" }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i7.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i8.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i8.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i8.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i8.λ40, selector: "sky-toolbar-view-actions" }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i9.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
288
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyLookupShowMoreModalComponent, isStandalone: true, selector: "sky-lookup-show-more-modal", ngImport: i0, template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.userConfig.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.userConfig.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item.value }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"itemsHaveMore\"\n [loading]=\"itemsLoading\"\n (scrollEnd)=\"addItems()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyInfiniteScrollModule }, { kind: "component", type: i4.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { kind: "ngmodule", type: SkyLookupResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i6.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout"] }, { kind: "component", type: i6.λ2, selector: "sky-modal-content" }, { kind: "component", type: i6.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i6.λ4, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i4.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i4.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i4.λ8, selector: "sky-repeater-item-content" }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i7.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i8.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i8.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i8.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i8.λ40, selector: "sky-toolbar-view-actions" }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i9.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
289
289
|
}
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyLookupShowMoreModalComponent, decorators: [{
|
|
291
291
|
type: Component,
|
|
@@ -303,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
303
303
|
SkyViewkeeperModule,
|
|
304
304
|
], template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.userConfig.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.userConfig.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item.value }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"itemsHaveMore\"\n [loading]=\"itemsLoading\"\n (scrollEnd)=\"addItems()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"] }]
|
|
305
305
|
}], ctorParameters: () => [] });
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxl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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FyV1UsK0JBQStCO21HQUEvQiwrQkFBK0Isc0ZDdEQ1QywweUxBaUtBLDhQRHhISSxZQUFZLG1TQUNaLGlCQUFpQiw4ZEFDakIsYUFBYSxtS0FDYix1QkFBdUIsMkpBQ3ZCLHdCQUF3Qix1R0FDeEIsY0FBYywwYkFDZCxpQkFBaUIsb2tCQUNqQixlQUFlLHVSQUNmLGNBQWMsOEJBQ2QsZ0JBQWdCLDRVQUNoQixtQkFBbUI7OzRGQUdWLCtCQUErQjtrQkFwQjNDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcbmltcG9ydCB7IFNreUluZmluaXRlU2Nyb2xsTW9kdWxlLCBTa3lSZXBlYXRlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlLCBTa3lNb2RhbE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVNlYXJjaE1vZHVsZSB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcbmltcG9ydCB7IFNreUxvb2t1cFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbG9va3VwLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIG5hdGl2ZSBwaWNrZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgU2t5TG9va3VwUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVJlcGVhdGVyTW9kdWxlLFxuICAgIFNreVNlYXJjaE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUb29sYmFyTW9kdWxlLFxuICAgIFNreVZpZXdrZWVwZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxvb2t1cFNob3dNb3JlTW9kYWxDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgYnV0dG9uIHRvIGFkZCBuZXcgb3B0aW9ucyB0byB0aGUgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBhZGRDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbW9kYWwgd2l0aCBpdHMgb3duaW5nIGxvb2t1cCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGl0ZW1zTG9hZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkYXRhTWFuYWdlckNvbmZpZyA9IHtcbiAgICBzb3J0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBpZDogJ2F6JyxcbiAgICAgICAgbGFiZWw6ICdBbHBoYWJldGljYWwgKEEgLSBaKScsXG4gICAgICAgIGRlc2NlbmRpbmc6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0eU5hbWU6ICduYW1lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnemEnLFxuICAgICAgICBsYWJlbDogJ0FscGhhYmV0aWNhbCAoWiAtIEEpJyxcbiAgICAgICAgZGVzY2VuZGluZzogdHJ1ZSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnbmFtZScsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcHVibGljIGRpc3BsYXllZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtc0hhdmVNb3JlID0gZmFsc2U7XG5cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVwZWF0ZXJJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHNlYXJjaFRleHQgPSAnJztcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9IFtdO1xuXG4gICNpdGVtSW5kZXggPSAwO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQ29udGV4dCk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICByZWFkb25seSAjbGl2ZUFubm91bmNlclN2YyA9IGluamVjdChTa3lMaXZlQW5ub3VuY2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZXNTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuY29udGV4dC51c2VyQ29uZmlnLml0ZW1UZW1wbGF0ZSB8fCBudWxsO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuY29udGV4dC5pbml0aWFsU2VhcmNoO1xuICAgIHZvaWQgdGhpcy5hZGRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEl0ZW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IGFueVtdID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNsaWNlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbnRleHQuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpc0luaXRpYWxWYWx1ZTogYm9vbGVhbiA9XG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSA9PT0gaXRlbS52YWx1ZTtcblxuICAgICAgICBjb25zdCBpbml0aWFsSXNBcnJheTogYm9vbGVhbiA9IEFycmF5LmlzQXJyYXkoXG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlQ29udGFpbnNJdGVtOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlLmZpbmRJbmRleChcbiAgICAgICAgICAgIChpbml0aWFsSXRlbTogYW55KSA9PiBpbml0aWFsSXRlbSA9PT0gaXRlbS52YWx1ZSxcbiAgICAgICAgICApID49IDA7XG5cbiAgICAgICAgaWYgKGlzSW5pdGlhbFZhbHVlIHx8IChpbml0aWFsSXNBcnJheSAmJiBpbml0aWFsVmFsdWVDb250YWluc0l0ZW0pKSB7XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGl0ZW1JbmRleCxcbiAgICAgICAgICAgICkgPCAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goeyBpbmRleDogaXRlbUluZGV4LCBpdGVtRGF0YTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZEl0ZW1zO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIGlmIG9ubHlTaG93U2VsZWN0ZWQgaXMgY2hlY2tlZCwgdGhlbiBvbmx5IGl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5pdGlhbCBzZWxlY3Rpb25cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMub25seVNob3dTZWxlY3RlZFxuICAgICAgPyB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZClcbiAgICAgIDogdGhpcy5pdGVtcztcblxuICAgIHRoaXMuI2l0ZW1JbmRleCA9IHRoaXMuI2l0ZW1JbmRleCArIDEwO1xuXG4gICAgY29uc3Qgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuc2xpY2UoMCwgdGhpcy4jaXRlbUluZGV4KTtcblxuICAgIGlmICh0aGlzLiNpdGVtSW5kZXggPiBzZWFyY2hlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLiNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGl0ZW1DbGljayhzZWxlY3RlZEl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHZvaWQgdGhpcy5vbkl0ZW1TZWxlY3QoIXNlbGVjdGVkSXRlbS5zZWxlY3RlZCwgc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVtU2VsZWN0KG5ld1NlbGVjdFN0YXRlOiBib29sZWFuLCBpdGVtVG9TZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcztcblxuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIHNpbmdsZSBzZWxlY3QgbW9kZSBzaG91bGQgb25seSBhbG93IGZvciBhIGB0cnVlYCBzZWxlY3Qgc3RhdGUgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgaXRlbVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS52YWx1ZSAhPT0gaXRlbVRvU2VsZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpdGVtVG9TZWxlY3QudmFsdWUsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgICAgICB7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiBpdGVtc1tpdGVtSW5kZXhdLnZhbHVlIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgICBjb25zdCBhbGxJdGVtc0luZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbVRvU2VsZWN0LnZhbHVlLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXNJbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGFsbEl0ZW1zSW5kZXgsXG4gICAgICApO1xuXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUgJiYgc2VsZWN0ZWRJdGVtc0luZGV4ID09PSAtMSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGluZGV4OiBhbGxJdGVtc0luZGV4LFxuICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1thbGxJdGVtc0luZGV4XS52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCFuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuc3BsaWNlKHNlbGVjdGVkSXRlbXNJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuXG4gICAgdm9pZCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0ICE9PSBzZWFyY2hUZXh0KSB7XG4gICAgICB0aGlzLiNpdGVtSW5kZXggPSAxMDtcbiAgICAgIHRoaXMubW9kYWxJbnN0YW5jZS5zY3JvbGxDb250ZW50VG9Ub3AoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc2VhcmNoVGV4dDtcbiAgICB0aGlzLml0ZW1zTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc2Nyb2xsIGV2ZW50IG1ha2VzIGl0IGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGluZmluaXRlIHNjcm9sbCB3b3JrZmxvdyBiZWZvcmUgdXBkYXRpbmcgdGhlIGRhdGEgc3RhdGUuXG4gICAgLy8gV2l0aG91dCB0aGlzLCB0aGUgaW5maW5pdGUgc2Nyb2xsIGNhbiBhZGQgaXRlbXMgaW1wcm9wZXJseSBiZWNhdXNlIGl0IGNhbiBzZWUgdGhlIGFib3ZlIHNjcm9sbCBhZnRlciB0aGUgaXRlbXMgZmluaXNoIHNlYXJjaGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHZvaWQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gdGhpcy5zZWFyY2hUZXh0O1xuXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdFZhbHVlcyA9IHRoaXMuY29udGV4dC5zZWFyY2goXG4gICAgICAgIHNlYXJjaFRleHQsXG4gICAgICAgIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgeyBjb250ZXh0OiAnbW9kYWwnIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0VmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiByZXN1bHRWYWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0VmFsdWVzLnRoZW4oKHZhbHVlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChpdGVtKSA9PiB2YWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdEFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcztcblxuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5pbmRleE9mKGl0ZW0pO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaW5kZXgsXG4gICAgICAgICAgKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1tpbmRleF0udmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVEYXRhU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG5cbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleCxcbiAgICAgICAgKSAhPT0gLTE7XG4gICAgfSk7XG5cbiAgICBsZXQgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgaWYgKHRoaXMub25seVNob3dTZWxlY3RlZCkge1xuICAgICAgc2VhcmNoZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLiNpdGVtSW5kZXgpO1xuXG4gICAgaWYgKHRoaXMuI2l0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pdGVtc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVJdGVtRGF0YShkYXRhOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY29udGV4dC5pdGVtcyA9IGRhdGE7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIHRoaXMuI2l0ZW1JbmRleCA9IDEwO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChzZWxlY3RlZEl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY29udGV4dC5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pdGVtRGF0YSA9PT0gaXRlbSkge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYWRkSXRlbXMoKTtcblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgc2VsZWN0ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgICBkaXNwbGF5ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAuZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9kaXNwbGF5ZWRfaXRlbXNfdXBkYXRlZCcsXG4gICAgICAgIHNlbGVjdGVkSXRlbUNvdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGRpc3BsYXllZEl0ZW1Db3VudC50b1N0cmluZygpLFxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlc1N0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKHJlc291cmNlc1N0cmluZyk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbFxuICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbbmdDbGFzc109XCInc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtJyArIGNvbnRleHQuc2VsZWN0TW9kZVwiXG4+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIEBpZiAoY29udGV4dC51c2VyQ29uZmlnPy50aXRsZSkge1xuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7e1xuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgIH19XG4gICAgfVxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudFxuICAgIFtza3lWaWV3a2VlcGVyXT1cIlsnLnNreS1sb29rdXAtc2hvdy1tb3JlLXRvb2xiYXItd3JhcHBlciddXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXJcIj5cbiAgICAgIDxza3ktdG9vbGJhclxuICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXRvb2xiYXJcIlxuICAgICAgICBbbGlzdERlc2NyaXB0b3JdPVwiY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMjUwXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFRleHRdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChzZWFyY2hBcHBseSk9XCJzZWFyY2hBcHBsaWVkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIEBpZiAoY29udGV4dC5zaG93QWRkQnV0dG9uKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWFkZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2FkZF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiYWRkXCIgLz5cbiAgICAgICAgICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9hZGQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8L3NreS10b29sYmFyPlxuICAgICAgQGlmIChjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPHNreS10b29sYmFyIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVsdGlzZWxlY3QtdG9vbGJhclwiPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNlbGVjdC1hbGwtYnRuXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG5cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGRpc3BsYXllZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktbG9va3VwLXNob3ctbW9yZS1uby1yZXN1bHRzXCI+XG4gICAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX25vX3Jlc3VsdHMnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHNreS1yZXBlYXRlciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXJlcGVhdGVyXCIgZXhwYW5kTW9kZT1cIm5vbmVcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheWVkSXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwiY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnXCJcbiAgICAgICAgICBbKGlzU2VsZWN0ZWQpXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChpc1NlbGVjdGVkQ2hhbmdlKT1cIm9uSXRlbVNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbVRlbXBsYXRlID8/IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBpdGVtOiBpdGVtLnZhbHVlIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtPlxuICAgICAgfVxuICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgIDxza3ktaW5maW5pdGUtc2Nyb2xsXG4gICAgICBbZW5hYmxlZF09XCJpdGVtc0hhdmVNb3JlXCJcbiAgICAgIFtsb2FkaW5nXT1cIml0ZW1zTG9hZGluZ1wiXG4gICAgICAoc2Nyb2xsRW5kKT1cImFkZEl0ZW1zKClcIlxuICAgIC8+XG4gIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDxza3ktbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdCBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zYXZlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2NvbnRleHQnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2Uuc2F2ZShzZWxlY3RlZEl0ZW1zKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xvc2VcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwibW9kYWxJbnN0YW5jZS5jbG9zZSgpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jYW5jZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LW1vZGFsLWZvb3Rlcj5cbjwvc2t5LW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIHt7IGl0ZW1bY29udGV4dC5kZXNjcmlwdG9yUHJvcGVydHldIH19XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxl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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FyV1UsK0JBQStCO21HQUEvQiwrQkFBK0Isc0ZDdEQ1QywweUxBaUtBLDhQRHhISSxZQUFZLG1TQUNaLGlCQUFpQiw4ZEFDakIsYUFBYSxtS0FDYix1QkFBdUIsMkpBQ3ZCLHdCQUF3Qix1R0FDeEIsY0FBYyxvY0FDZCxpQkFBaUIsb2tCQUNqQixlQUFlLHVSQUNmLGNBQWMsOEJBQ2QsZ0JBQWdCLDRVQUNoQixtQkFBbUI7OzRGQUdWLCtCQUErQjtrQkFwQjNDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcbmltcG9ydCB7IFNreUluZmluaXRlU2Nyb2xsTW9kdWxlLCBTa3lSZXBlYXRlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlLCBTa3lNb2RhbE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVNlYXJjaE1vZHVsZSB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcbmltcG9ydCB7IFNreUxvb2t1cFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbG9va3VwLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIG5hdGl2ZSBwaWNrZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgU2t5TG9va3VwUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVJlcGVhdGVyTW9kdWxlLFxuICAgIFNreVNlYXJjaE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUb29sYmFyTW9kdWxlLFxuICAgIFNreVZpZXdrZWVwZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxvb2t1cFNob3dNb3JlTW9kYWxDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgYnV0dG9uIHRvIGFkZCBuZXcgb3B0aW9ucyB0byB0aGUgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBhZGRDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbW9kYWwgd2l0aCBpdHMgb3duaW5nIGxvb2t1cCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGl0ZW1zTG9hZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkYXRhTWFuYWdlckNvbmZpZyA9IHtcbiAgICBzb3J0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBpZDogJ2F6JyxcbiAgICAgICAgbGFiZWw6ICdBbHBoYWJldGljYWwgKEEgLSBaKScsXG4gICAgICAgIGRlc2NlbmRpbmc6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0eU5hbWU6ICduYW1lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnemEnLFxuICAgICAgICBsYWJlbDogJ0FscGhhYmV0aWNhbCAoWiAtIEEpJyxcbiAgICAgICAgZGVzY2VuZGluZzogdHJ1ZSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnbmFtZScsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcHVibGljIGRpc3BsYXllZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtc0hhdmVNb3JlID0gZmFsc2U7XG5cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVwZWF0ZXJJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHNlYXJjaFRleHQgPSAnJztcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9IFtdO1xuXG4gICNpdGVtSW5kZXggPSAwO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQ29udGV4dCk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICByZWFkb25seSAjbGl2ZUFubm91bmNlclN2YyA9IGluamVjdChTa3lMaXZlQW5ub3VuY2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZXNTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuY29udGV4dC51c2VyQ29uZmlnLml0ZW1UZW1wbGF0ZSB8fCBudWxsO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuY29udGV4dC5pbml0aWFsU2VhcmNoO1xuICAgIHZvaWQgdGhpcy5hZGRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEl0ZW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IGFueVtdID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNsaWNlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbnRleHQuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpc0luaXRpYWxWYWx1ZTogYm9vbGVhbiA9XG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSA9PT0gaXRlbS52YWx1ZTtcblxuICAgICAgICBjb25zdCBpbml0aWFsSXNBcnJheTogYm9vbGVhbiA9IEFycmF5LmlzQXJyYXkoXG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlQ29udGFpbnNJdGVtOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlLmZpbmRJbmRleChcbiAgICAgICAgICAgIChpbml0aWFsSXRlbTogYW55KSA9PiBpbml0aWFsSXRlbSA9PT0gaXRlbS52YWx1ZSxcbiAgICAgICAgICApID49IDA7XG5cbiAgICAgICAgaWYgKGlzSW5pdGlhbFZhbHVlIHx8IChpbml0aWFsSXNBcnJheSAmJiBpbml0aWFsVmFsdWVDb250YWluc0l0ZW0pKSB7XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGl0ZW1JbmRleCxcbiAgICAgICAgICAgICkgPCAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goeyBpbmRleDogaXRlbUluZGV4LCBpdGVtRGF0YTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZEl0ZW1zO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIGlmIG9ubHlTaG93U2VsZWN0ZWQgaXMgY2hlY2tlZCwgdGhlbiBvbmx5IGl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5pdGlhbCBzZWxlY3Rpb25cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMub25seVNob3dTZWxlY3RlZFxuICAgICAgPyB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZClcbiAgICAgIDogdGhpcy5pdGVtcztcblxuICAgIHRoaXMuI2l0ZW1JbmRleCA9IHRoaXMuI2l0ZW1JbmRleCArIDEwO1xuXG4gICAgY29uc3Qgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuc2xpY2UoMCwgdGhpcy4jaXRlbUluZGV4KTtcblxuICAgIGlmICh0aGlzLiNpdGVtSW5kZXggPiBzZWFyY2hlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLiNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGl0ZW1DbGljayhzZWxlY3RlZEl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHZvaWQgdGhpcy5vbkl0ZW1TZWxlY3QoIXNlbGVjdGVkSXRlbS5zZWxlY3RlZCwgc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVtU2VsZWN0KG5ld1NlbGVjdFN0YXRlOiBib29sZWFuLCBpdGVtVG9TZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcztcblxuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIHNpbmdsZSBzZWxlY3QgbW9kZSBzaG91bGQgb25seSBhbG93IGZvciBhIGB0cnVlYCBzZWxlY3Qgc3RhdGUgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgaXRlbVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS52YWx1ZSAhPT0gaXRlbVRvU2VsZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpdGVtVG9TZWxlY3QudmFsdWUsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgICAgICB7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiBpdGVtc1tpdGVtSW5kZXhdLnZhbHVlIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgICBjb25zdCBhbGxJdGVtc0luZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbVRvU2VsZWN0LnZhbHVlLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXNJbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGFsbEl0ZW1zSW5kZXgsXG4gICAgICApO1xuXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUgJiYgc2VsZWN0ZWRJdGVtc0luZGV4ID09PSAtMSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGluZGV4OiBhbGxJdGVtc0luZGV4LFxuICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1thbGxJdGVtc0luZGV4XS52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCFuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuc3BsaWNlKHNlbGVjdGVkSXRlbXNJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuXG4gICAgdm9pZCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0ICE9PSBzZWFyY2hUZXh0KSB7XG4gICAgICB0aGlzLiNpdGVtSW5kZXggPSAxMDtcbiAgICAgIHRoaXMubW9kYWxJbnN0YW5jZS5zY3JvbGxDb250ZW50VG9Ub3AoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc2VhcmNoVGV4dDtcbiAgICB0aGlzLml0ZW1zTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc2Nyb2xsIGV2ZW50IG1ha2VzIGl0IGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGluZmluaXRlIHNjcm9sbCB3b3JrZmxvdyBiZWZvcmUgdXBkYXRpbmcgdGhlIGRhdGEgc3RhdGUuXG4gICAgLy8gV2l0aG91dCB0aGlzLCB0aGUgaW5maW5pdGUgc2Nyb2xsIGNhbiBhZGQgaXRlbXMgaW1wcm9wZXJseSBiZWNhdXNlIGl0IGNhbiBzZWUgdGhlIGFib3ZlIHNjcm9sbCBhZnRlciB0aGUgaXRlbXMgZmluaXNoIHNlYXJjaGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHZvaWQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gdGhpcy5zZWFyY2hUZXh0O1xuXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdFZhbHVlcyA9IHRoaXMuY29udGV4dC5zZWFyY2goXG4gICAgICAgIHNlYXJjaFRleHQsXG4gICAgICAgIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgeyBjb250ZXh0OiAnbW9kYWwnIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0VmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiByZXN1bHRWYWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0VmFsdWVzLnRoZW4oKHZhbHVlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChpdGVtKSA9PiB2YWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdEFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcztcblxuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5pbmRleE9mKGl0ZW0pO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaW5kZXgsXG4gICAgICAgICAgKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1tpbmRleF0udmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVEYXRhU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG5cbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleCxcbiAgICAgICAgKSAhPT0gLTE7XG4gICAgfSk7XG5cbiAgICBsZXQgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgaWYgKHRoaXMub25seVNob3dTZWxlY3RlZCkge1xuICAgICAgc2VhcmNoZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLiNpdGVtSW5kZXgpO1xuXG4gICAgaWYgKHRoaXMuI2l0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pdGVtc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVJdGVtRGF0YShkYXRhOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY29udGV4dC5pdGVtcyA9IGRhdGE7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIHRoaXMuI2l0ZW1JbmRleCA9IDEwO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChzZWxlY3RlZEl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY29udGV4dC5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pdGVtRGF0YSA9PT0gaXRlbSkge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYWRkSXRlbXMoKTtcblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgc2VsZWN0ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgICBkaXNwbGF5ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAuZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9kaXNwbGF5ZWRfaXRlbXNfdXBkYXRlZCcsXG4gICAgICAgIHNlbGVjdGVkSXRlbUNvdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGRpc3BsYXllZEl0ZW1Db3VudC50b1N0cmluZygpLFxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlc1N0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKHJlc291cmNlc1N0cmluZyk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbFxuICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbbmdDbGFzc109XCInc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtJyArIGNvbnRleHQuc2VsZWN0TW9kZVwiXG4+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIEBpZiAoY29udGV4dC51c2VyQ29uZmlnPy50aXRsZSkge1xuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7e1xuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgIH19XG4gICAgfVxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudFxuICAgIFtza3lWaWV3a2VlcGVyXT1cIlsnLnNreS1sb29rdXAtc2hvdy1tb3JlLXRvb2xiYXItd3JhcHBlciddXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXJcIj5cbiAgICAgIDxza3ktdG9vbGJhclxuICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXRvb2xiYXJcIlxuICAgICAgICBbbGlzdERlc2NyaXB0b3JdPVwiY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMjUwXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFRleHRdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChzZWFyY2hBcHBseSk9XCJzZWFyY2hBcHBsaWVkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIEBpZiAoY29udGV4dC5zaG93QWRkQnV0dG9uKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWFkZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2FkZF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiYWRkXCIgLz5cbiAgICAgICAgICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9hZGQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8L3NreS10b29sYmFyPlxuICAgICAgQGlmIChjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPHNreS10b29sYmFyIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVsdGlzZWxlY3QtdG9vbGJhclwiPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNlbGVjdC1hbGwtYnRuXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG5cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGRpc3BsYXllZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktbG9va3VwLXNob3ctbW9yZS1uby1yZXN1bHRzXCI+XG4gICAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX25vX3Jlc3VsdHMnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHNreS1yZXBlYXRlciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXJlcGVhdGVyXCIgZXhwYW5kTW9kZT1cIm5vbmVcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheWVkSXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwiY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnXCJcbiAgICAgICAgICBbKGlzU2VsZWN0ZWQpXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChpc1NlbGVjdGVkQ2hhbmdlKT1cIm9uSXRlbVNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbVRlbXBsYXRlID8/IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBpdGVtOiBpdGVtLnZhbHVlIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtPlxuICAgICAgfVxuICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgIDxza3ktaW5maW5pdGUtc2Nyb2xsXG4gICAgICBbZW5hYmxlZF09XCJpdGVtc0hhdmVNb3JlXCJcbiAgICAgIFtsb2FkaW5nXT1cIml0ZW1zTG9hZGluZ1wiXG4gICAgICAoc2Nyb2xsRW5kKT1cImFkZEl0ZW1zKClcIlxuICAgIC8+XG4gIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDxza3ktbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdCBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zYXZlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2NvbnRleHQnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2Uuc2F2ZShzZWxlY3RlZEl0ZW1zKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xvc2VcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwibW9kYWxJbnN0YW5jZS5jbG9zZSgpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jYW5jZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LW1vZGFsLWZvb3Rlcj5cbjwvc2t5LW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIHt7IGl0ZW1bY29udGV4dC5kZXNjcmlwdG9yUHJvcGVydHldIH19XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -223,7 +223,7 @@ export class SkySelectionModalComponent {
|
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
225
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkySelectionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
226
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkySelectionModalComponent, isStandalone: true, selector: "sky-selection-modal", ngImport: i0, template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <sky-wait [isWaiting]=\"isSearching\" />\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (!isSearching && displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [isSelected]=\"\n item[context.idProperty]\n | skySelectionModalItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.selectionDescriptor\n \"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyInfiniteScrollModule }, { kind: "component", type: i4.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { kind: "ngmodule", type: SkyLookupResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i6.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy"] }, { kind: "component", type: i6.λ2, selector: "sky-modal-content" }, { kind: "component", type: i6.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i6.λ4, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i4.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i4.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i4.λ8, selector: "sky-repeater-item-content" }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i7.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "pipe", type: SkySelectionModalItemSelectedPipe, name: "skySelectionModalItemSelected" }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i8.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i8.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i8.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i8.λ40, selector: "sky-toolbar-view-actions" }, { kind: "ngmodule", type: SkyWaitModule }, { kind: "component", type: i9.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i10.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
226
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkySelectionModalComponent, isStandalone: true, selector: "sky-selection-modal", ngImport: i0, template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <sky-wait [isWaiting]=\"isSearching\" />\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (!isSearching && displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [isSelected]=\"\n item[context.idProperty]\n | skySelectionModalItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.selectionDescriptor\n \"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyInfiniteScrollModule }, { kind: "component", type: i4.λ6, selector: "sky-infinite-scroll", inputs: ["enabled", "loading"], outputs: ["scrollEnd"] }, { kind: "ngmodule", type: SkyLookupResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i6.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout"] }, { kind: "component", type: i6.λ2, selector: "sky-modal-content" }, { kind: "component", type: i6.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i6.λ4, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i4.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i4.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i4.λ8, selector: "sky-repeater-item-content" }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i7.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "pipe", type: SkySelectionModalItemSelectedPipe, name: "skySelectionModalItemSelected" }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i8.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i8.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i8.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i8.λ40, selector: "sky-toolbar-view-actions" }, { kind: "ngmodule", type: SkyWaitModule }, { kind: "component", type: i9.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i10.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
227
227
|
}
|
|
228
228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkySelectionModalComponent, decorators: [{
|
|
229
229
|
type: Component,
|
|
@@ -243,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
243
243
|
SkyViewkeeperModule,
|
|
244
244
|
], template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <sky-wait [isWaiting]=\"isSearching\" />\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDisplayedItems()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (!isSearching && displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [isSelected]=\"\n item[context.idProperty]\n | skySelectionModalItemSelected: selectedIdMap\n \"\n [selectable]=\"context.selectMode === 'multiple'\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"hasMoreItems\"\n [loading]=\"isLoadingMore\"\n (scrollEnd)=\"infiniteScrollEnd()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.selectionDescriptor\n \"\n [disabled]=\"isSearching\"\n (click)=\"save()\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"] }]
|
|
245
245
|
}], ctorParameters: () => [] });
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1tb2RhbC9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvc2VsZWN0aW9uLW1vZGFsL3NlbGVjdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUlULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixN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Qiw4ZEFDakIsYUFBYSxtS0FDYix1QkFBdUIsMkpBQ3ZCLHdCQUF3Qix1R0FDeEIsY0FBYywwYkFDZCxpQkFBaUIsb2tCQUNqQixlQUFlLG1SQUNmLGlDQUFpQyxxRUFDakMsY0FBYyw4QkFDZCxnQkFBZ0IsNFVBQ2hCLGFBQWEseUxBQ2IsbUJBQW1COzs0RkFHViwwQkFBMEI7a0JBdEJ0QyxTQUFTO2lDQUNJLElBQUksWUFDTixxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVdhaXRNb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lJbmZpbml0ZVNjcm9sbE1vZHVsZSwgU2t5UmVwZWF0ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSwgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lMb29rdXBSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxvb2t1cC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5U2VsZWN0aW9uTW9kYWxJdGVtU2VsZWN0ZWRQaXBlIH0gZnJvbSAnLi9zZWxlY3Rpb24tbW9kYWwtaXRlbS1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IFNreVNlbGVjdGlvbk1vZGFsQ29udGV4dCB9IGZyb20gJy4vdHlwZXMvc2VsZWN0aW9uLW1vZGFsLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5U2VsZWN0aW9uTW9kYWxTZWFyY2hSZXN1bHQgfSBmcm9tICcuL3R5cGVzL3NlbGVjdGlvbi1tb2RhbC1zZWFyY2gtcmVzdWx0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LXNlbGVjdGlvbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5Q2hlY2tib3hNb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBTa3lMb29rdXBSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5UmVwZWF0ZXJNb2R1bGUsXG4gICAgU2t5U2VhcmNoTW9kdWxlLFxuICAgIFNreVNlbGVjdGlvbk1vZGFsSXRlbVNlbGVjdGVkUGlwZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUb29sYmFyTW9kdWxlLFxuICAgIFNreVdhaXRNb2R1bGUsXG4gICAgU2t5Vmlld2tlZXBlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2VsZWN0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGJ1dHRvbiB0byBhZGQgbmV3IG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2xpY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBkaXNwbGF5ZWRJdGVtczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgaGFzTW9yZUl0ZW1zID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbW9kYWwgd2l0aCBpdHMgb3duaW5nIGxvb2t1cCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc1NlYXJjaGluZyA9IGZhbHNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpdGVtczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgb25seVNob3dTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZXBlYXRlckl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZWxlY3RlZElkTWFwID0gbmV3IE1hcDx1bmtub3duLCB1bmtub3duPigpO1xuXG4gICNjb250aW51YXRpb25EYXRhOiB1bmtub3duO1xuXG4gICNjdXJyZW50U2VhcmNoU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvZmZzZXQgPSAwO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreVNlbGVjdGlvbk1vZGFsQ29udGV4dCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RhbEluc3RhbmNlID0gaW5qZWN0KFNreU1vZGFsSW5zdGFuY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuY29udGV4dC51c2VyQ29uZmlnLml0ZW1UZW1wbGF0ZSB8fCBudWxsO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuY29udGV4dC5pbml0aWFsU2VhcmNoO1xuXG4gICAgdGhpcy4jY3JlYXRlSW5pdGlhbFNlbGVjdGVkSXRlbXNNYXAoKTtcbiAgICB0aGlzLiNsb2FkU2VhcmNoUmVzdWx0cygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2NhbmNlbEN1cnJlbnRTZWFyY2goKTtcblxuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZE1hcCA9IG5ldyBNYXAodGhpcy5zZWxlY3RlZElkTWFwKTtcblxuICAgIC8vIE9ubHkgZGVzZWxlY3QgaXRlbXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkOyBpdGVtcyB0aGF0IHdvdWxkIGJlIGxvYWRlZFxuICAgIC8vIGFmdGVyIGFuIGluZmluaXRlIHNjcm9sbCBldmVudCBzaG91bGQgcmVtYWluIHNlbGVjdGVkLlxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1bdGhpcy5jb250ZXh0LmlkUHJvcGVydHldKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpdGVtQ2xpY2soc2VsZWN0ZWRJdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdCghc2VsZWN0ZWRJdGVtLnNlbGVjdGVkLCBzZWxlY3RlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBhZGRJdGVtKGl0ZW1Ub0FkZDogYW55KTogdm9pZCB7XG4gICAgLy8gQWRkIHRoZSBzZWxlY3RlZCBpdGVtLCB0aGVuIHBlcmZvcm0gdGhlIHNlYXJjaCBhZ2FpbiBpbiBjYXNlIHRoZVxuICAgIC8vIG5ld2x5LWFkZGVkIGl0ZW0gc2hvdWxkIGJlIGRpc3BsYXllZCBhcyBhIHNlYXJjaCByZXN1bHRzLlxuICAgIHRoaXMuI29mZnNldCA9IDA7XG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QodHJ1ZSwgaXRlbVRvQWRkKTtcbiAgICB0aGlzLiNsb2FkU2VhcmNoUmVzdWx0cygpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIG9uSXRlbVNlbGVjdChuZXdTZWxlY3RTdGF0ZTogYm9vbGVhbiwgaXRlbVRvU2VsZWN0OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtSWQgPSBpdGVtVG9TZWxlY3RbdGhpcy5jb250ZXh0LmlkUHJvcGVydHldO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IE1hcCBzbyB0aGUgcGlwZSB0cmFuc2Zvcm0gd2lsbCBleGVjdXRlIG9uIHRoZSBuZXh0XG4gICAgLy8gY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKHRoaXMuc2VsZWN0ZWRJZE1hcCk7XG5cbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5zZXQoaXRlbUlkLCBpdGVtVG9TZWxlY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLnNldChpdGVtSWQsIGl0ZW1Ub1NlbGVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1JZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEaXNwbGF5ZWRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jb2Zmc2V0ID0gMDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWFyY2hUZXh0O1xuXG4gICAgdGhpcy4jbG9hZFNlYXJjaFJlc3VsdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZElkTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5zZXQoaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0sIGl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzcGxheWVkSXRlbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmZpbml0ZVNjcm9sbEVuZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjYW5jZWxDdXJyZW50U2VhcmNoKCk7XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBlbHNlIGNhc2Ugd291bGQgb25seSBoYXBwZW4gaWYgdGhpcyB3YXMgY2FsbGVkIGRpcmVjdGx5ICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNNb3JlSXRlbXMpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IHRydWU7XG5cbiAgICAgIHRoaXMuI3BlcmZvcm1TZWFyY2goKHJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5jb25jYXQocmVzdWx0Lml0ZW1zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC52YWx1ZXMoKSxcbiAgICAgIChpdGVtRGF0YSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGluZGV4LFxuICAgICAgICBpdGVtRGF0YSxcbiAgICAgIH0pLFxuICAgICkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuaW5kZXhPZihhLml0ZW1EYXRhKSA8IHRoaXMuaXRlbXMuaW5kZXhPZihiLml0ZW1EYXRhKVxuICAgICAgICA/IC0xXG4gICAgICAgIDogMTtcbiAgICB9KTtcblxuICAgIHRoaXMubW9kYWxJbnN0YW5jZS5zYXZlKHNlbGVjdGVkSXRlbXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURpc3BsYXllZEl0ZW1zKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5oYXMoaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0pLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5sZW5ndGgsXG4gICAgICApO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAjbG9hZFNlYXJjaFJlc3VsdHMoKTogdm9pZCB7XG4gICAgdGhpcy4jY2FuY2VsQ3VycmVudFNlYXJjaCgpO1xuXG4gICAgdGhpcy5pc1NlYXJjaGluZyA9IHRydWU7XG5cbiAgICB0aGlzLiNwZXJmb3JtU2VhcmNoKChyZXN1bHQpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXRlbXMgPSByZXN1bHQuaXRlbXM7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNjcmVhdGVJbml0aWFsU2VsZWN0ZWRJdGVtc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKFxuICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZS5tYXAoKGl0ZW0pID0+IFtcbiAgICAgICAgKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3RoaXMuY29udGV4dC5pZFByb3BlcnR5XSxcbiAgICAgICAgaXRlbSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH1cblxuICAjcGVyZm9ybVNlYXJjaChcbiAgICBwcm9jZXNzUmVzdWx0czogKHJlc3VsdDogU2t5U2VsZWN0aW9uTW9kYWxTZWFyY2hSZXN1bHQpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIgPSB0aGlzLmNvbnRleHRcbiAgICAgIC5zZWFyY2hBc3luYyh7XG4gICAgICAgIGRpc3BsYXlUeXBlOiAnbW9kYWwnLFxuICAgICAgICBvZmZzZXQ6IHRoaXMuI29mZnNldCxcbiAgICAgICAgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hUZXh0IHx8ICcnLFxuICAgICAgICBjb250aW51YXRpb25EYXRhOiB0aGlzLiNjb250aW51YXRpb25EYXRhLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0KTtcblxuICAgICAgICB0aGlzLiNjb250aW51YXRpb25EYXRhID0gcmVzdWx0LmNvbnRpbnVhdGlvbkRhdGE7XG4gICAgICAgIHRoaXMuaGFzTW9yZUl0ZW1zID0gcmVzdWx0Lmhhc01vcmUgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuI29mZnNldCA9IHRoaXMuaXRlbXMubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkSXRlbXMoKTtcblxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2NhbmNlbEN1cnJlbnRTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjYW5ub3VuY2VTZWxlY3Rpb25TdGF0ZShcbiAgICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyLFxuICAgIGRpc3BsYXllZEl0ZW1Db3VudDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgIC5nZXRTdHJpbmcoXG4gICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2Rpc3BsYXllZF9pdGVtc191cGRhdGVkJyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtQ291bnQudG9TdHJpbmcoKSxcbiAgICAgICAgZGlzcGxheWVkSXRlbUNvdW50LnRvU3RyaW5nKCksXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VTdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZVN0cmluZyk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbFxuICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbbmdDbGFzc109XCInc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtJyArIGNvbnRleHQuc2VsZWN0TW9kZVwiXG4+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIEBpZiAoY29udGV4dC51c2VyQ29uZmlnPy50aXRsZSkge1xuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7e1xuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICB9fVxuICAgIH1cbiAgPC9za3ktbW9kYWwtaGVhZGVyPlxuICA8c2t5LW1vZGFsLWNvbnRlbnRcbiAgICBbc2t5Vmlld2tlZXBlcl09XCJbJy5za3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXInXVwiXG4gID5cbiAgICA8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJpc1NlYXJjaGluZ1wiIC8+XG4gICAgPGRpdiBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXRvb2xiYXItd3JhcHBlclwiPlxuICAgICAgPHNreS10b29sYmFyXG4gICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtdG9vbGJhclwiXG4gICAgICAgIFtsaXN0RGVzY3JpcHRvcl09XCJjb250ZXh0LnNlbGVjdGlvbkRlc2NyaXB0b3JcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMjUwXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFRleHRdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChzZWFyY2hBcHBseSk9XCJzZWFyY2hBcHBsaWVkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIEBpZiAoY29udGV4dC5zaG93QWRkQnV0dG9uKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWFkZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2FkZF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFkZFwiIC8+XG4gICAgICAgICAgICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfYWRkJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIEBpZiAoY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIDxza3ktdG9vbGJhciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLW11bHRpc2VsZWN0LXRvb2xiYXJcIj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zZWxlY3QtYWxsLWJ0blwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xlYXItYWxsLWJ0blwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgWyhjaGVja2VkKV09XCJvbmx5U2hvd1NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURpc3BsYXllZEl0ZW1zKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFpc1NlYXJjaGluZyAmJiBkaXNwbGF5ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LWxvb2t1cC1zaG93LW1vcmUtbm8tcmVzdWx0c1wiPlxuICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9ub19yZXN1bHRzJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxza3ktcmVwZWF0ZXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1yZXBlYXRlclwiIGV4cGFuZE1vZGU9XCJub25lXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXllZEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAgIFtpc1NlbGVjdGVkXT1cIlxuICAgICAgICAgICAgaXRlbVtjb250ZXh0LmlkUHJvcGVydHldXG4gICAgICAgICAgICAgIHwgc2t5U2VsZWN0aW9uTW9kYWxJdGVtU2VsZWN0ZWQ6IHNlbGVjdGVkSWRNYXBcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtzZWxlY3RhYmxlXT1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgKGlzU2VsZWN0ZWRDaGFuZ2UpPVwib25JdGVtU2VsZWN0KCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgcmVwZWF0ZXJJdGVtVGVtcGxhdGUgPz8gZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gICAgICB9XG4gICAgPC9za3ktcmVwZWF0ZXI+XG4gICAgPHNreS1pbmZpbml0ZS1zY3JvbGxcbiAgICAgIFtlbmFibGVkXT1cImhhc01vcmVJdGVtc1wiXG4gICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdNb3JlXCJcbiAgICAgIChzY3JvbGxFbmQpPVwiaW5maW5pdGVTY3JvbGxFbmQoKVwiXG4gICAgLz5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeSBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0IHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNhdmVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zZWxlY3RfY29udGV4dCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzU2VhcmNoaW5nXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsb3NlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2UuY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2FuY2VsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICB7eyBpdGVtW2NvbnRleHQuZGVzY3JpcHRvclByb3BlcnR5XSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1tb2RhbC9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvc2VsZWN0aW9uLW1vZGFsL3NlbGVjdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUlULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixN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Qiw4ZEFDakIsYUFBYSxtS0FDYix1QkFBdUIsMkpBQ3ZCLHdCQUF3Qix1R0FDeEIsY0FBYyxvY0FDZCxpQkFBaUIsb2tCQUNqQixlQUFlLG1SQUNmLGlDQUFpQyxxRUFDakMsY0FBYyw4QkFDZCxnQkFBZ0IsNFVBQ2hCLGFBQWEseUxBQ2IsbUJBQW1COzs0RkFHViwwQkFBMEI7a0JBdEJ0QyxTQUFTO2lDQUNJLElBQUksWUFDTixxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVdhaXRNb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lJbmZpbml0ZVNjcm9sbE1vZHVsZSwgU2t5UmVwZWF0ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSwgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lMb29rdXBSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxvb2t1cC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5U2VsZWN0aW9uTW9kYWxJdGVtU2VsZWN0ZWRQaXBlIH0gZnJvbSAnLi9zZWxlY3Rpb24tbW9kYWwtaXRlbS1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IFNreVNlbGVjdGlvbk1vZGFsQ29udGV4dCB9IGZyb20gJy4vdHlwZXMvc2VsZWN0aW9uLW1vZGFsLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5U2VsZWN0aW9uTW9kYWxTZWFyY2hSZXN1bHQgfSBmcm9tICcuL3R5cGVzL3NlbGVjdGlvbi1tb2RhbC1zZWFyY2gtcmVzdWx0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LXNlbGVjdGlvbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5Q2hlY2tib3hNb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBTa3lMb29rdXBSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5UmVwZWF0ZXJNb2R1bGUsXG4gICAgU2t5U2VhcmNoTW9kdWxlLFxuICAgIFNreVNlbGVjdGlvbk1vZGFsSXRlbVNlbGVjdGVkUGlwZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUb29sYmFyTW9kdWxlLFxuICAgIFNreVdhaXRNb2R1bGUsXG4gICAgU2t5Vmlld2tlZXBlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2VsZWN0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGJ1dHRvbiB0byBhZGQgbmV3IG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2xpY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBkaXNwbGF5ZWRJdGVtczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgaGFzTW9yZUl0ZW1zID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbW9kYWwgd2l0aCBpdHMgb3duaW5nIGxvb2t1cCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc1NlYXJjaGluZyA9IGZhbHNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpdGVtczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgb25seVNob3dTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZXBlYXRlckl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZWxlY3RlZElkTWFwID0gbmV3IE1hcDx1bmtub3duLCB1bmtub3duPigpO1xuXG4gICNjb250aW51YXRpb25EYXRhOiB1bmtub3duO1xuXG4gICNjdXJyZW50U2VhcmNoU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvZmZzZXQgPSAwO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreVNlbGVjdGlvbk1vZGFsQ29udGV4dCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RhbEluc3RhbmNlID0gaW5qZWN0KFNreU1vZGFsSW5zdGFuY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuY29udGV4dC51c2VyQ29uZmlnLml0ZW1UZW1wbGF0ZSB8fCBudWxsO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuY29udGV4dC5pbml0aWFsU2VhcmNoO1xuXG4gICAgdGhpcy4jY3JlYXRlSW5pdGlhbFNlbGVjdGVkSXRlbXNNYXAoKTtcbiAgICB0aGlzLiNsb2FkU2VhcmNoUmVzdWx0cygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2NhbmNlbEN1cnJlbnRTZWFyY2goKTtcblxuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZE1hcCA9IG5ldyBNYXAodGhpcy5zZWxlY3RlZElkTWFwKTtcblxuICAgIC8vIE9ubHkgZGVzZWxlY3QgaXRlbXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkOyBpdGVtcyB0aGF0IHdvdWxkIGJlIGxvYWRlZFxuICAgIC8vIGFmdGVyIGFuIGluZmluaXRlIHNjcm9sbCBldmVudCBzaG91bGQgcmVtYWluIHNlbGVjdGVkLlxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1bdGhpcy5jb250ZXh0LmlkUHJvcGVydHldKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBpdGVtQ2xpY2soc2VsZWN0ZWRJdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdCghc2VsZWN0ZWRJdGVtLnNlbGVjdGVkLCBzZWxlY3RlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBhZGRJdGVtKGl0ZW1Ub0FkZDogYW55KTogdm9pZCB7XG4gICAgLy8gQWRkIHRoZSBzZWxlY3RlZCBpdGVtLCB0aGVuIHBlcmZvcm0gdGhlIHNlYXJjaCBhZ2FpbiBpbiBjYXNlIHRoZVxuICAgIC8vIG5ld2x5LWFkZGVkIGl0ZW0gc2hvdWxkIGJlIGRpc3BsYXllZCBhcyBhIHNlYXJjaCByZXN1bHRzLlxuICAgIHRoaXMuI29mZnNldCA9IDA7XG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QodHJ1ZSwgaXRlbVRvQWRkKTtcbiAgICB0aGlzLiNsb2FkU2VhcmNoUmVzdWx0cygpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIG9uSXRlbVNlbGVjdChuZXdTZWxlY3RTdGF0ZTogYm9vbGVhbiwgaXRlbVRvU2VsZWN0OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtSWQgPSBpdGVtVG9TZWxlY3RbdGhpcy5jb250ZXh0LmlkUHJvcGVydHldO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IE1hcCBzbyB0aGUgcGlwZSB0cmFuc2Zvcm0gd2lsbCBleGVjdXRlIG9uIHRoZSBuZXh0XG4gICAgLy8gY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKHRoaXMuc2VsZWN0ZWRJZE1hcCk7XG5cbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5zZXQoaXRlbUlkLCBpdGVtVG9TZWxlY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkTWFwLnNldChpdGVtSWQsIGl0ZW1Ub1NlbGVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRNYXAuZGVsZXRlKGl0ZW1JZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVEaXNwbGF5ZWRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jb2Zmc2V0ID0gMDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWFyY2hUZXh0O1xuXG4gICAgdGhpcy4jbG9hZFNlYXJjaFJlc3VsdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZElkTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5zZXQoaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0sIGl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzcGxheWVkSXRlbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmZpbml0ZVNjcm9sbEVuZCgpOiB2b2lkIHtcbiAgICB0aGlzLiNjYW5jZWxDdXJyZW50U2VhcmNoKCk7XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBlbHNlIGNhc2Ugd291bGQgb25seSBoYXBwZW4gaWYgdGhpcyB3YXMgY2FsbGVkIGRpcmVjdGx5ICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNNb3JlSXRlbXMpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IHRydWU7XG5cbiAgICAgIHRoaXMuI3BlcmZvcm1TZWFyY2goKHJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5jb25jYXQocmVzdWx0Lml0ZW1zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXllZEl0ZW1zKCk7XG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC52YWx1ZXMoKSxcbiAgICAgIChpdGVtRGF0YSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGluZGV4LFxuICAgICAgICBpdGVtRGF0YSxcbiAgICAgIH0pLFxuICAgICkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuaW5kZXhPZihhLml0ZW1EYXRhKSA8IHRoaXMuaXRlbXMuaW5kZXhPZihiLml0ZW1EYXRhKVxuICAgICAgICA/IC0xXG4gICAgICAgIDogMTtcbiAgICB9KTtcblxuICAgIHRoaXMubW9kYWxJbnN0YW5jZS5zYXZlKHNlbGVjdGVkSXRlbXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURpc3BsYXllZEl0ZW1zKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJZE1hcC5oYXMoaXRlbVt0aGlzLmNvbnRleHQuaWRQcm9wZXJ0eV0pLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5sZW5ndGgsXG4gICAgICApO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAjbG9hZFNlYXJjaFJlc3VsdHMoKTogdm9pZCB7XG4gICAgdGhpcy4jY2FuY2VsQ3VycmVudFNlYXJjaCgpO1xuXG4gICAgdGhpcy5pc1NlYXJjaGluZyA9IHRydWU7XG5cbiAgICB0aGlzLiNwZXJmb3JtU2VhcmNoKChyZXN1bHQpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXRlbXMgPSByZXN1bHQuaXRlbXM7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNjcmVhdGVJbml0aWFsU2VsZWN0ZWRJdGVtc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRNYXAgPSBuZXcgTWFwKFxuICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZS5tYXAoKGl0ZW0pID0+IFtcbiAgICAgICAgKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3RoaXMuY29udGV4dC5pZFByb3BlcnR5XSxcbiAgICAgICAgaXRlbSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH1cblxuICAjcGVyZm9ybVNlYXJjaChcbiAgICBwcm9jZXNzUmVzdWx0czogKHJlc3VsdDogU2t5U2VsZWN0aW9uTW9kYWxTZWFyY2hSZXN1bHQpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIgPSB0aGlzLmNvbnRleHRcbiAgICAgIC5zZWFyY2hBc3luYyh7XG4gICAgICAgIGRpc3BsYXlUeXBlOiAnbW9kYWwnLFxuICAgICAgICBvZmZzZXQ6IHRoaXMuI29mZnNldCxcbiAgICAgICAgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hUZXh0IHx8ICcnLFxuICAgICAgICBjb250aW51YXRpb25EYXRhOiB0aGlzLiNjb250aW51YXRpb25EYXRhLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0KTtcblxuICAgICAgICB0aGlzLiNjb250aW51YXRpb25EYXRhID0gcmVzdWx0LmNvbnRpbnVhdGlvbkRhdGE7XG4gICAgICAgIHRoaXMuaGFzTW9yZUl0ZW1zID0gcmVzdWx0Lmhhc01vcmUgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuI29mZnNldCA9IHRoaXMuaXRlbXMubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkSXRlbXMoKTtcblxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2NhbmNlbEN1cnJlbnRTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuI2N1cnJlbnRTZWFyY2hTdWIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjYW5ub3VuY2VTZWxlY3Rpb25TdGF0ZShcbiAgICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyLFxuICAgIGRpc3BsYXllZEl0ZW1Db3VudDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgIC5nZXRTdHJpbmcoXG4gICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2Rpc3BsYXllZF9pdGVtc191cGRhdGVkJyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtQ291bnQudG9TdHJpbmcoKSxcbiAgICAgICAgZGlzcGxheWVkSXRlbUNvdW50LnRvU3RyaW5nKCksXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VTdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZVN0cmluZyk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbFxuICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbbmdDbGFzc109XCInc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtJyArIGNvbnRleHQuc2VsZWN0TW9kZVwiXG4+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIEBpZiAoY29udGV4dC51c2VyQ29uZmlnPy50aXRsZSkge1xuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7e1xuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICB9fVxuICAgIH1cbiAgPC9za3ktbW9kYWwtaGVhZGVyPlxuICA8c2t5LW1vZGFsLWNvbnRlbnRcbiAgICBbc2t5Vmlld2tlZXBlcl09XCJbJy5za3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXInXVwiXG4gID5cbiAgICA8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJpc1NlYXJjaGluZ1wiIC8+XG4gICAgPGRpdiBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXRvb2xiYXItd3JhcHBlclwiPlxuICAgICAgPHNreS10b29sYmFyXG4gICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtdG9vbGJhclwiXG4gICAgICAgIFtsaXN0RGVzY3JpcHRvcl09XCJjb250ZXh0LnNlbGVjdGlvbkRlc2NyaXB0b3JcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMjUwXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFRleHRdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChzZWFyY2hBcHBseSk9XCJzZWFyY2hBcHBsaWVkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIEBpZiAoY29udGV4dC5zaG93QWRkQnV0dG9uKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWFkZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2FkZF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFkZFwiIC8+XG4gICAgICAgICAgICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfYWRkJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIEBpZiAoY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIDxza3ktdG9vbGJhciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLW11bHRpc2VsZWN0LXRvb2xiYXJcIj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zZWxlY3QtYWxsLWJ0blwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xlYXItYWxsLWJ0blwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgWyhjaGVja2VkKV09XCJvbmx5U2hvd1NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURpc3BsYXllZEl0ZW1zKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFpc1NlYXJjaGluZyAmJiBkaXNwbGF5ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LWxvb2t1cC1zaG93LW1vcmUtbm8tcmVzdWx0c1wiPlxuICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9ub19yZXN1bHRzJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxza3ktcmVwZWF0ZXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1yZXBlYXRlclwiIGV4cGFuZE1vZGU9XCJub25lXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXllZEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAgIFtpc1NlbGVjdGVkXT1cIlxuICAgICAgICAgICAgaXRlbVtjb250ZXh0LmlkUHJvcGVydHldXG4gICAgICAgICAgICAgIHwgc2t5U2VsZWN0aW9uTW9kYWxJdGVtU2VsZWN0ZWQ6IHNlbGVjdGVkSWRNYXBcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtzZWxlY3RhYmxlXT1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cIml0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgKGlzU2VsZWN0ZWRDaGFuZ2UpPVwib25JdGVtU2VsZWN0KCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgcmVwZWF0ZXJJdGVtVGVtcGxhdGUgPz8gZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gICAgICB9XG4gICAgPC9za3ktcmVwZWF0ZXI+XG4gICAgPHNreS1pbmZpbml0ZS1zY3JvbGxcbiAgICAgIFtlbmFibGVkXT1cImhhc01vcmVJdGVtc1wiXG4gICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdNb3JlXCJcbiAgICAgIChzY3JvbGxFbmQpPVwiaW5maW5pdGVTY3JvbGxFbmQoKVwiXG4gICAgLz5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeSBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0IHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNhdmVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zZWxlY3RfY29udGV4dCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzU2VhcmNoaW5nXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsb3NlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2UuY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2FuY2VsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICB7eyBpdGVtW2NvbnRleHQuZGVzY3JpcHRvclByb3BlcnR5XSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|