@ethlete/cdk 4.1.0 → 4.2.1
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/CHANGELOG.md +14 -0
- package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +6 -7
- package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +4 -4
- package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +4 -4
- package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +5 -5
- package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +4 -4
- package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +5 -5
- package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +9 -18
- package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +4 -4
- package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +4 -4
- package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +7 -7
- package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +7 -7
- package/esm2022/lib/components/button/components/button/button.component.mjs +5 -5
- package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +7 -7
- package/esm2022/lib/components/button/directives/button/button.directive.mjs +4 -4
- package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +5 -5
- package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +12 -12
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +4 -4
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +4 -4
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +4 -4
- package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +4 -4
- package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +4 -4
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +5 -5
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +4 -4
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +4 -4
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +4 -4
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +5 -5
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +7 -9
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +5 -5
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +7 -9
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +8 -8
- package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +5 -5
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +4 -5
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +5 -5
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +4 -4
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +4 -4
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +6 -6
- package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +6 -6
- package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +5 -5
- package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +5 -5
- package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +5 -5
- package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +4 -4
- package/esm2022/lib/components/forms/services/form-field-state.service.mjs +4 -4
- package/esm2022/lib/components/forms/services/form-group-state.service.mjs +4 -4
- package/esm2022/lib/components/forms/services/input-state.service.mjs +4 -4
- package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +4 -4
- package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +5 -5
- package/esm2022/lib/components/forms/utils/input.base.mjs +4 -4
- package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +4 -4
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +4 -4
- package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +7 -7
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +6 -6
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +5 -5
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +4 -4
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +6 -6
- package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +7 -7
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +6 -6
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +5 -5
- package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +6 -6
- package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +8 -8
- package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +7 -7
- package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +5 -5
- package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +5 -5
- package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +5 -5
- package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +4 -4
- package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +5 -5
- package/esm2022/lib/components/overlay/components/menu/menu.mjs +5 -5
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +6 -6
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +4 -4
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +8 -8
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -5
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +8 -8
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -5
- package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +4 -4
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +5 -5
- package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +4 -4
- package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +7 -7
- package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +4 -4
- package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +4 -4
- package/esm2022/lib/components/pagination/utils/pagination.util.mjs +1 -1
- package/esm2022/lib/components/picture/picture-data.directive.mjs +4 -4
- package/esm2022/lib/components/picture/picture.component.mjs +8 -8
- package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +4 -4
- package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +7 -7
- package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +5 -6
- package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +4 -4
- package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +241 -140
- package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +4 -4
- package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +4 -4
- package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +6 -7
- package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +4 -4
- package/esm2022/lib/components/sort/services/sort-header-intl.mjs +4 -4
- package/esm2022/lib/components/table/components/table/table.component.mjs +6 -6
- package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +6 -6
- package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +6 -6
- package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +4 -4
- package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +6 -6
- package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +4 -4
- package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +6 -6
- package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +4 -4
- package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +6 -6
- package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +4 -4
- package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +7 -9
- package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +4 -4
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +6 -6
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +5 -5
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +6 -6
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +4 -4
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +6 -6
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +6 -6
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +4 -4
- package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +4 -4
- package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +22 -14
- package/esm2022/lib/services/swipe-handler.service.mjs +4 -4
- package/fesm2022/ethlete-cdk.mjs +988 -896
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/picture/picture.component.d.ts +1 -1
- package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +73 -33
- package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +1 -1
- package/package.json +8 -8
|
@@ -659,15 +659,15 @@ export class ComboboxDirective {
|
|
|
659
659
|
}))
|
|
660
660
|
.subscribe();
|
|
661
661
|
}
|
|
662
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
663
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
662
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
663
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.2", type: ComboboxDirective, isStandalone: true, inputs: { options: "options", initialValue: "initialValue", filterInternal: "filterInternal", loading: "loading", error: "error", emptyText: "emptyText", bodyEmptyText: "bodyEmptyText", bodyMoreItemsHintText: "bodyMoreItemsHintText", placeholder: "placeholder", multiple: "multiple", bindLabel: "bindLabel", bindValue: "bindValue", bindKey: "bindKey", bindDisabled: "bindDisabled", allowCustomValues: "allowCustomValues", showBodyMoreItemsHint: ["showBodyMoreItemsHint", "showBodyMoreItemsHint", booleanAttribute], optionComponent: "optionComponent", optionComponentInputs: "optionComponentInputs", selectedOptionComponent: "selectedOptionComponent", selectedOptionComponentInputs: "selectedOptionComponentInputs", bodyErrorComponent: "bodyErrorComponent", bodyErrorComponentInputs: "bodyErrorComponentInputs", bodyLoadingComponent: "bodyLoadingComponent", bodyLoadingComponentInputs: "bodyLoadingComponentInputs", bodyEmptyComponent: "bodyEmptyComponent", bodyEmptyComponentInputs: "bodyEmptyComponentInputs", bodyMoreItemsHintComponent: "bodyMoreItemsHintComponent", bodyMoreItemsHintComponentInputs: "bodyMoreItemsHintComponentInputs" }, outputs: { filterChange: "filterChange" }, providers: [
|
|
664
664
|
{
|
|
665
665
|
provide: COMBOBOX_TOKEN,
|
|
666
666
|
useExisting: ComboboxDirective,
|
|
667
667
|
},
|
|
668
668
|
], queries: [{ propertyName: "optionTemplate", first: true, predicate: COMBOBOX_OPTION_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }, { propertyName: "selectedOptionTemplate", first: true, predicate: COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }, { propertyName: "bodyLoadingTemplate", first: true, predicate: COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }, { propertyName: "bodyErrorTemplate", first: true, predicate: COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }, { propertyName: "bodyEmptyTemplate", first: true, predicate: COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }, { propertyName: "bodyMoreItemsHintTemplate", first: true, predicate: COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, descendants: true, read: TemplateRef }], ngImport: i0 }); }
|
|
669
669
|
}
|
|
670
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxDirective, decorators: [{
|
|
671
671
|
type: Directive,
|
|
672
672
|
args: [{
|
|
673
673
|
standalone: true,
|
|
@@ -678,7 +678,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
678
678
|
},
|
|
679
679
|
],
|
|
680
680
|
}]
|
|
681
|
-
}], ctorParameters:
|
|
681
|
+
}], ctorParameters: () => [], propDecorators: { options: [{
|
|
682
682
|
type: Input,
|
|
683
683
|
args: [{ required: true }]
|
|
684
684
|
}], initialValue: [{
|
|
@@ -757,4 +757,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
757
757
|
type: ContentChild,
|
|
758
758
|
args: [COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, { read: TemplateRef }]
|
|
759
759
|
}] } });
|
|
760
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvZGlyZWN0aXZlcy9jb21ib2JveC9jb21ib2JveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osY0FBYyxFQUNkLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUVYLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsY0FBYyxFQUdkLGFBQWEsRUFDYixZQUFZLEVBQ1osYUFBYSxFQUNiLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFP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QUUsV0FBVyxFQUFFO2dCQU9uRSxpQkFBaUI7c0JBRHBCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQU9uRSx5QkFBeUI7c0JBRDVCLFlBQVk7dUJBQUMsNENBQTRDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQSwgQkFDS1NQQUNFLCBFTlRFUiwgRVNDQVBFLCBUQUIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBBY3RpdmVTZWxlY3Rpb25Nb2RlbCxcbiAgQW5pbWF0ZWRPdmVybGF5Q29tcG9uZW50QmFzZSxcbiAgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLFxuICBLZXlQcmVzc01hbmFnZXIsXG4gIFNlbGVjdGlvbk1vZGVsLFxuICBTZWxlY3Rpb25Nb2RlbEJpbmRpbmcsXG4gIFR5cGVkUXVlcnlMaXN0LFxuICBjcmVhdGVEZXN0cm95LFxuICBpc0VtcHR5QXJyYXksXG4gIGlzT2JqZWN0QXJyYXksXG4gIGlzUHJpbWl0aXZlQXJyYXksXG4gIHNjcm9sbFRvRWxlbWVudCxcbiAgc2lnbmFsQ2xhc3NlcyxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBvZixcbiAgc2tpcCxcbiAgc2tpcFdoaWxlLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHRocm93RXJyb3IsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSU5QVVRfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNFTEVDVF9GSUVMRF9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ09NQk9CT1hfQ09ORklHX1RPS0VOLCBDT01CT0JPWF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBDb21ib2JveEtleUhhbmRsZXJSZXN1bHQsXG4gIENvbWJvYm94T3B0aW9uVHlwZSxcbiAgQ29tcG9uZW50V2l0aEVycm9yLFxuICBDb21wb25lbnRXaXRoT3B0aW9uLFxuICBUZW1wbGF0ZVJlZldpdGhFcnJvcixcbiAgVGVtcGxhdGVSZWZXaXRoT3B0aW9uLFxuICBhc3NldENvbWJvYm94Qm9keUNvbXBvbmVudFNldCxcbiAgY29tYm9ib3hFcnJvcixcbn0gZnJvbSAnLi4vLi4vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtYm9keS1lbXB0eS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtYm9keS1lcnJvci10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0xPQURJTkdfVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1ib2R5LWxvYWRpbmctdGVtcGxhdGUnO1xuaW1wb3J0IHsgQ09NQk9CT1hfQk9EWV9NT1JFX0lURU1TX0hJTlRfVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1ib2R5LW1vcmUtaXRlbXMtaGludC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9PUFRJT05fVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1vcHRpb24tdGVtcGxhdGUnO1xuaW1wb3J0IHsgQ09NQk9CT1hfU0VMRUNURURfT1BUSU9OX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtc2VsZWN0ZWQtb3B0aW9uLXRlbXBsYXRlJztcblxuZXhwb3J0IGNvbnN0IENPTUJPQk9YX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94RGlyZWN0aXZlPignRVRfQ09NQk9CT1hfSU5QVVRfVE9LRU4nKTtcblxuZXhwb3J0IHR5cGUgQWJzdHJhY3RDb21ib2JveEJvZHkgPSBBbmltYXRlZE92ZXJsYXlDb21wb25lbnRCYXNlICYge1xuICBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxUeXBlZFF1ZXJ5TGlzdDxBYnN0cmFjdENvbWJvYm94T3B0aW9uPiB8IG51bGw+O1xuICBfY29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBYnN0cmFjdENvbWJvYm94T3B0aW9uID0ge1xuICBfb3B0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHVua25vd24+O1xuICBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyNyZWdpb24gSW5qZWN0c1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICByZWFkb25seSBfaW5wdXQgPSBpbmplY3QoSU5QVVRfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RGaWVsZCA9IGluamVjdChTRUxFQ1RfRklFTERfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPEFic3RyYWN0Q29tYm9ib3hCb2R5Pj4oQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tYm9ib3hDb25maWcgPSBpbmplY3QoQ09NQk9CT1hfQ09ORklHX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vI3JlZ2lvbiBJbnB1dHNcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuZ2V0RmlsdGVyZWRPcHRpb25zKCk7XG4gIH1cbiAgc2V0IG9wdGlvbnModmFsdWU6IHVua25vd25bXSkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldE9wdGlvbnModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGluaXRpYWxWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFNlbGVjdGlvbih2YWx1ZSk7XG4gICAgdGhpcy5faW5pdGlhbFZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9pbml0aWFsVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx1bmtub3duPihudWxsKTtcblxuICBASW5wdXQoKVxuICBnZXQgZmlsdGVySW50ZXJuYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckludGVybmFsJC52YWx1ZTtcbiAgfVxuICBzZXQgZmlsdGVySW50ZXJuYWwodmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCB2YWwgPSBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcbiAgICB0aGlzLl9maWx0ZXJJbnRlcm5hbCQubmV4dCh2YWwpO1xuXG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEZpbHRlcignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9maWx0ZXJJbnRlcm5hbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoKVxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQudmFsdWU7XG4gIH1cbiAgc2V0IGxvYWRpbmcodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuICBwcml2YXRlIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3IkLnZhbHVlO1xuICB9XG4gIHNldCBlcnJvcih2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2Vycm9yJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHVua25vd24+KG51bGwpO1xuICByZWFkb25seSBlcnJvciQgPSB0aGlzLl9lcnJvciQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgYm9keUVtcHR5VGV4dGAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY1LlxuICAgKi9cbiAgQElucHV0KClcbiAgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGJvZHlFbXB0eVRleHQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYm9keU1vcmVJdGVtc0hpbnRUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyBiZSByZW1vdmVkIGluIHY1LlxuICAgKi9cbiAgZ2V0IF90ZW1wRW1wdHlUZXh0KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVtcHR5VGV4dCA/P1xuICAgICAgdGhpcy5ib2R5RW1wdHlUZXh0ID8/XG4gICAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keUVtcHR5VGV4dCA/P1xuICAgICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmVtcHR5VGV4dCA/P1xuICAgICAgQ09NQk9CT1hfREVGQVVMVF9DT05GSUcuYm9keUVtcHR5VGV4dFxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyJC52YWx1ZTtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBASW5wdXQoKVxuICBzZXQgbXVsdGlwbGUodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRBbGxvd011bHRpcGxlKGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBiaW5kTGFiZWwodmFsdWU6IFNlbGVjdGlvbk1vZGVsQmluZGluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRMYWJlbEJpbmRpbmcodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJpbmRWYWx1ZSh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFZhbHVlQmluZGluZyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYmluZEtleSh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEtleUJpbmRpbmcodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJpbmREaXNhYmxlZCh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldERpc2FibGVkQmluZGluZyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYWxsb3dDdXN0b21WYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q3VzdG9tVmFsdWVzJC52YWx1ZTtcbiAgfVxuICBzZXQgYWxsb3dDdXN0b21WYWx1ZXModmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9hbGxvd0N1c3RvbVZhbHVlcyQubmV4dChib29sZWFuQXR0cmlidXRlKHZhbHVlKSk7XG4gIH1cbiAgcHJpdmF0ZSBfYWxsb3dDdXN0b21WYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGdldCBzaG93Qm9keU1vcmVJdGVtc0hpbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dCb2R5TW9yZUl0ZW1zSGludCQudmFsdWU7XG4gIH1cbiAgc2V0IHNob3dCb2R5TW9yZUl0ZW1zSGludCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dCb2R5TW9yZUl0ZW1zSGludCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfc2hvd0JvZHlNb3JlSXRlbXNIaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBvcHRpb25Db21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbkNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IG9wdGlvbkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBvbmVudFdpdGhPcHRpb24gfCBudWxsKSB7XG4gICAgdGhpcy5fb3B0aW9uQ29tcG9uZW50JC5uZXh0KGNvbXBvbmVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uQ29tcG9uZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50V2l0aE9wdGlvbiB8IG51bGw+KFxuICAgIHRoaXMuX2NvbWJvYm94Q29uZmlnPy5vcHRpb25Db21wb25lbnQgPz8gbnVsbCxcbiAgKTtcblxuICBASW5wdXQoKVxuICBnZXQgb3B0aW9uQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25Db21wb25lbnRJbnB1dHMkLnZhbHVlO1xuICB9XG4gIHNldCBvcHRpb25Db21wb25lbnRJbnB1dHModmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbkNvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfb3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHt9KTtcblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRPcHRpb25Db21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50JC52YWx1ZTtcbiAgfVxuICBzZXQgc2VsZWN0ZWRPcHRpb25Db21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRXaXRoT3B0aW9uIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50JC5uZXh0KGNvbXBvbmVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRPcHRpb25Db21wb25lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRXaXRoT3B0aW9uIHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LnNlbGVjdGVkT3B0aW9uQ29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbkNvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbkNvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRPcHRpb25Db21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RXJyb3JDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFcnJvckNvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50V2l0aEVycm9yIHwgbnVsbCkge1xuICAgIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUVycm9yQ29tcG9uZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50V2l0aEVycm9yIHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmJvZHlFcnJvckNvbXBvbmVudCA/PyBudWxsLFxuICApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RXJyb3JDb21wb25lbnRJbnB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFcnJvckNvbXBvbmVudElucHV0cyh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fYm9keUVycm9yQ29tcG9uZW50SW5wdXRzJC5uZXh0KHZhbHVlID8/IHt9KTtcbiAgfVxuICBwcml2YXRlIF9ib2R5RXJyb3JDb21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5TG9hZGluZ0NvbXBvbmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnQkLnZhbHVlO1xuICB9XG4gIHNldCBib2R5TG9hZGluZ0NvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50VHlwZTx1bmtub3duPiB8IG51bGwpIHtcbiAgICB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUxvYWRpbmdDb21wb25lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRUeXBlPHVua25vd24+IHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmJvZHlMb2FkaW5nQ29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RW1wdHlDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFbXB0eUNvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50VHlwZTx1bmtub3duPiB8IG51bGwpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlDb21wb25lbnQkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2JvZHlFbXB0eUNvbXBvbmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbXBvbmVudFR5cGU8dW5rbm93bj4gfCBudWxsPihcbiAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keUVtcHR5Q29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlFbXB0eUNvbXBvbmVudElucHV0cygpIHtcbiAgICByZXR1cm4gdGhpcy5fYm9keUVtcHR5Q29tcG9uZW50SW5wdXRzJC52YWx1ZTtcbiAgfVxuICBzZXQgYm9keUVtcHR5Q29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlDb21wb25lbnRJbnB1dHMkLm5leHQodmFsdWUgPz8ge30pO1xuICB9XG4gIHByaXZhdGUgX2JvZHlFbXB0eUNvbXBvbmVudElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50KHZhbHVlOiBDb21wb25lbnRUeXBlPHVua25vd24+IHwgbnVsbCkge1xuICAgIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50JC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbXBvbmVudFR5cGU8dW5rbm93bj4gfCBudWxsPihcbiAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnQgPz8gbnVsbCxcbiAgKTtcblxuICBASW5wdXQoKVxuICBnZXQgYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC52YWx1ZTtcbiAgfVxuICBzZXQgYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHModmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC5uZXh0KHZhbHVlID8/IHt9KTtcbiAgfVxuICBwcml2YXRlIF9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIE91dHB1dHNcblxuICBAT3V0cHV0KClcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBNZW1iZXJzXG5cbiAgcHJpdmF0ZSBfc2hvdWxkSWdub3JlTmV4dEJsdXJFdmVudCA9IGZhbHNlO1xuICBwcml2YXRlIF9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgc2VsZWN0Qm9keUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGFjdGl2ZU9wdGlvbklkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgZ2V0IGN1cnJlbnRGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRGaWx0ZXIkLnZhbHVlO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRGaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcml2YXRlIGdldCBfaXNPcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkO1xuICB9XG4gIHJlYWRvbmx5IGlzT3BlbiQgPSB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkJDtcbiAgcmVhZG9ubHkgaXNPcGVuID0gdG9TaWduYWwodGhpcy5pc09wZW4kKTtcblxuICByZWFkb25seSBfc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWwoKTtcbiAgcmVhZG9ubHkgX2FjdGl2ZVNlbGVjdGlvbk1vZGVsID0gbmV3IEFjdGl2ZVNlbGVjdGlvbk1vZGVsKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JhY2tzcGFjZUtleVByZXNzTWFuYWdlciA9IG5ldyBLZXlQcmVzc01hbmFnZXIoQkFDS1NQQUNFKTtcblxuICByZWFkb25seSBzZWxlY3RlZE9wdGlvbnMkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uJDtcbiAgcmVhZG9ubHkgbXVsdGlwbGUkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuYWxsb3dNdWx0aXBsZSQ7XG4gIHJlYWRvbmx5IG11bHRpcGxlU2lnbmFsID0gdG9TaWduYWwodGhpcy5tdWx0aXBsZSQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG4gIHJlYWRvbmx5IG9wdGlvbnMkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuZmlsdGVyZWRPcHRpb25zJDtcbiAgcmVhZG9ubHkgcmF3T3B0aW9ucyQgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5vcHRpb25zJDtcblxuICBAQ29udGVudENoaWxkKENPTUJPQk9YX09QVElPTl9URU1QTEFURV9UT0tFTiwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBzZXQgb3B0aW9uVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvblRlbXBsYXRlJC5uZXh0KHZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWZXaXRoT3B0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9TRUxFQ1RFRF9PUFRJT05fVEVNUExBVEVfVE9LRU4sIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgc2V0IHNlbGVjdGVkT3B0aW9uVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uVGVtcGxhdGUkLm5leHQodmFsdWUgPz8gbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IG51bGw+KG51bGwpO1xuXG4gIEBDb250ZW50Q2hpbGQoQ09NQk9CT1hfQk9EWV9MT0FESU5HX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5TG9hZGluZ1RlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2JvZHlMb2FkaW5nVGVtcGxhdGUkLm5leHQodmFsdWUgPz8gbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfYm9keUxvYWRpbmdUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5RXJyb3JUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWZXaXRoRXJyb3IgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RXJyb3JUZW1wbGF0ZSQubmV4dCh2YWx1ZSA/PyBudWxsKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9ib2R5RXJyb3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmV2l0aEVycm9yIHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5RW1wdHlUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlUZW1wbGF0ZSQubmV4dCh2YWx1ZSA/PyBudWxsKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9ib2R5RW1wdHlUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX01PUkVfSVRFTVNfSElOVF9URU1QTEFURV9UT0tFTiwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBzZXQgYm9keU1vcmVJdGVtc0hpbnRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludFRlbXBsYXRlJC5uZXh0KHZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IGhvc3RDbGFzc0JpbmRpbmdzID0gc2lnbmFsSG9zdENsYXNzZXMoe1xuICAgICdldC1jb21ib2JveC0tbG9hZGluZyc6IHRvU2lnbmFsKHRoaXMuX2xvYWRpbmckKSxcbiAgICAnZXQtY29tYm9ib3gtLWVycm9yJzogdG9TaWduYWwodGhpcy5fZXJyb3IkLnBpcGUobWFwKCh2KSA9PiAhIXYpKSksXG4gICAgJ2V0LWNvbWJvYm94LS1vcGVuJzogdG9TaWduYWwodGhpcy5pc09wZW4kKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMubXVsdGlwbGUkKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1vcGVuJzogdGhpcy5pc09wZW4sXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZpZWxkSG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxDbGFzc2VzKHRoaXMuX3NlbGVjdEZpZWxkLmVsZW1lbnRSZWYsIHtcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1vcGVuJzogdG9TaWduYWwodGhpcy5pc09wZW4kKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMubXVsdGlwbGUkKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfY29tYm9ib3hCb2R5Q29tcG9uZW50OiBDb21wb25lbnRUeXBlPEFic3RyYWN0Q29tYm9ib3hCb2R5PiB8IG51bGwgPSBudWxsO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBDb21wdXRlc1xuXG4gIHJlYWRvbmx5IGN1c3RvbU9wdGlvblRwbCQgPSB0aGlzLl9vcHRpb25UZW1wbGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbU9wdGlvbkNvbXBvbmVudCQgPSB0aGlzLl9vcHRpb25Db21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21TZWxlY3RlZE9wdGlvblRwbCQgPSB0aGlzLl9zZWxlY3RlZE9wdGlvblRlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tU2VsZWN0ZWRPcHRpb25Db21wb25lbnQkID0gdGhpcy5fc2VsZWN0ZWRPcHRpb25Db21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5TG9hZGluZ1RwbCQgPSB0aGlzLl9ib2R5TG9hZGluZ1RlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnQkID0gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JUcGwkID0gdGhpcy5fYm9keUVycm9yVGVtcGxhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JDb21wb25lbnQkID0gdGhpcy5fYm9keUVycm9yQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5VHBsJCA9IHRoaXMuX2JvZHlFbXB0eVRlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50JCA9IHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbUJvZHlNb3JlSXRlbXNIaW50VHBsJCA9IHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQgPSB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgY3VzdG9tT3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX29wdGlvbkNvbXBvbmVudElucHV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbVNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkID0gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JDb21wb25lbnRJbnB1dHMkID0gdGhpcy5fYm9keUVycm9yQ29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudElucHV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbUJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2V0RGlzYWJsZWRCaW5kaW5nKCdkaXNhYmxlZCcpO1xuXG4gICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0aW9uTW9kZWwodGhpcy5fc2VsZWN0aW9uTW9kZWwpO1xuXG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnBsYWNlbWVudCA9ICdib3R0b20nO1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5mYWxsYmFja1BsYWNlbWVudHMgPSBbJ2JvdHRvbScsICd0b3AnXTtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYXV0b1Jlc2l6ZSA9IHRydWU7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGFsbG93TXVsdGlwbGUpID0+IHtcbiAgICAgICAgICBpZiAoYWxsb3dNdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmlsdGVyKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5faW5wdXQuX3NldEVtcHR5SGVscGVyKHRoaXMuX2N1cnJlbnRGaWx0ZXIkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luaXREaXNwYXRjaEZpbHRlckNoYW5nZXMoKTtcbiAgICB0aGlzLl9jbG9zZUJvZHlPbkRpc2FibGUoKTtcblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZUNvbWJvYm94Q29uZmlnKCk7XG4gICAgICB0aGlzLl9kZWJ1Z1ZhbGlkYXRlT3B0aW9uQW5kSW5pdGlhbFZhbHVlU2NoZW1hKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0aW9uRnJvbVZhbHVlJCh0aGlzLl9pbnB1dC52YWx1ZSk7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC52YWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9zZXRGaWx0ZXJGcm9tSW5wdXRWYWx1ZSgpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2lucHV0Lm9uRXh0ZXJuYWxVcGRhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFNlbGVjdGlvbkZyb21WYWx1ZSQodGhpcy5faW5wdXQudmFsdWUpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIHNldEJvZHlDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEFic3RyYWN0Q29tYm9ib3hCb2R5Pikge1xuICAgIHRoaXMuX2NvbWJvYm94Qm9keUNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIGdldE9wdGlvbkxhYmVsKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRMYWJlbCQob3B0aW9uKTtcbiAgfVxuXG4gIGdldE9wdGlvblZhbHVlKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRWYWx1ZSQob3B0aW9uKTtcbiAgfVxuXG4gIGNvbWJpbmVTZWxlY3RlZE9wdGlvbldpdGhDb21wb25lbnRJbnB1dHMob3B0aW9uOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tU2VsZWN0ZWRPcHRpb25Db21wb25lbnRJbnB1dHMkLnBpcGUoXG4gICAgICBtYXAoKGlucHV0cykgPT4gKHsgb3B0aW9uLCAuLi5pbnB1dHMgfSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwucmVtb3ZlU2VsZWN0ZWRPcHRpb24ob3B0aW9uKTtcblxuICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIGFzc2V0Q29tYm9ib3hCb2R5Q29tcG9uZW50U2V0KHRoaXMuX2NvbWJvYm94Qm9keUNvbXBvbmVudCk7XG5cbiAgICBpZiAodGhpcy5faXNPcGVuIHx8IHRoaXMuX2lucHV0LmRpc2FibGVkIHx8IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50aW5nKSByZXR1cm47XG5cbiAgICBjb25zdCBib2R5UmVmID0gdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm1vdW50KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcy5fY29tYm9ib3hCb2R5Q29tcG9uZW50LFxuICAgICAgbWlycm9yV2lkdGg6IHRydWUsXG4gICAgICB0aGVtZVByb3ZpZGVyOiB0aGlzLl90aGVtZVByb3ZpZGVyLFxuICAgIH0pO1xuXG4gICAgaWYgKCFib2R5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbGVjdEJvZHlJZCQubmV4dChib2R5UmVmLmlkKTtcblxuICAgIGJvZHlSZWYuX29wdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3QpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICBxdWVyeUxpc3Q/LmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHF1ZXJ5TGlzdCksXG4gICAgICAgICAgICAgIG1hcCgobCkgPT4gbC50b0FycmF5KCkpLFxuICAgICAgICAgICAgKSA/PyBvZihbXSBhcyBBYnN0cmFjdENvbWJvYm94T3B0aW9uW10pLFxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuYWN0aXZlT3B0aW9uJCxcbiAgICAgICAgICBdKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKChbb3B0aW9ucywgYWN0aXZlT3B0aW9uRGF0YV0pID0+IHtcbiAgICAgICAgICBjb25zdCBvcHRpb25SZWYgPSBvcHRpb25zLmZpbmQoKG8pID0+IG8uX29wdGlvbiQudmFsdWUgPT09IGFjdGl2ZU9wdGlvbkRhdGEpO1xuXG4gICAgICAgICAgaWYgKCFvcHRpb25SZWY/Ll9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cbiAgICAgICAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgYmVoYXZpb3I6ICdpbnN0YW50JyxcbiAgICAgICAgICAgIGVsZW1lbnQ6IG9wdGlvblJlZi5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgY29udGFpbmVyOiBib2R5UmVmLl9jb250YWluZXJFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5hY3RpdmVPcHRpb25JZCQubmV4dChvcHRpb25SZWYuaWQpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5hZnRlckNsb3NlZCgpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0Qm9keUlkJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uSWQkLm5leHQobnVsbCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLl9pc09wZW4gfHwgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzVW5tb3VudGluZykgcmV0dXJuO1xuXG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHNlbGVjdElucHV0QW5kT3BlbigpIHtcbiAgICBpZiAodGhpcy5faW5wdXQuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlRnJvbU9wdGlvbihvcHRpb246IHVua25vd24pIHtcbiAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFsbG93TXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnRvZ2dsZVNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFkZFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB0aGlzLl9zZXRGaWx0ZXJGcm9tSW5wdXRWYWx1ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVGaWx0ZXIoJycpO1xuICAgIH1cbiAgfVxuXG4gIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQkKG9wdGlvbik7XG4gIH1cblxuICBpc09wdGlvbkFjdGl2ZShvcHRpb246IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuaXNPcHRpb25BY3RpdmUkKG9wdGlvbik7XG4gIH1cblxuICBpc09wdGlvbkRpc2FibGVkKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0Rpc2FibGVkJChvcHRpb24pO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbktleUZuOiBUcmFja0J5RnVuY3Rpb248dW5rbm93bj4gPSAoaW5kZXgsIGl0ZW0pID0+IHRoaXMuX3NlbGVjdGlvbk1vZGVsLmdldEtleShpdGVtKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICBfaWdub3JlTmV4dEJsdXJFdmVudCgpIHtcbiAgICB0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIF9wcm9jZXNzS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgaXNPcGVuID0gdGhpcy5faXNPcGVuO1xuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlO1xuICAgIGNvbnN0IGNhbkFkZEN1c3RvbVZhbHVlID0gdGhpcy5hbGxvd0N1c3RvbVZhbHVlcztcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc3QgaGFzRmlsdGVyVmFsdWUgPSAhIXZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbjtcbiAgICBjb25zdCBpc0JhY2tzcGFjZVByZXNzZWQgPSB0aGlzLl9iYWNrc3BhY2VLZXlQcmVzc01hbmFnZXIuaXNQcmVzc2VkKGV2ZW50KTtcblxuICAgIGNvbnN0IHJlc3VsdDogQ29tYm9ib3hLZXlIYW5kbGVyUmVzdWx0ID0ge307XG5cbiAgICBpZiAoa2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgLy8gVGhlIHVzZXIgdHlwZWQgYSBjdXN0b20gdmFsdWUgYW5kIHByZXNzZWQgZW50ZXIuIEFkZCBpdCB0byB0aGUgc2VsZWN0ZWQgb3B0aW9ucy5cbiAgICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgaXQgaXMgaW1wb3NzaWJsZSB0byBzZWxlY3QgdGhlIGFjdGl2ZSBvcHRpb24gd2l0aCB0aGUga2V5Ym9hcmQgaWYgY2FuQWRkQ3VzdG9tVmFsdWUgaXMgdHJ1ZS5cbiAgICAgIC8vIFRvIGZpeCB0aGlzLCB0aGUgYWN0aXZlIG9wdGlvbiBzaG91bGQgYWxzbyBpbmNsdWRlIHRoZSBvcmlnaW4gaXQgZ290IGFjdGl2ZSBmcm9tIChrZXlib2FyZCBvciBwcm9ncmFtbWF0aWMpLlxuICAgICAgLy8gVGhlIFwidmFsdWVcIiBjaGFuZ2luZyBzaG91bGQgcHV0IHRoZSBjb21ib2JveCBpbnRvIGEgXCJ1c2UgdGhlIGN1c3RvbSBpbnB1dCBvbiBlbnRlclwiIG1vZGUuXG4gICAgICAvLyBUaGUgXCJhY3RpdmUgb3B0aW9uXCIgY2hhbmdpbmcgdmlhIGtleWJvYXJkIHNob3VsZCBwdXQgdGhlIGNvbWJvYm94IGludG8gYSBcInVzZSB0aGUgYWN0aXZlIG9wdGlvbiBvbiBlbnRlclwiIG1vZGUuXG4gICAgICBpZiAoY2FuQWRkQ3VzdG9tVmFsdWUgJiYgaGFzRmlsdGVyVmFsdWUpIHtcbiAgICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9IHsgdHlwZTogJ2FkZCcsIG9wdGlvbjogdmFsdWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGVsLmFjdGl2ZU9wdGlvbjtcblxuICAgICAgICBpZiAoYWN0aXZlT3B0aW9uKSB7XG4gICAgICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5vcHRpb25BY3Rpb24gPSB7IHR5cGU6ICd0b2dnbGUnLCBvcHRpb246IGFjdGl2ZU9wdGlvbiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQub3B0aW9uQWN0aW9uID0geyB0eXBlOiAnYWRkJywgb3B0aW9uOiBhY3RpdmVPcHRpb24gfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgcmVzdWx0LnNldEZpbHRlciA9ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnY2xvc2UnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnY2xvc2UnO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzTXVsdGlwbGUpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEZpbHRlcikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHQuc2V0RmlsdGVyID0gJyc7XG4gICAgICAgIHJlc3VsdC5vcHRpb25BY3Rpb24gPSAnY2xlYXInO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID09PSBUQUIpIHtcbiAgICAgIHJlc3VsdC5vdmVybGF5T3BlcmF0aW9uID0gJ2Nsb3NlJztcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcnByZXRLZXlIYW5kbGVyUmVzdWx0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgaWYgKGtleUNvZGUgPT09IEJBQ0tTUEFDRSkge1xuICAgICAgaWYgKGlzQmFja3NwYWNlUHJlc3NlZCAmJiB2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFoYXNGaWx0ZXJWYWx1ZSAmJiBpc011bHRpcGxlICYmIHNlbGVjdGlvbi5sZW5ndGggJiYgIXRoaXMuX2RlbGV0ZWRTZWFyY2hXaXRoS2V5UHJlc3MpIHtcbiAgICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9IHsgdHlwZTogJ3JlbW92ZScsIG9wdGlvbjogc2VsZWN0aW9uW3NlbGVjdGlvbi5sZW5ndGggLSAxXSB9O1xuICAgICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQmFja3NwYWNlUHJlc3NlZCkge1xuICAgICAgICB0aGlzLl9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RlbGV0ZWRTZWFyY2hXaXRoS2V5UHJlc3MgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnb3Blbic7XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuZXZhbHVhdGVLZXlib2FyZEV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChrZXlDb2RlID09PSBBICYmIGV2ZW50LmN0cmxLZXkgJiYgaXNNdWx0aXBsZSkge1xuICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9ICd0b2dnbGVBbGwnO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICB9XG5cbiAgX3Byb2Nlc3NLZXl1cEV2ZW50KCkge1xuICAgIHRoaXMuX2JhY2tzcGFjZUtleVByZXNzTWFuYWdlci5jbGVhcigpO1xuICB9XG5cbiAgX3Byb2Nlc3NJbnB1dEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIHRoaXMuX3VwZGF0ZUZpbHRlcih2YWx1ZSk7XG4gIH1cblxuICBfaGFuZGxlQmx1ckV2ZW50KCkge1xuICAgIGlmICh0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50KSB7XG4gICAgICB0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFsbG93TXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlcignJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlciA9PT0gJycpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyU2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0RmlsdGVyRnJvbUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICBwcml2YXRlIF9pbml0RGlzcGF0Y2hGaWx0ZXJDaGFuZ2VzKCkge1xuICAgIHRoaXMuX2N1cnJlbnRGaWx0ZXIkXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKCgpID0+IHRoaXMuZmlsdGVySW50ZXJuYWwpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCh2KSA9PiB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHYpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmICYmIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIgPT09IHZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLl9jdXJyZW50RmlsdGVyJC5uZXh0KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmZpbHRlckludGVybmFsKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRGaWx0ZXIodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldEZpbHRlckZyb21JbnB1dFZhbHVlKCkge1xuICAgIGlmICh0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlKSByZXR1cm47XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5fdXBkYXRlRmlsdGVyKCcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgIGlmICghb3B0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBsYWJlbCA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLmdldExhYmVsKG9wdGlvbik7XG5cbiAgICBpZiAodHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuXG4gICAgdGhpcy5fdXBkYXRlRmlsdGVyKGxhYmVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ludGVycHJldEtleUhhbmRsZXJSZXN1bHQocmVzdWx0OiBDb21ib2JveEtleUhhbmRsZXJSZXN1bHQpIHtcbiAgICBpZiAocmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPT09ICdjbG9zZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5vdmVybGF5T3BlcmF0aW9uID09PSAnb3BlbicpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuc2V0RmlsdGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlcihyZXN1bHQuc2V0RmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbikge1xuICAgICAgaWYgKHR5cGVvZiByZXN1bHQub3B0aW9uQWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbiA9PT0gJ2NsZWFyJykge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyU2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbiA9PT0gJ3RvZ2dsZUFsbCcpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC50b2dnbGVBbGxTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBvcHRpb24gfSA9IHJlc3VsdC5vcHRpb25BY3Rpb247XG5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRGlzYWJsZWQob3B0aW9uKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnYWRkJykge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFkZFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5yZW1vdmVTZWxlY3RlZE9wdGlvbihvcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICd0b2dnbGUnKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwudG9nZ2xlU2VsZWN0ZWRPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlQm9keU9uRGlzYWJsZSgpIHtcbiAgICB0aGlzLl9pbnB1dC5kaXNhYmxlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGRpc2FibGVkKSA9PiB7XG4gICAgICAgICAgaWYgKCFkaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBEZXYgbW9kZVxuXG4gIHByaXZhdGUgX2RlYnVnVmFsaWRhdGVDb21ib2JveENvbmZpZyhpc1JldHJ5ID0gZmFsc2UpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9zZWxlY3Rpb25Nb2RlbC5sYWJlbEJpbmRpbmckLCB0aGlzLl9zZWxlY3Rpb25Nb2RlbC52YWx1ZUJpbmRpbmckLCB0aGlzLl9hbGxvd0N1c3RvbVZhbHVlcyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXAoaXNSZXRyeSA/IDEgOiAwKSwgLy8gU2tpcCBpZiByZXRyeWluZyB0byBhdm9pZCBpbmZpbml0ZSBsb29wXG4gICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChbYmluZExhYmVsLCBiaW5kVmFsdWUsIGFsbG93Q3VzdG9tVmFsdWVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNob3VsZEJlT2JqZWN0cyA9IGJpbmRMYWJlbCAmJiBiaW5kVmFsdWUgJiYgIWFsbG93Q3VzdG9tVmFsdWVzO1xuXG4gICAgICAgICAgaWYgKHNob3VsZEJlT2JqZWN0cykge1xuICAgICAgICAgICAgcmV0dXJuIENvbWJvYm94T3B0aW9uVHlwZS5PYmplY3Q7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIENvbWJvYm94T3B0aW9uVHlwZS5QcmltaXRpdmU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKGV4cGVjdGVkT3B0aW9uVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5vcHRpb25zO1xuXG4gICAgICAgICAgaWYgKGlzRW1wdHlBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChleHBlY3RlZE9wdGlvblR5cGUgPT09IENvbWJvYm94T3B0aW9uVHlwZS5PYmplY3QpIHtcbiAgICAgICAgICAgIGlmICghaXNPYmplY3RBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgICB0aHJvdyBjb21ib2JveEVycm9yKCdvcHRpb25zX29iamVjdF9taXNtYXRjaCcsIHRydWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZXhwZWN0ZWRPcHRpb25UeXBlID09PSBDb21ib2JveE9wdGlvblR5cGUuUHJpbWl0aXZlKSB7XG4gICAgICAgICAgICBpZiAoIWlzUHJpbWl0aXZlQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgdGhyb3cgY29tYm9ib3hFcnJvcignb3B0aW9uc19wcmltaXRpdmVfbWlzbWF0Y2gnLCB0cnVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZUNvbWJvYm94Q29uZmlnKHRydWUpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlYnVnVmFsaWRhdGVPcHRpb25BbmRJbml0aWFsVmFsdWVTY2hlbWEoaXNSZXRyeSA9IGZhbHNlKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5vcHRpb25zJCwgdGhpcy5faW5pdGlhbFZhbHVlJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcChpc1JldHJ5ID8gMSA6IDApLCAvLyBTa2lwIGlmIHJldHJ5aW5nIHRvIGF2b2lkIGluZmluaXRlIGxvb3BcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKChbb3B0aW9ucywgaW5pdGlhbFZhbHVlXSkgPT4ge1xuICAgICAgICAgIGlmIChpbml0aWFsVmFsdWUgPT09IG51bGwgfHwgaW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaXNQcmltaXRpdmUgPSBpc1ByaW1pdGl2ZUFycmF5KG9wdGlvbnMpO1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZUlzUHJpbWl0aXZlID0gdGhpcy5tdWx0aXBsZVxuICAgICAgICAgICAgPyBpc1ByaW1pdGl2ZUFycmF5KGluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgIDogdHlwZW9mIGluaXRpYWxWYWx1ZSAhPT0gJ29iamVjdCc7XG5cbiAgICAgICAgICBpZiAoaXNQcmltaXRpdmUpIHtcbiAgICAgICAgICAgIGlmICghaW5pdGlhbFZhbHVlSXNQcmltaXRpdmUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgY29tYm9ib3hFcnJvcignaW5pdF92YWxfcHJpbWl0aXZlX21pc21hdGNoJywgdHJ1ZSwgeyBpbml0aWFsVmFsdWUsIG9wdGlvbnMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpbml0aWFsVmFsdWVJc1ByaW1pdGl2ZSkge1xuICAgICAgICAgICAgICB0aHJvdyBjb21ib2JveEVycm9yKCdpbml0X3ZhbF9vYmplY3RfbWlzbWF0Y2gnLCB0cnVlLCB7IGluaXRpYWxWYWx1ZSwgb3B0aW9ucyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZU9wdGlvbkFuZEluaXRpYWxWYWx1ZVNjaGVtYSh0cnVlKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
760
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvZGlyZWN0aXZlcy9jb21ib2JveC9jb21ib2JveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBQ1osY0FBYyxFQUNkLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUVYLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsY0FBYyxFQUdkLGFBQWEsRUFDYixZQUFZLEVBQ1osYUFBYSxFQUNiLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILEVBQUUsRUFDRixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFP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QUUsV0FBVyxFQUFFO2dCQU9uRSxpQkFBaUI7c0JBRHBCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQU9uRSx5QkFBeUI7c0JBRDVCLFlBQVk7dUJBQUMsNENBQTRDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQSwgQkFDS1NQQUNFLCBFTlRFUiwgRVNDQVBFLCBUQUIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBBY3RpdmVTZWxlY3Rpb25Nb2RlbCxcbiAgQW5pbWF0ZWRPdmVybGF5Q29tcG9uZW50QmFzZSxcbiAgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLFxuICBLZXlQcmVzc01hbmFnZXIsXG4gIFNlbGVjdGlvbk1vZGVsLFxuICBTZWxlY3Rpb25Nb2RlbEJpbmRpbmcsXG4gIFR5cGVkUXVlcnlMaXN0LFxuICBjcmVhdGVEZXN0cm95LFxuICBpc0VtcHR5QXJyYXksXG4gIGlzT2JqZWN0QXJyYXksXG4gIGlzUHJpbWl0aXZlQXJyYXksXG4gIHNjcm9sbFRvRWxlbWVudCxcbiAgc2lnbmFsQ2xhc3NlcyxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBvZixcbiAgc2tpcCxcbiAgc2tpcFdoaWxlLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHRocm93RXJyb3IsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSU5QVVRfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNFTEVDVF9GSUVMRF9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ09NQk9CT1hfQ09ORklHX1RPS0VOLCBDT01CT0JPWF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBDb21ib2JveEtleUhhbmRsZXJSZXN1bHQsXG4gIENvbWJvYm94T3B0aW9uVHlwZSxcbiAgQ29tcG9uZW50V2l0aEVycm9yLFxuICBDb21wb25lbnRXaXRoT3B0aW9uLFxuICBUZW1wbGF0ZVJlZldpdGhFcnJvcixcbiAgVGVtcGxhdGVSZWZXaXRoT3B0aW9uLFxuICBhc3NldENvbWJvYm94Qm9keUNvbXBvbmVudFNldCxcbiAgY29tYm9ib3hFcnJvcixcbn0gZnJvbSAnLi4vLi4vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtYm9keS1lbXB0eS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtYm9keS1lcnJvci10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9CT0RZX0xPQURJTkdfVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1ib2R5LWxvYWRpbmctdGVtcGxhdGUnO1xuaW1wb3J0IHsgQ09NQk9CT1hfQk9EWV9NT1JFX0lURU1TX0hJTlRfVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1ib2R5LW1vcmUtaXRlbXMtaGludC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9PUFRJT05fVEVNUExBVEVfVE9LRU4gfSBmcm9tICcuLi9jb21ib2JveC1vcHRpb24tdGVtcGxhdGUnO1xuaW1wb3J0IHsgQ09NQk9CT1hfU0VMRUNURURfT1BUSU9OX1RFTVBMQVRFX1RPS0VOIH0gZnJvbSAnLi4vY29tYm9ib3gtc2VsZWN0ZWQtb3B0aW9uLXRlbXBsYXRlJztcblxuZXhwb3J0IGNvbnN0IENPTUJPQk9YX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94RGlyZWN0aXZlPignRVRfQ09NQk9CT1hfSU5QVVRfVE9LRU4nKTtcblxuZXhwb3J0IHR5cGUgQWJzdHJhY3RDb21ib2JveEJvZHkgPSBBbmltYXRlZE92ZXJsYXlDb21wb25lbnRCYXNlICYge1xuICBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxUeXBlZFF1ZXJ5TGlzdDxBYnN0cmFjdENvbWJvYm94T3B0aW9uPiB8IG51bGw+O1xuICBfY29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBYnN0cmFjdENvbWJvYm94T3B0aW9uID0ge1xuICBfb3B0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHVua25vd24+O1xuICBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyNyZWdpb24gSW5qZWN0c1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICByZWFkb25seSBfaW5wdXQgPSBpbmplY3QoSU5QVVRfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RGaWVsZCA9IGluamVjdChTRUxFQ1RfRklFTERfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPEFic3RyYWN0Q29tYm9ib3hCb2R5Pj4oQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tYm9ib3hDb25maWcgPSBpbmplY3QoQ09NQk9CT1hfQ09ORklHX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vI3JlZ2lvbiBJbnB1dHNcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuZ2V0RmlsdGVyZWRPcHRpb25zKCk7XG4gIH1cbiAgc2V0IG9wdGlvbnModmFsdWU6IHVua25vd25bXSkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldE9wdGlvbnModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGluaXRpYWxWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFNlbGVjdGlvbih2YWx1ZSk7XG4gICAgdGhpcy5faW5pdGlhbFZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9pbml0aWFsVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx1bmtub3duPihudWxsKTtcblxuICBASW5wdXQoKVxuICBnZXQgZmlsdGVySW50ZXJuYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckludGVybmFsJC52YWx1ZTtcbiAgfVxuICBzZXQgZmlsdGVySW50ZXJuYWwodmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCB2YWwgPSBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcbiAgICB0aGlzLl9maWx0ZXJJbnRlcm5hbCQubmV4dCh2YWwpO1xuXG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEZpbHRlcignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9maWx0ZXJJbnRlcm5hbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoKVxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQudmFsdWU7XG4gIH1cbiAgc2V0IGxvYWRpbmcodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuICBwcml2YXRlIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3IkLnZhbHVlO1xuICB9XG4gIHNldCBlcnJvcih2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2Vycm9yJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHVua25vd24+KG51bGwpO1xuICByZWFkb25seSBlcnJvciQgPSB0aGlzLl9lcnJvciQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgYm9keUVtcHR5VGV4dGAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY1LlxuICAgKi9cbiAgQElucHV0KClcbiAgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGJvZHlFbXB0eVRleHQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYm9keU1vcmVJdGVtc0hpbnRUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyBiZSByZW1vdmVkIGluIHY1LlxuICAgKi9cbiAgZ2V0IF90ZW1wRW1wdHlUZXh0KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVtcHR5VGV4dCA/P1xuICAgICAgdGhpcy5ib2R5RW1wdHlUZXh0ID8/XG4gICAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keUVtcHR5VGV4dCA/P1xuICAgICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmVtcHR5VGV4dCA/P1xuICAgICAgQ09NQk9CT1hfREVGQVVMVF9DT05GSUcuYm9keUVtcHR5VGV4dFxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyJC52YWx1ZTtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBASW5wdXQoKVxuICBzZXQgbXVsdGlwbGUodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRBbGxvd011bHRpcGxlKGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBiaW5kTGFiZWwodmFsdWU6IFNlbGVjdGlvbk1vZGVsQmluZGluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRMYWJlbEJpbmRpbmcodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJpbmRWYWx1ZSh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFZhbHVlQmluZGluZyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYmluZEtleSh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldEtleUJpbmRpbmcodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJpbmREaXNhYmxlZCh2YWx1ZTogU2VsZWN0aW9uTW9kZWxCaW5kaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldERpc2FibGVkQmluZGluZyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYWxsb3dDdXN0b21WYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q3VzdG9tVmFsdWVzJC52YWx1ZTtcbiAgfVxuICBzZXQgYWxsb3dDdXN0b21WYWx1ZXModmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9hbGxvd0N1c3RvbVZhbHVlcyQubmV4dChib29sZWFuQXR0cmlidXRlKHZhbHVlKSk7XG4gIH1cbiAgcHJpdmF0ZSBfYWxsb3dDdXN0b21WYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGdldCBzaG93Qm9keU1vcmVJdGVtc0hpbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dCb2R5TW9yZUl0ZW1zSGludCQudmFsdWU7XG4gIH1cbiAgc2V0IHNob3dCb2R5TW9yZUl0ZW1zSGludCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dCb2R5TW9yZUl0ZW1zSGludCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfc2hvd0JvZHlNb3JlSXRlbXNIaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBvcHRpb25Db21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbkNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IG9wdGlvbkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBvbmVudFdpdGhPcHRpb24gfCBudWxsKSB7XG4gICAgdGhpcy5fb3B0aW9uQ29tcG9uZW50JC5uZXh0KGNvbXBvbmVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uQ29tcG9uZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50V2l0aE9wdGlvbiB8IG51bGw+KFxuICAgIHRoaXMuX2NvbWJvYm94Q29uZmlnPy5vcHRpb25Db21wb25lbnQgPz8gbnVsbCxcbiAgKTtcblxuICBASW5wdXQoKVxuICBnZXQgb3B0aW9uQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25Db21wb25lbnRJbnB1dHMkLnZhbHVlO1xuICB9XG4gIHNldCBvcHRpb25Db21wb25lbnRJbnB1dHModmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbkNvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfb3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHt9KTtcblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRPcHRpb25Db21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50JC52YWx1ZTtcbiAgfVxuICBzZXQgc2VsZWN0ZWRPcHRpb25Db21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRXaXRoT3B0aW9uIHwgbnVsbCkge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50JC5uZXh0KGNvbXBvbmVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRPcHRpb25Db21wb25lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRXaXRoT3B0aW9uIHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LnNlbGVjdGVkT3B0aW9uQ29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbkNvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbkNvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRPcHRpb25Db21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RXJyb3JDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFcnJvckNvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50V2l0aEVycm9yIHwgbnVsbCkge1xuICAgIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUVycm9yQ29tcG9uZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50V2l0aEVycm9yIHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmJvZHlFcnJvckNvbXBvbmVudCA/PyBudWxsLFxuICApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RXJyb3JDb21wb25lbnRJbnB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFcnJvckNvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFcnJvckNvbXBvbmVudElucHV0cyh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fYm9keUVycm9yQ29tcG9uZW50SW5wdXRzJC5uZXh0KHZhbHVlID8/IHt9KTtcbiAgfVxuICBwcml2YXRlIF9ib2R5RXJyb3JDb21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5TG9hZGluZ0NvbXBvbmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnQkLnZhbHVlO1xuICB9XG4gIHNldCBib2R5TG9hZGluZ0NvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50VHlwZTx1bmtub3duPiB8IG51bGwpIHtcbiAgICB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUxvYWRpbmdDb21wb25lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRUeXBlPHVua25vd24+IHwgbnVsbD4oXG4gICAgdGhpcy5fY29tYm9ib3hDb25maWc/LmJvZHlMb2FkaW5nQ29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudElucHV0cyQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5TG9hZGluZ0NvbXBvbmVudElucHV0cyQubmV4dCh2YWx1ZSA/PyB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBfYm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBib2R5RW1wdHlDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlFbXB0eUNvbXBvbmVudCh2YWx1ZTogQ29tcG9uZW50VHlwZTx1bmtub3duPiB8IG51bGwpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlDb21wb25lbnQkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2JvZHlFbXB0eUNvbXBvbmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbXBvbmVudFR5cGU8dW5rbm93bj4gfCBudWxsPihcbiAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keUVtcHR5Q29tcG9uZW50ID8/IG51bGwsXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlFbXB0eUNvbXBvbmVudElucHV0cygpIHtcbiAgICByZXR1cm4gdGhpcy5fYm9keUVtcHR5Q29tcG9uZW50SW5wdXRzJC52YWx1ZTtcbiAgfVxuICBzZXQgYm9keUVtcHR5Q29tcG9uZW50SW5wdXRzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlDb21wb25lbnRJbnB1dHMkLm5leHQodmFsdWUgPz8ge30pO1xuICB9XG4gIHByaXZhdGUgX2JvZHlFbXB0eUNvbXBvbmVudElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQudmFsdWU7XG4gIH1cbiAgc2V0IGJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50KHZhbHVlOiBDb21wb25lbnRUeXBlPHVua25vd24+IHwgbnVsbCkge1xuICAgIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50JC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbXBvbmVudFR5cGU8dW5rbm93bj4gfCBudWxsPihcbiAgICB0aGlzLl9jb21ib2JveENvbmZpZz8uYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnQgPz8gbnVsbCxcbiAgKTtcblxuICBASW5wdXQoKVxuICBnZXQgYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC52YWx1ZTtcbiAgfVxuICBzZXQgYm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHModmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC5uZXh0KHZhbHVlID8/IHt9KTtcbiAgfVxuICBwcml2YXRlIF9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIE91dHB1dHNcblxuICBAT3V0cHV0KClcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBNZW1iZXJzXG5cbiAgcHJpdmF0ZSBfc2hvdWxkSWdub3JlTmV4dEJsdXJFdmVudCA9IGZhbHNlO1xuICBwcml2YXRlIF9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgc2VsZWN0Qm9keUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGFjdGl2ZU9wdGlvbklkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgZ2V0IGN1cnJlbnRGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRGaWx0ZXIkLnZhbHVlO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRGaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcml2YXRlIGdldCBfaXNPcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkO1xuICB9XG4gIHJlYWRvbmx5IGlzT3BlbiQgPSB0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkJDtcbiAgcmVhZG9ubHkgaXNPcGVuID0gdG9TaWduYWwodGhpcy5pc09wZW4kKTtcblxuICByZWFkb25seSBfc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWwoKTtcbiAgcmVhZG9ubHkgX2FjdGl2ZVNlbGVjdGlvbk1vZGVsID0gbmV3IEFjdGl2ZVNlbGVjdGlvbk1vZGVsKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JhY2tzcGFjZUtleVByZXNzTWFuYWdlciA9IG5ldyBLZXlQcmVzc01hbmFnZXIoQkFDS1NQQUNFKTtcblxuICByZWFkb25seSBzZWxlY3RlZE9wdGlvbnMkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uJDtcbiAgcmVhZG9ubHkgbXVsdGlwbGUkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuYWxsb3dNdWx0aXBsZSQ7XG4gIHJlYWRvbmx5IG11bHRpcGxlU2lnbmFsID0gdG9TaWduYWwodGhpcy5tdWx0aXBsZSQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG4gIHJlYWRvbmx5IG9wdGlvbnMkID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuZmlsdGVyZWRPcHRpb25zJDtcbiAgcmVhZG9ubHkgcmF3T3B0aW9ucyQgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5vcHRpb25zJDtcblxuICBAQ29udGVudENoaWxkKENPTUJPQk9YX09QVElPTl9URU1QTEFURV9UT0tFTiwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBzZXQgb3B0aW9uVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvblRlbXBsYXRlJC5uZXh0KHZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWZXaXRoT3B0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9TRUxFQ1RFRF9PUFRJT05fVEVNUExBVEVfVE9LRU4sIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgc2V0IHNlbGVjdGVkT3B0aW9uVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uVGVtcGxhdGUkLm5leHQodmFsdWUgPz8gbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmV2l0aE9wdGlvbiB8IG51bGw+KG51bGwpO1xuXG4gIEBDb250ZW50Q2hpbGQoQ09NQk9CT1hfQk9EWV9MT0FESU5HX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5TG9hZGluZ1RlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2JvZHlMb2FkaW5nVGVtcGxhdGUkLm5leHQodmFsdWUgPz8gbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfYm9keUxvYWRpbmdUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5RXJyb3JUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWZXaXRoRXJyb3IgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RXJyb3JUZW1wbGF0ZSQubmV4dCh2YWx1ZSA/PyBudWxsKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9ib2R5RXJyb3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmV2l0aEVycm9yIHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHNldCBib2R5RW1wdHlUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5RW1wdHlUZW1wbGF0ZSQubmV4dCh2YWx1ZSA/PyBudWxsKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9ib2R5RW1wdHlUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZChDT01CT0JPWF9CT0RZX01PUkVfSVRFTVNfSElOVF9URU1QTEFURV9UT0tFTiwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBzZXQgYm9keU1vcmVJdGVtc0hpbnRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludFRlbXBsYXRlJC5uZXh0KHZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IGhvc3RDbGFzc0JpbmRpbmdzID0gc2lnbmFsSG9zdENsYXNzZXMoe1xuICAgICdldC1jb21ib2JveC0tbG9hZGluZyc6IHRvU2lnbmFsKHRoaXMuX2xvYWRpbmckKSxcbiAgICAnZXQtY29tYm9ib3gtLWVycm9yJzogdG9TaWduYWwodGhpcy5fZXJyb3IkLnBpcGUobWFwKCh2KSA9PiAhIXYpKSksXG4gICAgJ2V0LWNvbWJvYm94LS1vcGVuJzogdG9TaWduYWwodGhpcy5pc09wZW4kKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMubXVsdGlwbGUkKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1vcGVuJzogdGhpcy5pc09wZW4sXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZpZWxkSG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxDbGFzc2VzKHRoaXMuX3NlbGVjdEZpZWxkLmVsZW1lbnRSZWYsIHtcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1vcGVuJzogdG9TaWduYWwodGhpcy5pc09wZW4kKSxcbiAgICAnZXQtc2VsZWN0LWZpZWxkLS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMubXVsdGlwbGUkKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfY29tYm9ib3hCb2R5Q29tcG9uZW50OiBDb21wb25lbnRUeXBlPEFic3RyYWN0Q29tYm9ib3hCb2R5PiB8IG51bGwgPSBudWxsO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBDb21wdXRlc1xuXG4gIHJlYWRvbmx5IGN1c3RvbU9wdGlvblRwbCQgPSB0aGlzLl9vcHRpb25UZW1wbGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbU9wdGlvbkNvbXBvbmVudCQgPSB0aGlzLl9vcHRpb25Db21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21TZWxlY3RlZE9wdGlvblRwbCQgPSB0aGlzLl9zZWxlY3RlZE9wdGlvblRlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tU2VsZWN0ZWRPcHRpb25Db21wb25lbnQkID0gdGhpcy5fc2VsZWN0ZWRPcHRpb25Db21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5TG9hZGluZ1RwbCQgPSB0aGlzLl9ib2R5TG9hZGluZ1RlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnQkID0gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JUcGwkID0gdGhpcy5fYm9keUVycm9yVGVtcGxhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JDb21wb25lbnQkID0gdGhpcy5fYm9keUVycm9yQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5VHBsJCA9IHRoaXMuX2JvZHlFbXB0eVRlbXBsYXRlJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50JCA9IHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbUJvZHlNb3JlSXRlbXNIaW50VHBsJCA9IHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQgPSB0aGlzLl9ib2R5TW9yZUl0ZW1zSGludENvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgY3VzdG9tT3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX29wdGlvbkNvbXBvbmVudElucHV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbVNlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX3NlbGVjdGVkT3B0aW9uQ29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkID0gdGhpcy5fYm9keUxvYWRpbmdDb21wb25lbnRJbnB1dHMkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjdXN0b21Cb2R5RXJyb3JDb21wb25lbnRJbnB1dHMkID0gdGhpcy5fYm9keUVycm9yQ29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX2JvZHlFbXB0eUNvbXBvbmVudElucHV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGN1c3RvbUJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJCA9IHRoaXMuX2JvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50SW5wdXRzJC5hc09ic2VydmFibGUoKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2V0RGlzYWJsZWRCaW5kaW5nKCdkaXNhYmxlZCcpO1xuXG4gICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0aW9uTW9kZWwodGhpcy5fc2VsZWN0aW9uTW9kZWwpO1xuXG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnBsYWNlbWVudCA9ICdib3R0b20nO1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5mYWxsYmFja1BsYWNlbWVudHMgPSBbJ2JvdHRvbScsICd0b3AnXTtcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYXV0b1Jlc2l6ZSA9IHRydWU7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGFsbG93TXVsdGlwbGUpID0+IHtcbiAgICAgICAgICBpZiAoYWxsb3dNdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmlsdGVyKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5faW5wdXQuX3NldEVtcHR5SGVscGVyKHRoaXMuX2N1cnJlbnRGaWx0ZXIkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luaXREaXNwYXRjaEZpbHRlckNoYW5nZXMoKTtcbiAgICB0aGlzLl9jbG9zZUJvZHlPbkRpc2FibGUoKTtcblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZUNvbWJvYm94Q29uZmlnKCk7XG4gICAgICB0aGlzLl9kZWJ1Z1ZhbGlkYXRlT3B0aW9uQW5kSW5pdGlhbFZhbHVlU2NoZW1hKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0aW9uRnJvbVZhbHVlJCh0aGlzLl9pbnB1dC52YWx1ZSk7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC52YWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5faW5wdXQuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9zZXRGaWx0ZXJGcm9tSW5wdXRWYWx1ZSgpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2lucHV0Lm9uRXh0ZXJuYWxVcGRhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNldFNlbGVjdGlvbkZyb21WYWx1ZSQodGhpcy5faW5wdXQudmFsdWUpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gIHNldEJvZHlDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEFic3RyYWN0Q29tYm9ib3hCb2R5Pikge1xuICAgIHRoaXMuX2NvbWJvYm94Qm9keUNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIGdldE9wdGlvbkxhYmVsKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRMYWJlbCQob3B0aW9uKTtcbiAgfVxuXG4gIGdldE9wdGlvblZhbHVlKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRWYWx1ZSQob3B0aW9uKTtcbiAgfVxuXG4gIGNvbWJpbmVTZWxlY3RlZE9wdGlvbldpdGhDb21wb25lbnRJbnB1dHMob3B0aW9uOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tU2VsZWN0ZWRPcHRpb25Db21wb25lbnRJbnB1dHMkLnBpcGUoXG4gICAgICBtYXAoKGlucHV0cykgPT4gKHsgb3B0aW9uLCAuLi5pbnB1dHMgfSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwucmVtb3ZlU2VsZWN0ZWRPcHRpb24ob3B0aW9uKTtcblxuICAgIHRoaXMuX2lucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIGFzc2V0Q29tYm9ib3hCb2R5Q29tcG9uZW50U2V0KHRoaXMuX2NvbWJvYm94Qm9keUNvbXBvbmVudCk7XG5cbiAgICBpZiAodGhpcy5faXNPcGVuIHx8IHRoaXMuX2lucHV0LmRpc2FibGVkIHx8IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50aW5nKSByZXR1cm47XG5cbiAgICBjb25zdCBib2R5UmVmID0gdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm1vdW50KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcy5fY29tYm9ib3hCb2R5Q29tcG9uZW50LFxuICAgICAgbWlycm9yV2lkdGg6IHRydWUsXG4gICAgICB0aGVtZVByb3ZpZGVyOiB0aGlzLl90aGVtZVByb3ZpZGVyLFxuICAgIH0pO1xuXG4gICAgaWYgKCFib2R5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbGVjdEJvZHlJZCQubmV4dChib2R5UmVmLmlkKTtcblxuICAgIGJvZHlSZWYuX29wdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3QpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICBxdWVyeUxpc3Q/LmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHF1ZXJ5TGlzdCksXG4gICAgICAgICAgICAgIG1hcCgobCkgPT4gbC50b0FycmF5KCkpLFxuICAgICAgICAgICAgKSA/PyBvZihbXSBhcyBBYnN0cmFjdENvbWJvYm94T3B0aW9uW10pLFxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuYWN0aXZlT3B0aW9uJCxcbiAgICAgICAgICBdKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKChbb3B0aW9ucywgYWN0aXZlT3B0aW9uRGF0YV0pID0+IHtcbiAgICAgICAgICBjb25zdCBvcHRpb25SZWYgPSBvcHRpb25zLmZpbmQoKG8pID0+IG8uX29wdGlvbiQudmFsdWUgPT09IGFjdGl2ZU9wdGlvbkRhdGEpO1xuXG4gICAgICAgICAgaWYgKCFvcHRpb25SZWY/Ll9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cbiAgICAgICAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgYmVoYXZpb3I6ICdpbnN0YW50JyxcbiAgICAgICAgICAgIGVsZW1lbnQ6IG9wdGlvblJlZi5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgY29udGFpbmVyOiBib2R5UmVmLl9jb250YWluZXJFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5hY3RpdmVPcHRpb25JZCQubmV4dChvcHRpb25SZWYuaWQpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5hZnRlckNsb3NlZCgpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0Qm9keUlkJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uSWQkLm5leHQobnVsbCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLl9pc09wZW4gfHwgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzVW5tb3VudGluZykgcmV0dXJuO1xuXG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHNlbGVjdElucHV0QW5kT3BlbigpIHtcbiAgICBpZiAodGhpcy5faW5wdXQuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlRnJvbU9wdGlvbihvcHRpb246IHVua25vd24pIHtcbiAgICB0aGlzLl9pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFsbG93TXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnRvZ2dsZVNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFkZFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB0aGlzLl9zZXRGaWx0ZXJGcm9tSW5wdXRWYWx1ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVGaWx0ZXIoJycpO1xuICAgIH1cbiAgfVxuXG4gIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQkKG9wdGlvbik7XG4gIH1cblxuICBpc09wdGlvbkFjdGl2ZShvcHRpb246IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuaXNPcHRpb25BY3RpdmUkKG9wdGlvbik7XG4gIH1cblxuICBpc09wdGlvbkRpc2FibGVkKG9wdGlvbjogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc0Rpc2FibGVkJChvcHRpb24pO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbktleUZuOiBUcmFja0J5RnVuY3Rpb248dW5rbm93bj4gPSAoaW5kZXgsIGl0ZW0pID0+IHRoaXMuX3NlbGVjdGlvbk1vZGVsLmdldEtleShpdGVtKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICBfaWdub3JlTmV4dEJsdXJFdmVudCgpIHtcbiAgICB0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIF9wcm9jZXNzS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgaXNPcGVuID0gdGhpcy5faXNPcGVuO1xuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlO1xuICAgIGNvbnN0IGNhbkFkZEN1c3RvbVZhbHVlID0gdGhpcy5hbGxvd0N1c3RvbVZhbHVlcztcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc3QgaGFzRmlsdGVyVmFsdWUgPSAhIXZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbjtcbiAgICBjb25zdCBpc0JhY2tzcGFjZVByZXNzZWQgPSB0aGlzLl9iYWNrc3BhY2VLZXlQcmVzc01hbmFnZXIuaXNQcmVzc2VkKGV2ZW50KTtcblxuICAgIGNvbnN0IHJlc3VsdDogQ29tYm9ib3hLZXlIYW5kbGVyUmVzdWx0ID0ge307XG5cbiAgICBpZiAoa2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgLy8gVGhlIHVzZXIgdHlwZWQgYSBjdXN0b20gdmFsdWUgYW5kIHByZXNzZWQgZW50ZXIuIEFkZCBpdCB0byB0aGUgc2VsZWN0ZWQgb3B0aW9ucy5cbiAgICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgaXQgaXMgaW1wb3NzaWJsZSB0byBzZWxlY3QgdGhlIGFjdGl2ZSBvcHRpb24gd2l0aCB0aGUga2V5Ym9hcmQgaWYgY2FuQWRkQ3VzdG9tVmFsdWUgaXMgdHJ1ZS5cbiAgICAgIC8vIFRvIGZpeCB0aGlzLCB0aGUgYWN0aXZlIG9wdGlvbiBzaG91bGQgYWxzbyBpbmNsdWRlIHRoZSBvcmlnaW4gaXQgZ290IGFjdGl2ZSBmcm9tIChrZXlib2FyZCBvciBwcm9ncmFtbWF0aWMpLlxuICAgICAgLy8gVGhlIFwidmFsdWVcIiBjaGFuZ2luZyBzaG91bGQgcHV0IHRoZSBjb21ib2JveCBpbnRvIGEgXCJ1c2UgdGhlIGN1c3RvbSBpbnB1dCBvbiBlbnRlclwiIG1vZGUuXG4gICAgICAvLyBUaGUgXCJhY3RpdmUgb3B0aW9uXCIgY2hhbmdpbmcgdmlhIGtleWJvYXJkIHNob3VsZCBwdXQgdGhlIGNvbWJvYm94IGludG8gYSBcInVzZSB0aGUgYWN0aXZlIG9wdGlvbiBvbiBlbnRlclwiIG1vZGUuXG4gICAgICBpZiAoY2FuQWRkQ3VzdG9tVmFsdWUgJiYgaGFzRmlsdGVyVmFsdWUpIHtcbiAgICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9IHsgdHlwZTogJ2FkZCcsIG9wdGlvbjogdmFsdWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGVsLmFjdGl2ZU9wdGlvbjtcblxuICAgICAgICBpZiAoYWN0aXZlT3B0aW9uKSB7XG4gICAgICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5vcHRpb25BY3Rpb24gPSB7IHR5cGU6ICd0b2dnbGUnLCBvcHRpb246IGFjdGl2ZU9wdGlvbiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQub3B0aW9uQWN0aW9uID0geyB0eXBlOiAnYWRkJywgb3B0aW9uOiBhY3RpdmVPcHRpb24gfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgcmVzdWx0LnNldEZpbHRlciA9ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnY2xvc2UnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnY2xvc2UnO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzTXVsdGlwbGUpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEZpbHRlcikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHQuc2V0RmlsdGVyID0gJyc7XG4gICAgICAgIHJlc3VsdC5vcHRpb25BY3Rpb24gPSAnY2xlYXInO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID09PSBUQUIpIHtcbiAgICAgIHJlc3VsdC5vdmVybGF5T3BlcmF0aW9uID0gJ2Nsb3NlJztcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcnByZXRLZXlIYW5kbGVyUmVzdWx0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgaWYgKGtleUNvZGUgPT09IEJBQ0tTUEFDRSkge1xuICAgICAgaWYgKGlzQmFja3NwYWNlUHJlc3NlZCAmJiB2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFoYXNGaWx0ZXJWYWx1ZSAmJiBpc011bHRpcGxlICYmIHNlbGVjdGlvbi5sZW5ndGggJiYgIXRoaXMuX2RlbGV0ZWRTZWFyY2hXaXRoS2V5UHJlc3MpIHtcbiAgICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9IHsgdHlwZTogJ3JlbW92ZScsIG9wdGlvbjogc2VsZWN0aW9uW3NlbGVjdGlvbi5sZW5ndGggLSAxXSB9O1xuICAgICAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQmFja3NwYWNlUHJlc3NlZCkge1xuICAgICAgICB0aGlzLl9kZWxldGVkU2VhcmNoV2l0aEtleVByZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RlbGV0ZWRTZWFyY2hXaXRoS2V5UHJlc3MgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgcmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPSAnb3Blbic7XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZWwuZXZhbHVhdGVLZXlib2FyZEV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChrZXlDb2RlID09PSBBICYmIGV2ZW50LmN0cmxLZXkgJiYgaXNNdWx0aXBsZSkge1xuICAgICAgcmVzdWx0Lm9wdGlvbkFjdGlvbiA9ICd0b2dnbGVBbGwnO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5faW50ZXJwcmV0S2V5SGFuZGxlclJlc3VsdChyZXN1bHQpO1xuICB9XG5cbiAgX3Byb2Nlc3NLZXl1cEV2ZW50KCkge1xuICAgIHRoaXMuX2JhY2tzcGFjZUtleVByZXNzTWFuYWdlci5jbGVhcigpO1xuICB9XG5cbiAgX3Byb2Nlc3NJbnB1dEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIHRoaXMuX3VwZGF0ZUZpbHRlcih2YWx1ZSk7XG4gIH1cblxuICBfaGFuZGxlQmx1ckV2ZW50KCkge1xuICAgIGlmICh0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50KSB7XG4gICAgICB0aGlzLl9zaG91bGRJZ25vcmVOZXh0Qmx1ckV2ZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFsbG93TXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlcignJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlciA9PT0gJycpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyU2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0RmlsdGVyRnJvbUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICBwcml2YXRlIF9pbml0RGlzcGF0Y2hGaWx0ZXJDaGFuZ2VzKCkge1xuICAgIHRoaXMuX2N1cnJlbnRGaWx0ZXIkXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKCgpID0+IHRoaXMuZmlsdGVySW50ZXJuYWwpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCh2KSA9PiB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHYpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmICYmIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIgPT09IHZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLl9jdXJyZW50RmlsdGVyJC5uZXh0KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmZpbHRlckludGVybmFsKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZXRGaWx0ZXIodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldEZpbHRlckZyb21JbnB1dFZhbHVlKCkge1xuICAgIGlmICh0aGlzLl9zZWxlY3Rpb25Nb2RlbC5hbGxvd011bHRpcGxlKSByZXR1cm47XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5fdXBkYXRlRmlsdGVyKCcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5nZXRPcHRpb25CeVZhbHVlKHZhbHVlKTtcblxuICAgIGlmICghb3B0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBsYWJlbCA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLmdldExhYmVsKG9wdGlvbik7XG5cbiAgICBpZiAodHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuXG4gICAgdGhpcy5fdXBkYXRlRmlsdGVyKGxhYmVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ludGVycHJldEtleUhhbmRsZXJSZXN1bHQocmVzdWx0OiBDb21ib2JveEtleUhhbmRsZXJSZXN1bHQpIHtcbiAgICBpZiAocmVzdWx0Lm92ZXJsYXlPcGVyYXRpb24gPT09ICdjbG9zZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5vdmVybGF5T3BlcmF0aW9uID09PSAnb3BlbicpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuc2V0RmlsdGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlcihyZXN1bHQuc2V0RmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbikge1xuICAgICAgaWYgKHR5cGVvZiByZXN1bHQub3B0aW9uQWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbiA9PT0gJ2NsZWFyJykge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyU2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lm9wdGlvbkFjdGlvbiA9PT0gJ3RvZ2dsZUFsbCcpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC50b2dnbGVBbGxTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBvcHRpb24gfSA9IHJlc3VsdC5vcHRpb25BY3Rpb247XG5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRGlzYWJsZWQob3B0aW9uKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnYWRkJykge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmFkZFNlbGVjdGVkT3B0aW9uKG9wdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5yZW1vdmVTZWxlY3RlZE9wdGlvbihvcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICd0b2dnbGUnKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwudG9nZ2xlU2VsZWN0ZWRPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlQm9keU9uRGlzYWJsZSgpIHtcbiAgICB0aGlzLl9pbnB1dC5kaXNhYmxlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGRpc2FibGVkKSA9PiB7XG4gICAgICAgICAgaWYgKCFkaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBEZXYgbW9kZVxuXG4gIHByaXZhdGUgX2RlYnVnVmFsaWRhdGVDb21ib2JveENvbmZpZyhpc1JldHJ5ID0gZmFsc2UpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9zZWxlY3Rpb25Nb2RlbC5sYWJlbEJpbmRpbmckLCB0aGlzLl9zZWxlY3Rpb25Nb2RlbC52YWx1ZUJpbmRpbmckLCB0aGlzLl9hbGxvd0N1c3RvbVZhbHVlcyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXAoaXNSZXRyeSA/IDEgOiAwKSwgLy8gU2tpcCBpZiByZXRyeWluZyB0byBhdm9pZCBpbmZpbml0ZSBsb29wXG4gICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChbYmluZExhYmVsLCBiaW5kVmFsdWUsIGFsbG93Q3VzdG9tVmFsdWVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNob3VsZEJlT2JqZWN0cyA9IGJpbmRMYWJlbCAmJiBiaW5kVmFsdWUgJiYgIWFsbG93Q3VzdG9tVmFsdWVzO1xuXG4gICAgICAgICAgaWYgKHNob3VsZEJlT2JqZWN0cykge1xuICAgICAgICAgICAgcmV0dXJuIENvbWJvYm94T3B0aW9uVHlwZS5PYmplY3Q7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIENvbWJvYm94T3B0aW9uVHlwZS5QcmltaXRpdmU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKGV4cGVjdGVkT3B0aW9uVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5vcHRpb25zO1xuXG4gICAgICAgICAgaWYgKGlzRW1wdHlBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChleHBlY3RlZE9wdGlvblR5cGUgPT09IENvbWJvYm94T3B0aW9uVHlwZS5PYmplY3QpIHtcbiAgICAgICAgICAgIGlmICghaXNPYmplY3RBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgICB0aHJvdyBjb21ib2JveEVycm9yKCdvcHRpb25zX29iamVjdF9taXNtYXRjaCcsIHRydWUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZXhwZWN0ZWRPcHRpb25UeXBlID09PSBDb21ib2JveE9wdGlvblR5cGUuUHJpbWl0aXZlKSB7XG4gICAgICAgICAgICBpZiAoIWlzUHJpbWl0aXZlQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgdGhyb3cgY29tYm9ib3hFcnJvcignb3B0aW9uc19wcmltaXRpdmVfbWlzbWF0Y2gnLCB0cnVlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZUNvbWJvYm94Q29uZmlnKHRydWUpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlYnVnVmFsaWRhdGVPcHRpb25BbmRJbml0aWFsVmFsdWVTY2hlbWEoaXNSZXRyeSA9IGZhbHNlKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5vcHRpb25zJCwgdGhpcy5faW5pdGlhbFZhbHVlJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcChpc1JldHJ5ID8gMSA6IDApLCAvLyBTa2lwIGlmIHJldHJ5aW5nIHRvIGF2b2lkIGluZmluaXRlIGxvb3BcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKChbb3B0aW9ucywgaW5pdGlhbFZhbHVlXSkgPT4ge1xuICAgICAgICAgIGlmIChpbml0aWFsVmFsdWUgPT09IG51bGwgfHwgaW5pdGlhbFZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaXNQcmltaXRpdmUgPSBpc1ByaW1pdGl2ZUFycmF5KG9wdGlvbnMpO1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZUlzUHJpbWl0aXZlID0gdGhpcy5tdWx0aXBsZVxuICAgICAgICAgICAgPyBpc1ByaW1pdGl2ZUFycmF5KGluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgIDogdHlwZW9mIGluaXRpYWxWYWx1ZSAhPT0gJ29iamVjdCc7XG5cbiAgICAgICAgICBpZiAoaXNQcmltaXRpdmUpIHtcbiAgICAgICAgICAgIGlmICghaW5pdGlhbFZhbHVlSXNQcmltaXRpdmUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgY29tYm9ib3hFcnJvcignaW5pdF92YWxfcHJpbWl0aXZlX21pc21hdGNoJywgdHJ1ZSwgeyBpbml0aWFsVmFsdWUsIG9wdGlvbnMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpbml0aWFsVmFsdWVJc1ByaW1pdGl2ZSkge1xuICAgICAgICAgICAgICB0aHJvdyBjb21ib2JveEVycm9yKCdpbml0X3ZhbF9vYmplY3RfbWlzbWF0Y2gnLCB0cnVlLCB7IGluaXRpYWxWYWx1ZSwgb3B0aW9ucyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVidWdWYWxpZGF0ZU9wdGlvbkFuZEluaXRpYWxWYWx1ZVNjaGVtYSh0cnVlKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@ export class ComboboxBodyEmptyTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyEmptyTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxBodyEmptyTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxBodyEmptyTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxBodyEmptyTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxBodyEmptyTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyEmptyTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxBodyEmptyTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS1lbXB0eS10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9kaXJlY3RpdmVzL2NvbWJvYm94LWJvZHktZW1wdHktdGVtcGxhdGUvY29tYm9ib3gtYm9keS1lbXB0eS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLHVDQUF1QyxDQUN4QyxDQUFDO0FBYUYsTUFBTSxPQUFPLGtDQUFrQztJQVgvQztRQVlXLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDekM7OEdBRlksa0NBQWtDO2tHQUFsQyxrQ0FBa0MsdUZBUGxDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGtDQUFrQztnQkFDM0MsV0FBVyxFQUFFLGtDQUFrQzthQUNoRDtTQUNGOzsyRkFFVSxrQ0FBa0M7a0JBWDlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0NBQWtDOzRCQUMzQyxXQUFXLG9DQUFvQzt5QkFDaEQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94Qm9keUVtcHR5VGVtcGxhdGVEaXJlY3RpdmU+KFxuICAnRVRfQ09NQk9CT1hfQk9EWV9FTVBUWV9URU1QTEFURV9UT0tFTicsXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtldENvbWJvYm94Qm9keUVtcHR5VGVtcGxhdGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldENvbWJvYm94Qm9keUVtcHR5VGVtcGxhdGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDT01CT0JPWF9CT0RZX0VNUFRZX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keUVtcHR5VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hCb2R5RW1wdHlUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@ export class ComboboxBodyErrorTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyErrorTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxBodyErrorTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxBodyErrorTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxBodyErrorTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxBodyErrorTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyErrorTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxBodyErrorTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS1lcnJvci10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9kaXJlY3RpdmVzL2NvbWJvYm94LWJvZHktZXJyb3ItdGVtcGxhdGUvY29tYm9ib3gtYm9keS1lcnJvci10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLHVDQUF1QyxDQUN4QyxDQUFDO0FBYUYsTUFBTSxPQUFPLGtDQUFrQztJQVgvQztRQVlXLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDekM7OEdBRlksa0NBQWtDO2tHQUFsQyxrQ0FBa0MsdUZBUGxDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGtDQUFrQztnQkFDM0MsV0FBVyxFQUFFLGtDQUFrQzthQUNoRDtTQUNGOzsyRkFFVSxrQ0FBa0M7a0JBWDlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0NBQWtDOzRCQUMzQyxXQUFXLG9DQUFvQzt5QkFDaEQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94Qm9keUVycm9yVGVtcGxhdGVEaXJlY3RpdmU+KFxuICAnRVRfQ09NQk9CT1hfQk9EWV9FUlJPUl9URU1QTEFURV9UT0tFTicsXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtldENvbWJvYm94Qm9keUVycm9yVGVtcGxhdGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldENvbWJvYm94Qm9keUVycm9yVGVtcGxhdGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDT01CT0JPWF9CT0RZX0VSUk9SX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keUVycm9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hCb2R5RXJyb3JUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@ export class ComboboxBodyLoadingTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyLoadingTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxBodyLoadingTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxBodyLoadingTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxBodyLoadingTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxBodyLoadingTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyLoadingTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxBodyLoadingTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS1sb2FkaW5nLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL2NvbWJvYm94L2RpcmVjdGl2ZXMvY29tYm9ib3gtYm9keS1sb2FkaW5nLXRlbXBsYXRlL2NvbWJvYm94LWJvZHktbG9hZGluZy10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxjQUFjLENBQ3BFLHlDQUF5QyxDQUMxQyxDQUFDO0FBYUYsTUFBTSxPQUFPLG9DQUFvQztJQVhqRDtRQVlXLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDekM7OEdBRlksb0NBQW9DO2tHQUFwQyxvQ0FBb0MseUZBUHBDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG9DQUFvQztnQkFDN0MsV0FBVyxFQUFFLG9DQUFvQzthQUNsRDtTQUNGOzsyRkFFVSxvQ0FBb0M7a0JBWGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRDQUE0QztvQkFDdEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0NBQW9DOzRCQUM3QyxXQUFXLHNDQUFzQzt5QkFDbEQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9CT0RZX0xPQURJTkdfVEVNUExBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hCb2R5TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlPihcbiAgJ0VUX0NPTUJPQk9YX0JPRFlfTE9BRElOR19URU1QTEFURV9UT0tFTicsXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtldENvbWJvYm94Qm9keUxvYWRpbmdUZW1wbGF0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2V0Q29tYm9ib3hCb2R5TG9hZGluZ1RlbXBsYXRlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfQk9EWV9MT0FESU5HX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEJvZHlMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUge1xuICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=
|
|
@@ -5,15 +5,15 @@ export class ComboboxBodyMoreItemsHintTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyMoreItemsHintTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxBodyMoreItemsHintTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxBodyMoreItemsHintTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxBodyMoreItemsHintTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxBodyMoreItemsHintTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxBodyMoreItemsHintTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxBodyMoreItemsHintTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS1tb3JlLWl0ZW1zLWhpbnQtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvZGlyZWN0aXZlcy9jb21ib2JveC1ib2R5LW1vcmUtaXRlbXMtaGludC10ZW1wbGF0ZS9jb21ib2JveC1ib2R5LW1vcmUtaXRlbXMtaGludC10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sNENBQTRDLEdBQ3ZELElBQUksY0FBYyxDQUE2QyxpREFBaUQsQ0FBQyxDQUFDO0FBYXBILE1BQU0sT0FBTywwQ0FBMEM7SUFYdkQ7UUFZVyxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3pDOzhHQUZZLDBDQUEwQztrR0FBMUMsMENBQTBDLCtGQVAxQztZQUNUO2dCQUNFLE9BQU8sRUFBRSw0Q0FBNEM7Z0JBQ3JELFdBQVcsRUFBRSwwQ0FBMEM7YUFDeEQ7U0FDRjs7MkZBRVUsMENBQTBDO2tCQVh0RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrREFBa0Q7b0JBQzVELFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRDQUE0Qzs0QkFDckQsV0FBVyw0Q0FBNEM7eUJBQ3hEO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgVGVtcGxhdGVSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQ09NQk9CT1hfQk9EWV9NT1JFX0lURU1TX0hJTlRfVEVNUExBVEVfVE9LRU4gPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hCb2R5TW9yZUl0ZW1zSGludFRlbXBsYXRlRGlyZWN0aXZlPignRVRfQ09NQk9CT1hfQk9EWV9NT1JFX0lURU1TX0hJTlRfVEVNUExBVEVfVE9LRU4nKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbZXRDb21ib2JveEJvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldENvbWJvYm94Qm9keU1vcmVJdGVtc0hpbnRUZW1wbGF0ZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENPTUJPQk9YX0JPRFlfTU9SRV9JVEVNU19ISU5UX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keU1vcmVJdGVtc0hpbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEJvZHlNb3JlSXRlbXNIaW50VGVtcGxhdGVEaXJlY3RpdmUge1xuICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=
|
|
@@ -5,15 +5,15 @@ export class ComboboxOptionTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxOptionTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxOptionTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_OPTION_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxOptionTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxOptionTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxOptionTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxOptionTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtb3B0aW9uLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL2NvbWJvYm94L2RpcmVjdGl2ZXMvY29tYm9ib3gtb3B0aW9uLXRlbXBsYXRlL2NvbWJvYm94LW9wdGlvbi10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzlELG1DQUFtQyxDQUNwQyxDQUFDO0FBYUYsTUFBTSxPQUFPLCtCQUErQjtJQVg1QztRQVlXLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDekM7OEdBRlksK0JBQStCO2tHQUEvQiwrQkFBK0Isb0ZBUC9CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDhCQUE4QjtnQkFDdkMsV0FBVyxFQUFFLCtCQUErQjthQUM3QztTQUNGOzsyRkFFVSwrQkFBK0I7a0JBWDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVDQUF1QztvQkFDakQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxXQUFXLGlDQUFpQzt5QkFDN0M7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9PUFRJT05fVEVNUExBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hPcHRpb25UZW1wbGF0ZURpcmVjdGl2ZT4oXG4gICdFVF9DT01CT0JPWF9PUFRJT05fVEVNUExBVEVfVE9LRU4nLFxuKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbZXRDb21ib2JveE9wdGlvblRlbXBsYXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnZXRDb21ib2JveE9wdGlvblRlbXBsYXRlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfT1BUSU9OX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tYm9ib3hPcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@ export class ComboboxSelectedOptionTemplateDirective {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.template = inject(TemplateRef);
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxSelectedOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ComboboxSelectedOptionTemplateDirective, isStandalone: true, selector: "ng-template[etComboboxSelectedOptionTemplate]", providers: [
|
|
10
10
|
{
|
|
11
11
|
provide: COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN,
|
|
12
12
|
useExisting: ComboboxSelectedOptionTemplateDirective,
|
|
13
13
|
},
|
|
14
14
|
], exportAs: ["etComboboxSelectedOptionTemplate"], ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ComboboxSelectedOptionTemplateDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'ng-template[etComboboxSelectedOptionTemplate]',
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtc2VsZWN0ZWQtb3B0aW9uLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL2NvbWJvYm94L2RpcmVjdGl2ZXMvY29tYm9ib3gtc2VsZWN0ZWQtb3B0aW9uLXRlbXBsYXRlL2NvbWJvYm94LXNlbGVjdGVkLW9wdGlvbi10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUcsSUFBSSxjQUFjLENBQ3ZFLDRDQUE0QyxDQUM3QyxDQUFDO0FBYUYsTUFBTSxPQUFPLHVDQUF1QztJQVhwRDtRQVlXLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDekM7OEdBRlksdUNBQXVDO2tHQUF2Qyx1Q0FBdUMsNEZBUHZDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHVDQUF1QztnQkFDaEQsV0FBVyxFQUFFLHVDQUF1QzthQUNyRDtTQUNGOzsyRkFFVSx1Q0FBdUM7a0JBWG5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsdUNBQXVDOzRCQUNoRCxXQUFXLHlDQUF5Qzt5QkFDckQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9TRUxFQ1RFRF9PUFRJT05fVEVNUExBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hTZWxlY3RlZE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlPihcbiAgJ0VUX0NPTUJPQk9YX1NFTEVDVEVEX09QVElPTl9URU1QTEFURV9UT0tFTicsXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtldENvbWJvYm94U2VsZWN0ZWRPcHRpb25UZW1wbGF0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2V0Q29tYm9ib3hTZWxlY3RlZE9wdGlvblRlbXBsYXRlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfU0VMRUNURURfT1BUSU9OX1RFTVBMQVRFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94U2VsZWN0ZWRPcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveFNlbGVjdGVkT3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUge1xuICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=
|