igniteui-angular 17.0.0-alpha.2 → 17.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/accordion/accordion.component.mjs +8 -7
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/action-strip/action-strip.component.mjs +21 -25
- package/esm2022/lib/action-strip/action-strip.module.mjs +4 -4
- package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +7 -6
- package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +7 -6
- package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +13 -9
- package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/banner/banner.component.mjs +3 -3
- package/esm2022/lib/banner/banner.directives.mjs +3 -3
- package/esm2022/lib/banner/banner.module.mjs +4 -4
- package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +7 -6
- package/esm2022/lib/buttonGroup/buttongroup.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar-base.mjs +8 -9
- package/esm2022/lib/calendar/calendar.component.mjs +11 -8
- package/esm2022/lib/calendar/calendar.directives.mjs +15 -15
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/days-view/day-item.component.mjs +13 -9
- package/esm2022/lib/calendar/days-view/days-view.component.mjs +9 -7
- package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
- package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +3 -3
- package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
- package/esm2022/lib/calendar/months-view/months-view.component.mjs +7 -6
- package/esm2022/lib/calendar/months-view.pipe.mjs +6 -6
- package/esm2022/lib/calendar/years-view/years-view.component.mjs +10 -9
- package/esm2022/lib/card/card.component.mjs +37 -33
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.component.mjs +18 -13
- package/esm2022/lib/carousel/carousel.directives.mjs +9 -9
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/slide.component.mjs +10 -8
- package/esm2022/lib/checkbox/checkbox.component.mjs +52 -64
- package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/chips/chip.component.mjs +19 -12
- package/esm2022/lib/chips/chips-area.component.mjs +3 -3
- package/esm2022/lib/chips/chips.module.mjs +4 -4
- package/esm2022/lib/combo/combo-add-item.component.mjs +3 -3
- package/esm2022/lib/combo/combo-dropdown.component.mjs +7 -6
- package/esm2022/lib/combo/combo-item.component.mjs +7 -6
- package/esm2022/lib/combo/combo.api.mjs +3 -3
- package/esm2022/lib/combo/combo.common.mjs +27 -38
- package/esm2022/lib/combo/combo.component.mjs +28 -27
- package/esm2022/lib/combo/combo.directives.mjs +24 -24
- package/esm2022/lib/combo/combo.module.mjs +4 -4
- package/esm2022/lib/combo/combo.pipes.mjs +6 -6
- package/esm2022/lib/core/density.mjs +3 -3
- package/esm2022/lib/core/navigation/directives.mjs +6 -6
- package/esm2022/lib/core/navigation/nav.service.mjs +3 -3
- package/esm2022/lib/core/selection.mjs +3 -3
- package/esm2022/lib/core/touch.mjs +3 -3
- package/esm2022/lib/core/utils.mjs +3 -3
- package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
- package/esm2022/lib/date-common/picker-base.directive.mjs +7 -6
- package/esm2022/lib/date-common/picker-icons.common.mjs +9 -9
- package/esm2022/lib/date-picker/date-picker.component.mjs +13 -9
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
- package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +9 -7
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dialog/dialog.component.mjs +17 -12
- package/esm2022/lib/dialog/dialog.directives.mjs +6 -6
- package/esm2022/lib/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +6 -6
- package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +4 -4
- package/esm2022/lib/directives/button/button.directive.mjs +19 -35
- package/esm2022/lib/directives/button/button.module.mjs +4 -4
- package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +7 -6
- package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +4 -4
- package/esm2022/lib/directives/divider/divider.directive.mjs +9 -7
- package/esm2022/lib/directives/divider/divider.module.mjs +4 -4
- package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +16 -15
- package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +4 -4
- package/esm2022/lib/directives/filter/filter.directive.mjs +6 -6
- package/esm2022/lib/directives/filter/filter.module.mjs +4 -4
- package/esm2022/lib/directives/focus/focus.directive.mjs +6 -6
- package/esm2022/lib/directives/focus/focus.module.mjs +4 -4
- package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +6 -6
- package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +4 -4
- package/esm2022/lib/directives/for-of/base.helper.component.mjs +3 -3
- package/esm2022/lib/directives/for-of/display.container.mjs +3 -3
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +12 -10
- package/esm2022/lib/directives/for-of/for_of.module.mjs +4 -4
- package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -6
- package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
- package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +3 -3
- package/esm2022/lib/directives/form-control/form-control.directive.mjs +3 -3
- package/esm2022/lib/directives/form-control/form-control.module.mjs +4 -4
- package/esm2022/lib/directives/hint/hint.directive.mjs +3 -3
- package/esm2022/lib/directives/input/input.directive.mjs +11 -9
- package/esm2022/lib/directives/label/label.directive.mjs +3 -3
- package/esm2022/lib/directives/layout/layout.directive.mjs +9 -9
- package/esm2022/lib/directives/layout/layout.module.mjs +4 -4
- package/esm2022/lib/directives/mask/mask-parsing.service.mjs +3 -3
- package/esm2022/lib/directives/mask/mask.directive.mjs +7 -6
- package/esm2022/lib/directives/mask/mask.module.mjs +4 -4
- package/esm2022/lib/directives/notification/notifications.directive.mjs +9 -7
- package/esm2022/lib/directives/prefix/prefix.directive.mjs +3 -3
- package/esm2022/lib/directives/radio/radio-group.directive.mjs +11 -9
- package/esm2022/lib/directives/radio/radio-group.module.mjs +4 -4
- package/esm2022/lib/directives/ripple/ripple.directive.mjs +7 -7
- package/esm2022/lib/directives/ripple/ripple.module.mjs +4 -4
- package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +4 -4
- package/esm2022/lib/directives/suffix/suffix.directive.mjs +3 -3
- package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +3 -3
- package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +3 -3
- package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +4 -4
- package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +26 -46
- package/esm2022/lib/directives/text-selection/text-selection.module.mjs +4 -4
- package/esm2022/lib/directives/toggle/toggle.directive.mjs +9 -9
- package/esm2022/lib/directives/toggle/toggle.module.mjs +4 -4
- package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +6 -6
- package/esm2022/lib/directives/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/lib/directives/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/drop-down/drop-down-group.component.mjs +7 -6
- package/esm2022/lib/drop-down/drop-down-item.base.mjs +11 -8
- package/esm2022/lib/drop-down/drop-down-item.component.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.base.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.component.mjs +7 -6
- package/esm2022/lib/drop-down/drop-down.module.mjs +4 -4
- package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
- package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +7 -6
- package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +3 -3
- package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +7 -6
- package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
- package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +4 -4
- package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +3 -3
- package/esm2022/lib/grids/api.service.mjs +3 -3
- package/esm2022/lib/grids/cell.component.mjs +7 -6
- package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
- package/esm2022/lib/grids/column-actions/column-actions.component.mjs +16 -15
- package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
- package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
- package/esm2022/lib/grids/columns/column-group.component.mjs +13 -9
- package/esm2022/lib/grids/columns/column-layout.component.mjs +7 -6
- package/esm2022/lib/grids/columns/column.component.mjs +37 -21
- package/esm2022/lib/grids/columns/templates.directive.mjs +24 -24
- package/esm2022/lib/grids/columns/validators.directive.mjs +21 -21
- package/esm2022/lib/grids/common/crud.service.mjs +3 -3
- package/esm2022/lib/grids/common/pipes.mjs +54 -54
- package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +9 -9
- package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +11 -8
- package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
- package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +5 -5
- package/esm2022/lib/grids/grid/expandable-cell.component.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-validation.service.mjs +3 -3
- package/esm2022/lib/grids/grid/grid.component.mjs +11 -8
- package/esm2022/lib/grids/grid/grid.details.pipe.mjs +3 -3
- package/esm2022/lib/grids/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grids/grid/grid.pipes.mjs +12 -12
- package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +3 -3
- package/esm2022/lib/grids/grid/groupby-row.component.mjs +3 -3
- package/esm2022/lib/grids/grid-base.directive.mjs +33 -19
- package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
- package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/grid.common.mjs +3 -3
- package/esm2022/lib/grids/grid.directives.mjs +33 -33
- package/esm2022/lib/grids/grid.rowEdit.directive.mjs +15 -15
- package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
- package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +6 -6
- package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +8 -7
- package/esm2022/lib/grids/headers/grid-header-group.component.mjs +3 -3
- package/esm2022/lib/grids/headers/grid-header-row.component.mjs +14 -7
- package/esm2022/lib/grids/headers/grid-header.component.mjs +3 -3
- package/esm2022/lib/grids/headers/pipes.mjs +9 -9
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +7 -6
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +11 -10
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +7 -6
- package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
- package/esm2022/lib/grids/moving/moving.drop.directive.mjs +3 -3
- package/esm2022/lib/grids/moving/moving.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +13 -9
- package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +25 -15
- package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +4 -4
- package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +30 -30
- package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +3 -3
- package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizer.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizing.service.mjs +3 -3
- package/esm2022/lib/grids/row-drag.directive.mjs +9 -9
- package/esm2022/lib/grids/row.directive.mjs +7 -6
- package/esm2022/lib/grids/selection/drag-select.directive.mjs +6 -6
- package/esm2022/lib/grids/selection/row-selectors.mjs +9 -9
- package/esm2022/lib/grids/selection/selection.service.mjs +3 -3
- package/esm2022/lib/grids/state.directive.mjs +3 -3
- package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
- package/esm2022/lib/grids/summaries/grid-summary.service.mjs +10 -8
- package/esm2022/lib/grids/summaries/summary-cell.component.mjs +7 -6
- package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/common.mjs +15 -15
- package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +9 -7
- package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +16 -11
- package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +7 -6
- package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +7 -6
- package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
- package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
- package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
- package/esm2022/lib/icon/icon.component.mjs +6 -6
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon/icon.service.mjs +3 -3
- package/esm2022/lib/input-group/input-group.component.mjs +7 -6
- package/esm2022/lib/input-group/input-group.module.mjs +4 -4
- package/esm2022/lib/list/list-item.component.mjs +9 -7
- package/esm2022/lib/list/list.common.mjs +15 -15
- package/esm2022/lib/list/list.component.mjs +26 -23
- package/esm2022/lib/list/list.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar.component.mjs +13 -12
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +13 -9
- package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +13 -13
- package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
- package/esm2022/lib/paginator/paginator-interfaces.mjs +3 -3
- package/esm2022/lib/paginator/paginator.component.mjs +12 -12
- package/esm2022/lib/paginator/paginator.module.mjs +4 -4
- package/esm2022/lib/progressbar/progressbar.common.mjs +6 -6
- package/esm2022/lib/progressbar/progressbar.component.mjs +23 -17
- package/esm2022/lib/progressbar/progressbar.module.mjs +4 -4
- package/esm2022/lib/query-builder/query-builder-header.component.mjs +7 -6
- package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
- package/esm2022/lib/query-builder/query-builder.module.mjs +4 -4
- package/esm2022/lib/radio/radio.component.mjs +37 -44
- package/esm2022/lib/select/select-group.component.mjs +3 -3
- package/esm2022/lib/select/select-item.component.mjs +3 -3
- package/esm2022/lib/select/select-navigation.directive.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +16 -15
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/services/animation/angular-animation-service.mjs +3 -3
- package/esm2022/lib/services/csv/csv-exporter.mjs +3 -3
- package/esm2022/lib/services/direction/directionality.mjs +3 -3
- package/esm2022/lib/services/excel/excel-exporter.mjs +3 -3
- package/esm2022/lib/services/overlay/overlay.mjs +5 -5
- package/esm2022/lib/services/transaction/transaction-factory.service.mjs +6 -6
- package/esm2022/lib/simple-combo/simple-combo.component.mjs +51 -31
- package/esm2022/lib/simple-combo/simple-combo.module.mjs +4 -4
- package/esm2022/lib/slider/label/thumb-label.component.mjs +9 -7
- package/esm2022/lib/slider/slider.common.mjs +9 -9
- package/esm2022/lib/slider/slider.component.mjs +15 -10
- package/esm2022/lib/slider/slider.module.mjs +4 -4
- package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +11 -8
- package/esm2022/lib/slider/ticks/tick.pipe.mjs +3 -3
- package/esm2022/lib/slider/ticks/ticks.component.mjs +11 -8
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.module.mjs +4 -4
- package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +9 -7
- package/esm2022/lib/splitter/splitter.component.mjs +6 -6
- package/esm2022/lib/splitter/splitter.module.mjs +4 -4
- package/esm2022/lib/stepper/step/step.component.mjs +15 -10
- package/esm2022/lib/stepper/stepper.component.mjs +9 -7
- package/esm2022/lib/stepper/stepper.directive.mjs +21 -21
- package/esm2022/lib/stepper/stepper.module.mjs +4 -4
- package/esm2022/lib/stepper/stepper.service.mjs +6 -6
- package/esm2022/lib/switch/switch.component.mjs +32 -40
- package/esm2022/lib/switch/switch.module.mjs +4 -4
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +5 -5
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-header.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-item.directive.mjs +9 -7
- package/esm2022/lib/tabs/tabs/tab-content.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tab-header.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tab-item.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tabs.directives.mjs +6 -6
- package/esm2022/lib/tabs/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/tabs/tabs.directive.mjs +11 -17
- package/esm2022/lib/time-picker/time-picker.component.mjs +9 -7
- package/esm2022/lib/time-picker/time-picker.directives.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker.pipes.mjs +6 -6
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/tree/tree-navigation.service.mjs +3 -3
- package/esm2022/lib/tree/tree-node/tree-node.component.mjs +18 -13
- package/esm2022/lib/tree/tree-selection.service.mjs +3 -3
- package/esm2022/lib/tree/tree.component.mjs +13 -12
- package/esm2022/lib/tree/tree.module.mjs +4 -4
- package/esm2022/lib/tree/tree.service.mjs +3 -3
- package/fesm2022/igniteui-angular.mjs +2245 -2106
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/accordion/accordion.component.d.ts +1 -0
- package/lib/action-strip/action-strip.component.d.ts +2 -2
- package/lib/action-strip/grid-actions/grid-action-button.component.d.ts +1 -0
- package/lib/action-strip/grid-actions/grid-actions-base.directive.d.ts +1 -0
- package/lib/action-strip/grid-actions/grid-editing-actions.component.d.ts +4 -0
- package/lib/buttonGroup/buttonGroup.component.d.ts +1 -0
- package/lib/calendar/calendar-base.d.ts +1 -0
- package/lib/calendar/calendar.component.d.ts +3 -0
- package/lib/calendar/days-view/day-item.component.d.ts +4 -0
- package/lib/calendar/days-view/days-view.component.d.ts +2 -0
- package/lib/calendar/months-view/months-view.component.d.ts +1 -0
- package/lib/calendar/years-view/years-view.component.d.ts +1 -0
- package/lib/card/card.component.d.ts +4 -0
- package/lib/carousel/carousel.component.d.ts +5 -0
- package/lib/carousel/slide.component.d.ts +2 -0
- package/lib/checkbox/checkbox.component.d.ts +10 -16
- package/lib/chips/chip.component.d.ts +7 -0
- package/lib/combo/combo-dropdown.component.d.ts +1 -0
- package/lib/combo/combo-item.component.d.ts +1 -0
- package/lib/combo/combo.common.d.ts +10 -21
- package/lib/combo/combo.component.d.ts +10 -8
- package/lib/date-common/picker-base.directive.d.ts +1 -0
- package/lib/date-picker/date-picker.component.d.ts +4 -0
- package/lib/date-range-picker/date-range-picker.component.d.ts +2 -0
- package/lib/dialog/dialog.component.d.ts +5 -0
- package/lib/directives/autocomplete/autocomplete.directive.d.ts +1 -0
- package/lib/directives/button/button.directive.d.ts +10 -23
- package/lib/directives/date-time-editor/date-time-editor.directive.d.ts +1 -0
- package/lib/directives/divider/divider.directive.d.ts +2 -0
- package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -0
- package/lib/directives/focus/focus.directive.d.ts +1 -0
- package/lib/directives/focus-trap/focus-trap.directive.d.ts +1 -0
- package/lib/directives/for-of/for_of.directive.d.ts +2 -0
- package/lib/directives/input/input.directive.d.ts +2 -2
- package/lib/directives/layout/layout.directive.d.ts +1 -0
- package/lib/directives/mask/mask.directive.d.ts +1 -0
- package/lib/directives/notification/notifications.directive.d.ts +2 -0
- package/lib/directives/radio/radio-group.directive.d.ts +2 -2
- package/lib/directives/ripple/ripple.directive.d.ts +2 -0
- package/lib/directives/text-selection/text-selection.directive.d.ts +2 -17
- package/lib/directives/tooltip/tooltip-target.directive.d.ts +1 -0
- package/lib/drop-down/drop-down-group.component.d.ts +1 -0
- package/lib/drop-down/drop-down-item.base.d.ts +3 -0
- package/lib/drop-down/drop-down.component.d.ts +1 -0
- package/lib/expansion-panel/expansion-panel-header.component.d.ts +1 -0
- package/lib/expansion-panel/expansion-panel.component.d.ts +1 -0
- package/lib/grids/cell.component.d.ts +1 -0
- package/lib/grids/column-actions/column-actions.component.d.ts +1 -0
- package/lib/grids/columns/column-group.component.d.ts +4 -0
- package/lib/grids/columns/column-layout.component.d.ts +1 -0
- package/lib/grids/columns/column.component.d.ts +16 -0
- package/lib/grids/filtering/excel-style/excel-style-header.component.d.ts +3 -0
- package/lib/grids/grid/grid.component.d.ts +3 -0
- package/lib/grids/grid-base.directive.d.ts +11 -0
- package/lib/grids/grouping/tree-grid-group-by-area.component.d.ts +1 -0
- package/lib/grids/headers/grid-header-row.component.d.ts +5 -0
- package/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.d.ts +1 -0
- package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
- package/lib/grids/hierarchical-grid/row-island.component.d.ts +1 -0
- package/lib/grids/pivot-grid/pivot-data-selector.component.d.ts +4 -0
- package/lib/grids/pivot-grid/pivot-grid.component.d.ts +10 -0
- package/lib/grids/row.directive.d.ts +1 -0
- package/lib/grids/selection/drag-select.directive.d.ts +1 -0
- package/lib/grids/summaries/summary-cell.component.d.ts +1 -0
- package/lib/grids/toolbar/grid-toolbar-exporter.component.d.ts +2 -0
- package/lib/grids/toolbar/grid-toolbar.base.d.ts +1 -0
- package/lib/grids/toolbar/grid-toolbar.component.d.ts +1 -0
- package/lib/grids/tree-grid/tree-grid.component.d.ts +1 -0
- package/lib/icon/icon.component.d.ts +1 -0
- package/lib/input-group/input-group.component.d.ts +1 -0
- package/lib/list/list-item.component.d.ts +2 -0
- package/lib/list/list.component.d.ts +3 -0
- package/lib/navbar/navbar.component.d.ts +1 -0
- package/lib/navigation-drawer/navigation-drawer.component.d.ts +4 -0
- package/lib/navigation-drawer/navigation-drawer.directives.d.ts +2 -0
- package/lib/progressbar/progressbar.component.d.ts +6 -0
- package/lib/query-builder/query-builder-header.component.d.ts +1 -0
- package/lib/radio/radio.component.d.ts +5 -4
- package/lib/select/select.component.d.ts +1 -0
- package/lib/simple-combo/simple-combo.component.d.ts +16 -1
- package/lib/slider/label/thumb-label.component.d.ts +2 -0
- package/lib/slider/slider.component.d.ts +5 -0
- package/lib/slider/thumb/thumb-slider.component.d.ts +4 -1
- package/lib/slider/ticks/ticks.component.d.ts +3 -0
- package/lib/splitter/splitter-pane/splitter-pane.component.d.ts +2 -0
- package/lib/stepper/step/step.component.d.ts +5 -0
- package/lib/stepper/stepper.component.d.ts +2 -0
- package/lib/switch/switch.component.d.ts +4 -4
- package/lib/tabs/bottom-nav/bottom-nav.component.d.ts +1 -1
- package/lib/tabs/tab-item.directive.d.ts +2 -0
- package/lib/tabs/tabs.directive.d.ts +2 -4
- package/lib/time-picker/time-picker.component.d.ts +2 -0
- package/lib/tree/tree-node/tree-node.component.d.ts +5 -0
- package/lib/tree/tree.component.d.ts +1 -0
- package/migrations/common/tsUtils.d.ts +2 -0
- package/migrations/common/tsUtils.js +4 -3
- package/migrations/update-17_0_0/changes/classes.json +21 -0
- package/migrations/update-17_0_0/changes/members.json +21 -0
- package/migrations/update-17_0_0/index.js +48 -1
- package/package.json +2 -2
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Output, Input, } from '@angular/core';
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Output, Input, booleanAttribute, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { parseMask } from './mask-parsing.service';
|
|
4
4
|
import { noop } from 'rxjs';
|
|
@@ -309,10 +309,10 @@ export class IgxMaskDirective {
|
|
|
309
309
|
this.inputValue = '';
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
313
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
312
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskDirective, deps: [{ token: i0.ElementRef }, { token: i1.MaskParsingService }, { token: i0.Renderer2 }, { token: i2.PlatformUtil }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
313
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxMaskDirective, isStandalone: true, selector: "[igxMask]", inputs: { mask: ["igxMask", "mask"], promptChar: "promptChar", includeLiterals: ["includeLiterals", "includeLiterals", booleanAttribute], displayValuePipe: "displayValuePipe", focusedValuePipe: "focusedValuePipe" }, outputs: { valueChanged: "valueChanged" }, host: { listeners: { "keydown": "onKeyDown($event)", "compositionstart": "onCompositionStart()", "compositionend": "onCompositionEnd()", "input": "onInputChanged($event)", "paste": "onPaste()", "focus": "onFocus()", "blur": "onBlur($event.target.value)", "dragenter": "onDragEnter()", "dragleave": "onDragLeave()", "drop": "onDrop($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMaskDirective, multi: true }], exportAs: ["igxMask"], ngImport: i0 }); }
|
|
314
314
|
}
|
|
315
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskDirective, decorators: [{
|
|
316
316
|
type: Directive,
|
|
317
317
|
args: [{
|
|
318
318
|
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMaskDirective, multi: true }],
|
|
@@ -326,7 +326,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
326
326
|
}], promptChar: [{
|
|
327
327
|
type: Input
|
|
328
328
|
}], includeLiterals: [{
|
|
329
|
-
type: Input
|
|
329
|
+
type: Input,
|
|
330
|
+
args: [{ transform: booleanAttribute }]
|
|
330
331
|
}], displayValuePipe: [{
|
|
331
332
|
type: Input
|
|
332
333
|
}], focusedValuePipe: [{
|
|
@@ -364,4 +365,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
364
365
|
type: HostListener,
|
|
365
366
|
args: ['drop', ['$event']]
|
|
366
367
|
}] } });
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9tYXNrL21hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFDakQsTUFBTSxFQUNOLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFtQyxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekI7Ozs7O09BS0c7SUFDSCxJQUNXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBVyxJQUFJLENBQUMsR0FBVztRQUN2QiwyQkFBMkI7UUFDM0IsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNwQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQWlERCxjQUFjO0lBQ2QsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJ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QVVDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBVUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFXQyxZQUFZO3NCQURsQixNQUFNO2dCQTBFQSxTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWtCNUIsa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFVekIsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLGdCQUFnQjtnQkFZdkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUUxQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFRZCxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFXZCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBU3RDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVztnQkFTbEIsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXO2dCQVNsQixNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLFxuICAgIE91dHB1dCwgUGlwZVRyYW5zZm9ybSwgUmVuZGVyZXIyLFxuICAgIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza1BhcnNpbmdTZXJ2aWNlLCBNYXNrT3B0aW9ucywgcGFyc2VNYXNrIH0gZnJvbSAnLi9tYXNrLXBhcnNpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncywgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBJZ3hNYXNrRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzZWxlY3RvcjogJ1tpZ3hNYXNrXScsXG4gICAgZXhwb3J0QXM6ICdpZ3hNYXNrJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBpbnB1dCBtYXNrLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW2lneE1hc2tdID0gXCInMDAvMDAvMDAwMCdcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneE1hc2snKVxuICAgIHB1YmxpYyBnZXQgbWFzaygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWFzayB8fCB0aGlzLmRlZmF1bHRNYXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbWFzayh2YWw6IHN0cmluZykge1xuICAgICAgICAvLyBCLlAuIDl0aCBKdW5lIDIwMjEgIzc0OTBcbiAgICAgICAgaWYgKHZhbCAhPT0gdGhpcy5fbWFzaykge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5JbnB1dFZhbHVlID0gdGhpcy5tYXNrUGFyc2VyLnBhcnNlVmFsdWVGcm9tTWFzayh0aGlzLmlucHV0VmFsdWUsIHRoaXMubWFza09wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcih2YWwpO1xuICAgICAgICAgICAgdGhpcy5fbWFzayA9IHZhbDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShjbGVhbklucHV0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGluZyBhIGZpbGxhYmxlIHNwb3QgaW4gdGhlIGlucHV0IG1hc2suXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBcIidfJ1wiLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW3Byb21wdENoYXJdID0gXCInLydcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcm9tcHRDaGFyID0gJ18nO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGlmIHRoZSBib3VuZCB2YWx1ZSBpbmNsdWRlcyB0aGUgZm9ybWF0dGluZyBzeW1ib2xzLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW2luY2x1ZGVMaXRlcmFsc10gPSBcInRydWVcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbmNsdWRlTGl0ZXJhbHM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgYSBwaXBlIHRvIGJlIHVzZWQgb24gYmx1ci5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0IFtkaXNwbGF5VmFsdWVQaXBlXSA9IFwiZGlzcGxheUZvcm1hdFBpcGVcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWVQaXBlOiBQaXBlVHJhbnNmb3JtO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGEgcGlwZSB0byBiZSB1c2VkIG9uIGZvY3VzLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW2ZvY3VzZWRWYWx1ZVBpcGVdID0gXCJpbnB1dEZvcm1hdFBpcGVcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb2N1c2VkVmFsdWVQaXBlOiBQaXBlVHJhbnNmb3JtO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqIFByb3ZpZGVzIGByYXdWYWx1ZTogc3RyaW5nYCBhbmQgYGZvcm1hdHRlZFZhbHVlOiBzdHJpbmdgIGFzIGV2ZW50IGFyZ3VtZW50cy5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0ICh2YWx1ZUNoYW5nZWQpID0gXCJ2YWx1ZUNoYW5nZWQocmF3VmFsdWU6IHN0cmluZywgZm9ybWF0dGVkVmFsdWU6IHN0cmluZylcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFza0V2ZW50QXJncz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsOyAqL1xuICAgIHByb3RlY3RlZCBnZXQgaW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCBzZXQgaW5wdXRWYWx1ZSh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IG1hc2tPcHRpb25zKCk6IE1hc2tPcHRpb25zIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5tYXNrIHx8IHRoaXMuZGVmYXVsdE1hc2s7XG4gICAgICAgIGNvbnN0IHByb21wdENoYXIgPSB0aGlzLnByb21wdENoYXIgJiYgdGhpcy5wcm9tcHRDaGFyLnN1YnN0cmluZygwLCAxKTtcbiAgICAgICAgcmV0dXJuIHsgZm9ybWF0LCBwcm9tcHRDaGFyIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IHNlbGVjdGlvblN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIC8vIEVkZ2UoY2xhc3NpYykgYW5kIEZGIGRvbid0IHNlbGVjdCB0ZXh0IG9uIGRyb3BcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCAmJiB0aGlzLl9oYXNEcm9wQWN0aW9uID9cbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgLSB0aGlzLl9kcm9wcGVkRGF0YS5sZW5ndGggOlxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldCBzZWxlY3Rpb25FbmQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IHN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBnZXQgZW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jb21wb3Npbmc6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9jb21wb3NpdGlvblN0YXJ0SW5kZXg6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb21wb3NpdGlvblZhbHVlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfZW5kID0gMDtcbiAgICBwcml2YXRlIF9zdGFydCA9IDA7XG4gICAgcHJpdmF0ZSBfa2V5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbWFzazogc3RyaW5nO1xuICAgIHByaXZhdGUgX29sZFRleHQgPSAnJztcbiAgICBwcml2YXRlIF9kYXRhVmFsdWUgPSAnJztcbiAgICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZHJvcHBlZERhdGE6IHN0cmluZztcbiAgICBwcml2YXRlIF9oYXNEcm9wQWN0aW9uOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TWFzayA9ICdDQ0NDQ0NDQ0NDJztcblxuICAgIHByaXZhdGUgX29uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIG1hc2tQYXJzZXI6IE1hc2tQYXJzaW5nU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsKSB7IH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGV2ZW50LmN0cmxLZXkgJiYgKGtleSA9PT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuWiB8fCBrZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLlkpKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2tleSA9IGtleTtcbiAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICB0aGlzLl9lbmQgPSB0aGlzLnNlbGVjdGlvbkVuZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JylcbiAgICBwdWJsaWMgb25Db21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvc2luZykge1xuICAgICAgICAgICAgdGhpcy5fY29tcG9zaXRpb25TdGFydEluZGV4ID0gdGhpcy5fc3RhcnQ7XG4gICAgICAgICAgICB0aGlzLl9jb21wb3NpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnKVxuICAgIHB1YmxpYyBvbkNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuX2NvbXBvc2l0aW9uU3RhcnRJbmRleDtcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGNvbnN0IHZhbHVlVG9QYXJzZSA9IHRoaXMuaW5wdXRWYWx1ZS5zdWJzdHJpbmcodGhpcy5fc3RhcnQsIGVuZCk7XG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXQodmFsdWVUb1BhcnNlKTtcbiAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIHRoaXMuX2NvbXBvc2l0aW9uVmFsdWUgPSB0aGlzLmlucHV0VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbklucHV0Q2hhbmdlZChldmVudCk6IHZvaWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogJyF0aGlzLl9mb2N1c2VkJyBpcyBhIGZpeCBmb3IgIzgxNjVcbiAgICAgICAgICogT24gcGFnZSBsb2FkIElFIHRyaWdnZXJzIGlucHV0IGV2ZW50cyBiZWZvcmUgZm9jdXMgZXZlbnRzIGFuZFxuICAgICAgICAgKiBpdCBkb2VzIHNvIGZvciBldmVyeSBzaW5nbGUgaW5wdXQgb24gdGhlIHBhZ2UuXG4gICAgICAgICAqIFRoZSBtYXNrIG5lZWRzIHRvIGJlIHByZXZlbnRlZCBmcm9tIGRvaW5nIGFueXRoaW5nIHdoaWxlIHRoaXMgaXMgaGFwcGVuaW5nIGJlY2F1c2VcbiAgICAgICAgICogdGhlIGVuZCB1c2VyIHdpbGwgYmUgdW5hYmxlIHRvIGJsdXIgdGhlIGlucHV0LlxuICAgICAgICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMTQwNjEzOC9pbnB1dC1ldmVudC10cmlnZ2VyZWQtb24taW50ZXJuZXQtZXhwbG9yZXItd2hlbi1wbGFjZWhvbGRlci1jaGFuZ2VkXG4gICAgICAgICAqL1xuXG4gICAgICAgIGlmICh0aGlzLl9jb21wb3NpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0VmFsdWUubGVuZ3RoIDwgdGhpcy5fb2xkVGV4dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAvLyBzb2Z0d2FyZSBrZXlib2FyZCBpbnB1dCBkZWxldGVcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXkgPSB0aGlzLnBsYXRmb3JtLktFWU1BUC5CQUNLU1BBQ0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZnRlciB0aGUgY29tcG9zaXRpb25lbmQgZXZlbnQgQ2hyb21pdW0gdHJpZ2dlcnMgaW5wdXQgZXZlbnRzIG9mIHR5cGUgJ2RlbGV0ZUNvbnRlbnRCYWNrd2FyZCcgYW5kXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBzdGFydCBhbmQgZW5kIGluZGV4ZXMgdG8gaW5jbHVkZSBtYXNrIGxpdGVyYWxzXG4gICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgPT09ICdkZWxldGVDb250ZW50QmFja3dhcmQnICYmIHRoaXMuX2tleSAhPT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQkFDS1NQQUNFKSB7XG4gICAgICAgICAgICBjb25zdCBpc0lucHV0Q29tcGxldGUgPSB0aGlzLl9jb21wb3NpdGlvblN0YXJ0SW5kZXggPT09IDAgJiYgdGhpcy5fZW5kID09PSB0aGlzLm1hc2subGVuZ3RoO1xuICAgICAgICAgICAgbGV0IG51bWJlck9mTWFza0xpdGVyYWxzID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGxpdGVyYWxQb3MgPSBwYXJzZU1hc2sodGhpcy5tYXNrT3B0aW9ucy5mb3JtYXQpLmxpdGVyYWxzLmtleXMoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaW5kZXggb2YgbGl0ZXJhbFBvcykge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSB0aGlzLl9jb21wb3NpdGlvblN0YXJ0SW5kZXggJiYgaW5kZXggPD0gdGhpcy5fZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bWJlck9mTWFza0xpdGVyYWxzKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gaXNJbnB1dENvbXBsZXRlID9cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuc3Vic3RyaW5nKDAsIHRoaXMuc2VsZWN0aW9uRW5kIC0gbnVtYmVyT2ZNYXNrTGl0ZXJhbHMpICsgdGhpcy5pbnB1dFZhbHVlLnN1YnN0cmluZyh0aGlzLnNlbGVjdGlvbkVuZClcbiAgICAgICAgICAgICAgICA6IHRoaXMuX2NvbXBvc2l0aW9uVmFsdWU/LnN1YnN0cmluZygwLCB0aGlzLl9jb21wb3NpdGlvblN0YXJ0SW5kZXgpIHx8IHRoaXMuaW5wdXRWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBvc2l0aW9uVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5zZWxlY3Rpb25FbmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gaXNJbnB1dENvbXBsZXRlID8gdGhpcy5fc3RhcnQgLSBudW1iZXJPZk1hc2tMaXRlcmFscyA6IHRoaXMuX2NvbXBvc2l0aW9uU3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID0gdGhpcy5fZW5kIC0gbnVtYmVyT2ZNYXNrTGl0ZXJhbHM7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHRoaXMuX2VuZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5zZWxlY3Rpb25FbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faGFzRHJvcEFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlVG9QYXJzZSA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2tleSkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLnBsYXRmb3JtLktFWU1BUC5ERUxFVEU6XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5fc3RhcnQgPT09IHRoaXMuX2VuZCA/ICsrdGhpcy5fZW5kIDogdGhpcy5fZW5kO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLnBsYXRmb3JtLktFWU1BUC5CQUNLU1BBQ0U6XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB2YWx1ZVRvUGFyc2UgPSB0aGlzLmlucHV0VmFsdWUuc3Vic3RyaW5nKHRoaXMuX3N0YXJ0LCB0aGlzLnNlbGVjdGlvbkVuZCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0KHZhbHVlVG9QYXJzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScpXG4gICAgcHVibGljIG9uUGFzdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29sZFRleHQgPSB0aGlzLmlucHV0VmFsdWU7XG4gICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5zZWxlY3Rpb25TdGFydDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRWxlbWVudC5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dNYXNrKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gICAgcHVibGljIG9uQmx1cih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RGlzcGxheVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicpXG4gICAgcHVibGljIG9uRHJhZ0VudGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ZvY3VzZWQgJiYgIXRoaXMuX2RhdGFWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zaG93TWFzayh0aGlzLl9kYXRhVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnKVxuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEaXNwbGF5VmFsdWUodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhc0Ryb3BBY3Rpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLl9kcm9wcGVkRGF0YSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UGxhY2Vob2xkZXIodGhpcy5tYXNrT3B0aW9ucy5mb3JtYXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRPRE86IFJlbW92ZSBhZnRlciBkYXRlL3RpbWUgcGlja2VyIGludGVncmF0aW9uIHJlZmFjdG9yXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvc2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29sZFRleHQgPSB0aGlzLmlucHV0VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByb21wdENoYXIgJiYgdGhpcy5wcm9tcHRDaGFyLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMubWFza09wdGlvbnMucHJvbXB0Q2hhciA9IHRoaXMucHJvbXB0Q2hhci5zdWJzdHJpbmcoMCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZSA/IHRoaXMubWFza1BhcnNlci5hcHBseU1hc2sodmFsdWUsIHRoaXMubWFza09wdGlvbnMpIDogJyc7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZVBpcGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZGlzcGxheVZhbHVlUGlwZS50cmFuc2Zvcm0odGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RhdGFWYWx1ZSA9IHRoaXMuaW5jbHVkZUxpdGVyYWxzID8gdGhpcy5pbnB1dFZhbHVlIDogdmFsdWU7XG5cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh7IHJhd1ZhbHVlOiB2YWx1ZSwgZm9ybWF0dGVkVmFsdWU6IHRoaXMuaW5wdXRWYWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHNob3dNYXNrKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZFZhbHVlUGlwZSkge1xuICAgICAgICAgICAgLy8gVE9ETyhELlAuKTogZm9jdXNlZFZhbHVlUGlwZSBzaG91bGQgYmUgZGVwcmVjYXRlZCBvciBmb3JjZS1jaGVja2VkIHRvIG1hdGNoIG1hc2sgZm9ybWF0XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmZvY3VzZWRWYWx1ZVBpcGUudHJhbnNmb3JtKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMubWFza1BhcnNlci5hcHBseU1hc2sodmFsdWUsIHRoaXMubWFza09wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb2xkVGV4dCA9IHRoaXMuaW5wdXRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBzZXRTZWxlY3Rpb25SYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciA9IHN0YXJ0KTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBhZnRlcklucHV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbGRUZXh0ID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgICAgICB0aGlzLl9oYXNEcm9wQWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3N0YXJ0ID0gMDtcbiAgICAgICAgdGhpcy5fZW5kID0gMDtcbiAgICAgICAgdGhpcy5fa2V5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY29tcG9zaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgc2V0UGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgICAgICAgaWYgKCFwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlciA9PT0gdGhpcy5tYXNrKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdwbGFjZWhvbGRlcicsIHBhcnNlTWFzayh2YWx1ZSA/PyAnJykubWFzayB8fCB0aGlzLmRlZmF1bHRNYXNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dNYXNrKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kaXNwbGF5VmFsdWVQaXBlKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmlucHV0VmFsdWUgPyB0aGlzLm1hc2tQYXJzZXIuYXBwbHlNYXNrKHZhbHVlLCB0aGlzLm1hc2tPcHRpb25zKSA6ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnB1dCh2YWx1ZVRvUGFyc2U6IHN0cmluZykge1xuICAgICAgICBjb25zdCByZXBsYWNlZERhdGEgPSB0aGlzLm1hc2tQYXJzZXIucmVwbGFjZUluTWFzayh0aGlzLl9vbGRUZXh0LCB2YWx1ZVRvUGFyc2UsIHRoaXMubWFza09wdGlvbnMsIHRoaXMuX3N0YXJ0LCB0aGlzLl9lbmQpO1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByZXBsYWNlZERhdGEudmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9rZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLkJBQ0tTUEFDRSkge1xuICAgICAgICAgICAgcmVwbGFjZWREYXRhLmVuZCA9IHRoaXMuX3N0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25SYW5nZShyZXBsYWNlZERhdGEuZW5kKTtcblxuICAgICAgICBjb25zdCByYXdWYWwgPSB0aGlzLm1hc2tQYXJzZXIucGFyc2VWYWx1ZUZyb21NYXNrKHRoaXMuaW5wdXRWYWx1ZSwgdGhpcy5tYXNrT3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX2RhdGFWYWx1ZSA9IHRoaXMuaW5jbHVkZUxpdGVyYWxzID8gdGhpcy5pbnB1dFZhbHVlIDogcmF3VmFsO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMuX2RhdGFWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh7IHJhd1ZhbHVlOiByYXdWYWwsIGZvcm1hdHRlZFZhbHVlOiB0aGlzLmlucHV0VmFsdWUgfSk7XG4gICAgICAgIHRoaXMuYWZ0ZXJJbnB1dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd0Rpc3BsYXlWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZVBpcGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuZGlzcGxheVZhbHVlUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB0aGlzLm1hc2tQYXJzZXIuYXBwbHlNYXNrKG51bGwsIHRoaXMubWFza09wdGlvbnMpKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgSWd4TWFza01vZHVsZSBwcm92aWRlcyB0aGUge0BsaW5rIElneE1hc2tEaXJlY3RpdmV9IGluc2lkZSB5b3VyIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElNYXNrRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHJhd1ZhbHVlOiBzdHJpbmc7XG4gICAgZm9ybWF0dGVkVmFsdWU6IHN0cmluZztcbn1cblxuLyoqIEBoaWRkZW4gKi9cblxuIl19
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9tYXNrL21hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFDakQsTUFBTSxFQUNOLEtBQUssRUFBNEIsZ0JBQWdCLEdBQ3BELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQW1DLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFRNUIsTUFBTSxPQUFPLGdCQUFnQjtJQUN6Qjs7Ozs7T0FLRztJQUNILElBQ1csSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxHQUFXO1FBQ3ZCLDJCQUEyQjtRQUMzQixJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3BCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBaURELGNBQWM7SUFDZCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FB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QVM7Z0JBdUJULFVBQVU7c0JBRGhCLEtBQUs7Z0JBVUMsZUFBZTtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVL0IsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFXQyxZQUFZO3NCQURsQixNQUFNO2dCQTBFQSxTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWtCNUIsa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFVekIsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLGdCQUFnQjtnQkFZdkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUUxQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFRZCxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFXZCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBU3RDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVztnQkFTbEIsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXO2dCQVNsQixNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLFxuICAgIE91dHB1dCwgUGlwZVRyYW5zZm9ybSwgUmVuZGVyZXIyLFxuICAgIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza1BhcnNpbmdTZXJ2aWNlLCBNYXNrT3B0aW9ucywgcGFyc2VNYXNrIH0gZnJvbSAnLi9tYXNrLXBhcnNpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncywgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBJZ3hNYXNrRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzZWxlY3RvcjogJ1tpZ3hNYXNrXScsXG4gICAgZXhwb3J0QXM6ICdpZ3hNYXNrJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBpbnB1dCBtYXNrLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW2lneE1hc2tdID0gXCInMDAvMDAvMDAwMCdcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneE1hc2snKVxuICAgIHB1YmxpYyBnZXQgbWFzaygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWFzayB8fCB0aGlzLmRlZmF1bHRNYXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbWFzayh2YWw6IHN0cmluZykge1xuICAgICAgICAvLyBCLlAuIDl0aCBKdW5lIDIwMjEgIzc0OTBcbiAgICAgICAgaWYgKHZhbCAhPT0gdGhpcy5fbWFzaykge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5JbnB1dFZhbHVlID0gdGhpcy5tYXNrUGFyc2VyLnBhcnNlVmFsdWVGcm9tTWFzayh0aGlzLmlucHV0VmFsdWUsIHRoaXMubWFza09wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcih2YWwpO1xuICAgICAgICAgICAgdGhpcy5fbWFzayA9IHZhbDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShjbGVhbklucHV0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGluZyBhIGZpbGxhYmxlIHNwb3QgaW4gdGhlIGlucHV0IG1hc2suXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBcIidfJ1wiLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW3Byb21wdENoYXJdID0gXCInLydcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcm9tcHRDaGFyID0gJ18nO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGlmIHRoZSBib3VuZCB2YWx1ZSBpbmNsdWRlcyB0aGUgZm9ybWF0dGluZyBzeW1ib2xzLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQgW2luY2x1ZGVMaXRlcmFsc10gPSBcInRydWVcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgaW5jbHVkZUxpdGVyYWxzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGEgcGlwZSB0byBiZSB1c2VkIG9uIGJsdXIuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dCBbZGlzcGxheVZhbHVlUGlwZV0gPSBcImRpc3BsYXlGb3JtYXRQaXBlXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheVZhbHVlUGlwZTogUGlwZVRyYW5zZm9ybTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBhIHBpcGUgdG8gYmUgdXNlZCBvbiBmb2N1cy5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0IFtmb2N1c2VkVmFsdWVQaXBlXSA9IFwiaW5wdXRGb3JtYXRQaXBlXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9jdXNlZFZhbHVlUGlwZTogUGlwZVRyYW5zZm9ybTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGVhY2ggdGltZSB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICAgKiBQcm92aWRlcyBgcmF3VmFsdWU6IHN0cmluZ2AgYW5kIGBmb3JtYXR0ZWRWYWx1ZTogc3RyaW5nYCBhcyBldmVudCBhcmd1bWVudHMuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dCAodmFsdWVDaGFuZ2VkKSA9IFwidmFsdWVDaGFuZ2VkKHJhd1ZhbHVlOiBzdHJpbmcsIGZvcm1hdHRlZFZhbHVlOiBzdHJpbmcpXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hc2tFdmVudEFyZ3M+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbDsgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGlucHV0VmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgc2V0IGlucHV0VmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldCBtYXNrT3B0aW9ucygpOiBNYXNrT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMubWFzayB8fCB0aGlzLmRlZmF1bHRNYXNrO1xuICAgICAgICBjb25zdCBwcm9tcHRDaGFyID0gdGhpcy5wcm9tcHRDaGFyICYmIHRoaXMucHJvbXB0Q2hhci5zdWJzdHJpbmcoMCwgMSk7XG4gICAgICAgIHJldHVybiB7IGZvcm1hdCwgcHJvbXB0Q2hhciB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldCBzZWxlY3Rpb25TdGFydCgpOiBudW1iZXIge1xuICAgICAgICAvLyBFZGdlKGNsYXNzaWMpIGFuZCBGRiBkb24ndCBzZWxlY3QgdGV4dCBvbiBkcm9wXG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgJiYgdGhpcy5faGFzRHJvcEFjdGlvbiA/XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kIC0gdGhpcy5fZHJvcHBlZERhdGEubGVuZ3RoIDpcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBnZXQgc2VsZWN0aW9uRW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldCBzdGFydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5kO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY29tcG9zaW5nOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfY29tcG9zaXRpb25TdGFydEluZGV4OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29tcG9zaXRpb25WYWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2VuZCA9IDA7XG4gICAgcHJpdmF0ZSBfc3RhcnQgPSAwO1xuICAgIHByaXZhdGUgX2tleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX21hc2s6IHN0cmluZztcbiAgICBwcml2YXRlIF9vbGRUZXh0ID0gJyc7XG4gICAgcHJpdmF0ZSBfZGF0YVZhbHVlID0gJyc7XG4gICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Ryb3BwZWREYXRhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaGFzRHJvcEFjdGlvbjogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1hc2sgPSAnQ0NDQ0NDQ0NDQyc7XG5cbiAgICBwcml2YXRlIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIHByb3RlY3RlZCBtYXNrUGFyc2VyOiBNYXNrUGFyc2luZ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkgeyB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChldmVudC5jdHJsS2V5ICYmIChrZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLlogfHwga2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5ZKSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9rZXkgPSBrZXk7XG4gICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5zZWxlY3Rpb25FbmQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcignY29tcG9zaXRpb25zdGFydCcpXG4gICAgcHVibGljIG9uQ29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb21wb3NpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvc2l0aW9uU3RhcnRJbmRleCA9IHRoaXMuX3N0YXJ0O1xuICAgICAgICAgICAgdGhpcy5fY29tcG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJylcbiAgICBwdWJsaWMgb25Db21wb3NpdGlvbkVuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLl9jb21wb3NpdGlvblN0YXJ0SW5kZXg7XG4gICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuc2VsZWN0aW9uRW5kO1xuICAgICAgICBjb25zdCB2YWx1ZVRvUGFyc2UgPSB0aGlzLmlucHV0VmFsdWUuc3Vic3RyaW5nKHRoaXMuX3N0YXJ0LCBlbmQpO1xuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0KHZhbHVlVG9QYXJzZSk7XG4gICAgICAgIHRoaXMuX2VuZCA9IHRoaXMuc2VsZWN0aW9uRW5kO1xuICAgICAgICB0aGlzLl9jb21wb3NpdGlvblZhbHVlID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZWQoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqICchdGhpcy5fZm9jdXNlZCcgaXMgYSBmaXggZm9yICM4MTY1XG4gICAgICAgICAqIE9uIHBhZ2UgbG9hZCBJRSB0cmlnZ2VycyBpbnB1dCBldmVudHMgYmVmb3JlIGZvY3VzIGV2ZW50cyBhbmRcbiAgICAgICAgICogaXQgZG9lcyBzbyBmb3IgZXZlcnkgc2luZ2xlIGlucHV0IG9uIHRoZSBwYWdlLlxuICAgICAgICAgKiBUaGUgbWFzayBuZWVkcyB0byBiZSBwcmV2ZW50ZWQgZnJvbSBkb2luZyBhbnl0aGluZyB3aGlsZSB0aGlzIGlzIGhhcHBlbmluZyBiZWNhdXNlXG4gICAgICAgICAqIHRoZSBlbmQgdXNlciB3aWxsIGJlIHVuYWJsZSB0byBibHVyIHRoZSBpbnB1dC5cbiAgICAgICAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjE0MDYxMzgvaW5wdXQtZXZlbnQtdHJpZ2dlcmVkLW9uLWludGVybmV0LWV4cGxvcmVyLXdoZW4tcGxhY2Vob2xkZXItY2hhbmdlZFxuICAgICAgICAgKi9cblxuICAgICAgICBpZiAodGhpcy5fY29tcG9zaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFZhbHVlLmxlbmd0aCA8IHRoaXMuX29sZFRleHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgLy8gc29mdHdhcmUga2V5Ym9hcmQgaW5wdXQgZGVsZXRlXG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5ID0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQkFDS1NQQUNFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlIGNvbXBvc2l0aW9uZW5kIGV2ZW50IENocm9taXVtIHRyaWdnZXJzIGlucHV0IGV2ZW50cyBvZiB0eXBlICdkZWxldGVDb250ZW50QmFja3dhcmQnIGFuZFxuICAgICAgICAvLyB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgc3RhcnQgYW5kIGVuZCBpbmRleGVzIHRvIGluY2x1ZGUgbWFzayBsaXRlcmFsc1xuICAgICAgICBpZiAoZXZlbnQuaW5wdXRUeXBlID09PSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJyAmJiB0aGlzLl9rZXkgIT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLkJBQ0tTUEFDRSkge1xuICAgICAgICAgICAgY29uc3QgaXNJbnB1dENvbXBsZXRlID0gdGhpcy5fY29tcG9zaXRpb25TdGFydEluZGV4ID09PSAwICYmIHRoaXMuX2VuZCA9PT0gdGhpcy5tYXNrLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBudW1iZXJPZk1hc2tMaXRlcmFscyA9IDA7XG4gICAgICAgICAgICBjb25zdCBsaXRlcmFsUG9zID0gcGFyc2VNYXNrKHRoaXMubWFza09wdGlvbnMuZm9ybWF0KS5saXRlcmFscy5rZXlzKCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGxpdGVyYWxQb3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5fY29tcG9zaXRpb25TdGFydEluZGV4ICYmIGluZGV4IDw9IHRoaXMuX2VuZCkge1xuICAgICAgICAgICAgICAgICAgICBudW1iZXJPZk1hc2tMaXRlcmFscysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGlzSW5wdXRDb21wbGV0ZSA/XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlLnN1YnN0cmluZygwLCB0aGlzLnNlbGVjdGlvbkVuZCAtIG51bWJlck9mTWFza0xpdGVyYWxzKSArIHRoaXMuaW5wdXRWYWx1ZS5zdWJzdHJpbmcodGhpcy5zZWxlY3Rpb25FbmQpXG4gICAgICAgICAgICAgICAgOiB0aGlzLl9jb21wb3NpdGlvblZhbHVlPy5zdWJzdHJpbmcoMCwgdGhpcy5fY29tcG9zaXRpb25TdGFydEluZGV4KSB8fCB0aGlzLmlucHV0VmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wb3NpdGlvblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgIHRoaXMuX2VuZCA9IHRoaXMuc2VsZWN0aW9uRW5kO1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IGlzSW5wdXRDb21wbGV0ZSA/IHRoaXMuX3N0YXJ0IC0gbnVtYmVyT2ZNYXNrTGl0ZXJhbHMgOiB0aGlzLl9jb21wb3NpdGlvblN0YXJ0SW5kZXg7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHRoaXMuX2VuZCAtIG51bWJlck9mTWFza0xpdGVyYWxzO1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSB0aGlzLl9lbmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnQgPSB0aGlzLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgIHRoaXMuX2VuZCA9IHRoaXMuc2VsZWN0aW9uRW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2hhc0Ryb3BBY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZVRvUGFyc2UgPSAnJztcbiAgICAgICAgc3dpdGNoICh0aGlzLl9rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuREVMRVRFOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VuZCA9IHRoaXMuX3N0YXJ0ID09PSB0aGlzLl9lbmQgPyArK3RoaXMuX2VuZCA6IHRoaXMuX2VuZDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQkFDS1NQQUNFOlxuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdmFsdWVUb1BhcnNlID0gdGhpcy5pbnB1dFZhbHVlLnN1YnN0cmluZyh0aGlzLl9zdGFydCwgdGhpcy5zZWxlY3Rpb25FbmQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dCh2YWx1ZVRvUGFyc2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigncGFzdGUnKVxuICAgIHB1YmxpYyBvblBhc3RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbGRUZXh0ID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuc2VsZWN0aW9uU3RhcnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93TWFzayh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICAgIHB1YmxpYyBvbkJsdXIodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0Rpc3BsYXlWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInKVxuICAgIHB1YmxpYyBvbkRyYWdFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb2N1c2VkICYmICF0aGlzLl9kYXRhVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd01hc2sodGhpcy5fZGF0YVZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJylcbiAgICBwdWJsaWMgb25EcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93RGlzcGxheVZhbHVlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYXNEcm9wQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZHJvcHBlZERhdGEgPSBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKHRoaXMubWFza09wdGlvbnMuZm9ybWF0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBSZW1vdmUgYWZ0ZXIgZGF0ZS90aW1lIHBpY2tlciBpbnRlZ3JhdGlvbiByZWZhY3RvclxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jb21wb3NpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vbGRUZXh0ID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcm9tcHRDaGFyICYmIHRoaXMucHJvbXB0Q2hhci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tPcHRpb25zLnByb21wdENoYXIgPSB0aGlzLnByb21wdENoYXIuc3Vic3RyaW5nKDAsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWUgPyB0aGlzLm1hc2tQYXJzZXIuYXBwbHlNYXNrKHZhbHVlLCB0aGlzLm1hc2tPcHRpb25zKSA6ICcnO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWVQaXBlKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmRpc3BsYXlWYWx1ZVBpcGUudHJhbnNmb3JtKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kYXRhVmFsdWUgPSB0aGlzLmluY2x1ZGVMaXRlcmFscyA/IHRoaXMuaW5wdXRWYWx1ZSA6IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoeyByYXdWYWx1ZTogdmFsdWUsIGZvcm1hdHRlZFZhbHVlOiB0aGlzLmlucHV0VmFsdWUgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBzaG93TWFzayh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRWYWx1ZVBpcGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE8oRC5QLik6IGZvY3VzZWRWYWx1ZVBpcGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWQgb3IgZm9yY2UtY2hlY2tlZCB0byBtYXRjaCBtYXNrIGZvcm1hdFxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5mb2N1c2VkVmFsdWVQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLm1hc2tQYXJzZXIuYXBwbHlNYXNrKHZhbHVlLCB0aGlzLm1hc2tPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29sZFRleHQgPSB0aGlzLmlucHV0VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIgPSBzdGFydCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgYWZ0ZXJJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb2xkVGV4dCA9IHRoaXMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdGhpcy5faGFzRHJvcEFjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGFydCA9IDA7XG4gICAgICAgIHRoaXMuX2VuZCA9IDA7XG4gICAgICAgIHRoaXMuX2tleSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2NvbXBvc2luZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHNldFBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXI7XG4gICAgICAgIGlmICghcGxhY2Vob2xkZXIgfHwgcGxhY2Vob2xkZXIgPT09IHRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAncGxhY2Vob2xkZXInLCBwYXJzZU1hc2sodmFsdWUgPz8gJycpLm1hc2sgfHwgdGhpcy5kZWZhdWx0TWFzayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93TWFzayh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZGlzcGxheVZhbHVlUGlwZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5pbnB1dFZhbHVlID8gdGhpcy5tYXNrUGFyc2VyLmFwcGx5TWFzayh2YWx1ZSwgdGhpcy5tYXNrT3B0aW9ucykgOiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5wdXQodmFsdWVUb1BhcnNlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcmVwbGFjZWREYXRhID0gdGhpcy5tYXNrUGFyc2VyLnJlcGxhY2VJbk1hc2sodGhpcy5fb2xkVGV4dCwgdmFsdWVUb1BhcnNlLCB0aGlzLm1hc2tPcHRpb25zLCB0aGlzLl9zdGFydCwgdGhpcy5fZW5kKTtcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmVwbGFjZWREYXRhLnZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fa2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5CQUNLU1BBQ0UpIHtcbiAgICAgICAgICAgIHJlcGxhY2VkRGF0YS5lbmQgPSB0aGlzLl9zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UocmVwbGFjZWREYXRhLmVuZCk7XG5cbiAgICAgICAgY29uc3QgcmF3VmFsID0gdGhpcy5tYXNrUGFyc2VyLnBhcnNlVmFsdWVGcm9tTWFzayh0aGlzLmlucHV0VmFsdWUsIHRoaXMubWFza09wdGlvbnMpO1xuICAgICAgICB0aGlzLl9kYXRhVmFsdWUgPSB0aGlzLmluY2x1ZGVMaXRlcmFscyA/IHRoaXMuaW5wdXRWYWx1ZSA6IHJhd1ZhbDtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLl9kYXRhVmFsdWUpO1xuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoeyByYXdWYWx1ZTogcmF3VmFsLCBmb3JtYXR0ZWRWYWx1ZTogdGhpcy5pbnB1dFZhbHVlIH0pO1xuICAgICAgICB0aGlzLmFmdGVySW5wdXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dEaXNwbGF5VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWVQaXBlKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmRpc3BsYXlWYWx1ZVBpcGUudHJhbnNmb3JtKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdGhpcy5tYXNrUGFyc2VyLmFwcGx5TWFzayhudWxsLCB0aGlzLm1hc2tPcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVGhlIElneE1hc2tNb2R1bGUgcHJvdmlkZXMgdGhlIHtAbGluayBJZ3hNYXNrRGlyZWN0aXZlfSBpbnNpZGUgeW91ciBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWFza0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICByYXdWYWx1ZTogc3RyaW5nO1xuICAgIGZvcm1hdHRlZFZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKiBAaGlkZGVuICovXG5cbiJdfQ==
|
|
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
|
|
7
7
|
*/
|
|
8
8
|
export class IgxMaskModule {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskModule, imports: [IgxMaskDirective], exports: [IgxMaskDirective] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskModule }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxMaskModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
imports: [IgxMaskDirective],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, HostBinding, Input } from '@angular/core';
|
|
1
|
+
import { Directive, HostBinding, Input, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { IgxToggleDirective } from '../toggle/toggle.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class IgxNotificationsDirective extends IgxToggleDirective {
|
|
@@ -71,10 +71,10 @@ export class IgxNotificationsDirective extends IgxToggleDirective {
|
|
|
71
71
|
clearTimeout(this.timeoutId);
|
|
72
72
|
super.close();
|
|
73
73
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
75
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxNotificationsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
75
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxNotificationsDirective, inputs: { ariaLive: "ariaLive", autoHide: ["autoHide", "autoHide", booleanAttribute], displayTime: "displayTime", outlet: "outlet", isVisible: ["isVisible", "isVisible", booleanAttribute] }, host: { properties: { "attr.aria-live": "this.ariaLive" } }, usesInheritance: true, ngImport: i0 }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxNotificationsDirective, decorators: [{
|
|
78
78
|
type: Directive
|
|
79
79
|
}], propDecorators: { ariaLive: [{
|
|
80
80
|
type: HostBinding,
|
|
@@ -82,12 +82,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
82
82
|
}, {
|
|
83
83
|
type: Input
|
|
84
84
|
}], autoHide: [{
|
|
85
|
-
type: Input
|
|
85
|
+
type: Input,
|
|
86
|
+
args: [{ transform: booleanAttribute }]
|
|
86
87
|
}], displayTime: [{
|
|
87
88
|
type: Input
|
|
88
89
|
}], outlet: [{
|
|
89
90
|
type: Input
|
|
90
91
|
}], isVisible: [{
|
|
91
|
-
type: Input
|
|
92
|
+
type: Input,
|
|
93
|
+
args: [{ transform: booleanAttribute }]
|
|
92
94
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZHLE9BQU8sRUFBNkIsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHM0YsTUFBTSxPQUFnQix5QkFBMEIsU0FBUSxrQkFBa0I7SUFEMUU7O1FBR0k7OztXQUdHO1FBR0ksYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUUzQjs7O1dBR0c7UUFFSSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXZCOzs7O1dBSUc7UUFFSSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQWdDMUI7OztXQUdHO1FBQ0ksZ0JBQVcsR0FBRyxFQUFFLENBQUM7S0EwQzNCO0lBbkVHOzs7T0FHRztJQUNILElBQ1csU0FBUztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsS0FBSztRQUN0QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksS0FBSyxFQUFFO2dCQUNQLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQztJQWtCRDs7T0FFRztJQUNhLElBQUk7UUFDaEIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QixNQUFNLGVBQWUsR0FBb0I7WUFDckMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDL0IsYUFBYSxFQUFFLEtBQUs7WUFDcEIsbUJBQW1CLEVBQUUsS0FBSztZQUMxQixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDO1FBRUYsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNhLEtBQUs7UUFDakIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQzttSEFwR2lCLHlCQUF5Qjt1R0FBekIseUJBQXlCLHFFQWN2QixnQkFBZ0IsdUZBd0JoQixnQkFBZ0I7O2dHQXRDbEIseUJBQXlCO2tCQUQ5QyxTQUFTOzhCQVNDLFFBQVE7c0JBRmQsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixLQUFLO2dCQVFDLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTL0IsV0FBVztzQkFEakIsS0FBSztnQkFVQyxNQUFNO3NCQURaLEtBQUs7Z0JBUUssU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUb2dnbGVWaWV3IH0gZnJvbSAnLi4vLi4vY29yZS9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IElQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWd4Tm90aWZpY2F0aW9uc0RpcmVjdGl2ZSBleHRlbmRzIElneFRvZ2dsZURpcmVjdGl2ZVxuICAgIGltcGxlbWVudHMgSVRvZ2dsZVZpZXcsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBgYXJpYS1saXZlYCBhdHRyaWJ1dGUuXG4gICAgICogSWYgbm90IHNldCwgYGFyaWEtbGl2ZWAgd2lsbCBoYXZlIHZhbHVlIGBcInBvbGl0ZVwiYC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1saXZlJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGl2ZSA9ICdwb2xpdGUnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGVsZW1lbnQgd2lsbCBiZSBoaWRkZW4gYWZ0ZXIgdGhlIGBkaXNwbGF5VGltZWAgaXMgb3Zlci5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGB0cnVlYC5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgYXV0b0hpZGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBkdXJhdGlvbiBvZiB0aW1lIHNwYW4gKGluIG1pbGxpc2Vjb25kcykgd2hpY2ggdGhlIGVsZW1lbnQgd2lsbCBiZSB2aXNpYmxlXG4gICAgICogYWZ0ZXIgaXQgaXMgYmVpbmcgc2hvd24uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgNDAwMGAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheVRpbWUgPSA0MDAwO1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSBjb250YWluZXIgdXNlZCBmb3IgdGhlIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqICBgb3V0bGV0YCBpcyBhbiBpbnN0YW5jZSBvZiBgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZWAgb3IgYW4gYEVsZW1lbnRSZWZgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG91dGxldDogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZSB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9EaXNhYmxlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCB0aGUgYGlzVmlzaWJsZWAgYXR0cmlidXRlIHdpbGwgaGF2ZSB2YWx1ZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBnZXQgaXNWaXNpYmxlKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaXNWaXNpYmxlKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHRleHRNZXNzYWdlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHRpbWVvdXRJZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdHJhdGVneTogSVBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG9wZW4oKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SWQpO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlTZXR0aW5nczogT3ZlcmxheVNldHRpbmdzID0ge1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zdHJhdGVneSxcbiAgICAgICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuICAgICAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogZmFsc2UsXG4gICAgICAgICAgICBtb2RhbDogZmFsc2UsXG4gICAgICAgICAgICBvdXRsZXQ6IHRoaXMub3V0bGV0XG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIub3BlbihvdmVybGF5U2V0dGluZ3MpO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dG9IaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9LCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSBlbGVtZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBjbG9zZSgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICAgICAgc3VwZXIuY2xvc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* @hidden
|
|
5
5
|
*/
|
|
6
6
|
export class IgxPrefixDirective {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxPrefixDirective, isStandalone: true, selector: "igx-prefix,[igxPrefix],[igxStart]", ngImport: i0 }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxPrefixDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: 'igx-prefix,[igxPrefix],[igxStart]',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContentChildren, Directive, EventEmitter, HostBinding, HostListener, Input, Optional, Output, Self } from '@angular/core';
|
|
1
|
+
import { ContentChildren, Directive, EventEmitter, HostBinding, HostListener, Input, Optional, Output, Self, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { fromEvent, noop, Subject } from 'rxjs';
|
|
4
4
|
import { startWith, takeUntil } from 'rxjs/operators';
|
|
@@ -88,7 +88,7 @@ export class IgxRadioGroupDirective {
|
|
|
88
88
|
return this._required;
|
|
89
89
|
}
|
|
90
90
|
set required(value) {
|
|
91
|
-
this._required = value
|
|
91
|
+
this._required = value;
|
|
92
92
|
this._setRadioButtonsRequired();
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
@@ -124,7 +124,7 @@ export class IgxRadioGroupDirective {
|
|
|
124
124
|
return this._invalid;
|
|
125
125
|
}
|
|
126
126
|
set invalid(value) {
|
|
127
|
-
this._invalid = value
|
|
127
|
+
this._invalid = value;
|
|
128
128
|
this._setRadioButtonsInvalid();
|
|
129
129
|
}
|
|
130
130
|
handleClick(event) {
|
|
@@ -527,10 +527,10 @@ export class IgxRadioGroupDirective {
|
|
|
527
527
|
});
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
531
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
530
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioGroupDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.IgxDirectionality }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
531
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxRadioGroupDirective, isStandalone: true, selector: "igx-radio-group, [igxRadioGroup]", inputs: { value: "value", name: "name", required: ["required", "required", booleanAttribute], selected: "selected", invalid: ["invalid", "invalid", booleanAttribute], alignment: "alignment" }, outputs: { change: "change" }, host: { listeners: { "click": "handleClick($event)", "keydown": "handleKeyDown($event)" }, properties: { "class.igx-radio-group": "this.cssClass", "class.igx-radio-group--vertical": "this.vertical" } }, queries: [{ propertyName: "radioButtons", predicate: IgxRadioComponent, descendants: true }], exportAs: ["igxRadioGroup"], ngImport: i0 }); }
|
|
532
532
|
}
|
|
533
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioGroupDirective, decorators: [{
|
|
534
534
|
type: Directive,
|
|
535
535
|
args: [{
|
|
536
536
|
exportAs: 'igxRadioGroup',
|
|
@@ -549,11 +549,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
549
549
|
}], name: [{
|
|
550
550
|
type: Input
|
|
551
551
|
}], required: [{
|
|
552
|
-
type: Input
|
|
552
|
+
type: Input,
|
|
553
|
+
args: [{ transform: booleanAttribute }]
|
|
553
554
|
}], selected: [{
|
|
554
555
|
type: Input
|
|
555
556
|
}], invalid: [{
|
|
556
|
-
type: Input
|
|
557
|
+
type: Input,
|
|
558
|
+
args: [{ transform: booleanAttribute }]
|
|
557
559
|
}], change: [{
|
|
558
560
|
type: Output
|
|
559
561
|
}], cssClass: [{
|
|
@@ -571,4 +573,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
571
573
|
}], alignment: [{
|
|
572
574
|
type: Input
|
|
573
575
|
}] } });
|
|
574
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvcmFkaW8vcmFkaW8tZ3JvdXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxlQUFlLEVBQUUsU0FBUyxFQUFXLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFhLElBQUksRUFDcEksTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJaEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUM7SUFDdEMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFFLFVBQVU7Q0FDdkIsQ0FBQyxDQUFDO0FBR0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBYS9COzs7Ozs7O09BT0c7SUFDSCxJQUNXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLFFBQWE7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxRQUFnQjtRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUNXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBSSxLQUFhLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxJQUNXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLFFBQWtDO1FBQ2xELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNqRDtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFDVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUksS0FBYSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUM7UUFDL0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQXNDUyxXQUFXLENBQUMsS0FBaUI7UUFDbkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUdTLGFBQWEsQ0FBQyxLQUFvQjtRQUN4QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUM7WUFFakQsUUFBUSxHQUFHLEVBQUU7Z0JBQ1QsS0FBSyxTQUFTO29CQUNWLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDWixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssWUFBWTtvQkFDYixLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWO29CQUNJLEtBQUssSUFBSSxDQUFDLENBQUM7YUFDbEI7WUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDO2dCQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMxQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUUxQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDckIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN0QixJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztpQkFDM0I7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQ1csU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBQ3pGLENBQUM7SUFDRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBVyxTQUFTLENBQUMsS0FBMEI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEtBQUssbUJBQW1CLENBQUMsUUFBUSxDQUFDO0lBQzNELENBQUM7SUFnREQ7OztPQUdHO0lBQ0ksa0JBQWtCO1FBQ3JCLDJFQUEyRTtRQUMzRSxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBR0gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3pCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7aUJBQzdDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7O01BR0U7SUFDSyxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO2dCQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0U7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqQyxNQUFNLENBQUMsU0FBUztxQkFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBRVAsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO3FCQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDOUIsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO29CQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUM3QixDQUFDLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFFdkIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUN2QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxLQUFvQjtRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRTtvQkFDbkIsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQzFCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxlQUFlO1FBQ25CLDBEQUEwRDtRQUMxRCx3Q0FBd0M7UUFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXZELElBQUksT0FBTyxFQUFFO2dCQUNULElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2pDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztvQkFFbkMsSUFBSSxNQUFNLEtBQUssT0FBTyxFQUFFO3dCQUNwQixNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDbkMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7cUJBQzFCO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDSjtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFVBQVUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEVBQW9CO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksaUJBQWlCLENBQUMsRUFBYztRQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQytCLFNBQW9CLEVBQ3ZDLGVBQWtDLEVBQ2xDLEdBQXNCO1FBRkgsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2VWxDOzs7Ozs7Ozs7O1dBVUc7UUFDSCw0REFBNEQ7UUFDbEMsV0FBTSxHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV4SDs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxpQkFBaUIsQ0FBQztRQUVwQzs7Ozs7Ozs7V0FRRztRQUVLLGFBQVEsR0FBRyxLQUFLLENBQUM7UUF1RnpCOzs7V0FHRztRQUNLLHNCQUFpQixHQUFxQixJQUFJLENBQUM7UUFDbkQ7OztXQUdHO1FBQ0ssVUFBSyxHQUFHLG1CQUFtQixNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzlDOzs7V0FHRztRQUNLLFdBQU0sR0FBUSxJQUFJLENBQUM7UUFDM0I7OztXQUdHO1FBQ0ssY0FBUyxHQUE2QixJQUFJLENBQUM7UUFDbkQ7OztXQUdHO1FBQ0ssbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDL0I7OztXQUdHO1FBQ0ssY0FBUyxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOzs7V0FHRztRQUNLLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzFDOzs7V0FHRztRQUNLLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQXFLakMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssaUJBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixNQUFNLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRTdCLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUM5QixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQzNCO2dCQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQy9CLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDJCQUEyQixDQUFDLElBQThCO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO2FBQzNDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxrQkFBa0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7b0JBQ3RCLHVDQUF1QztvQkFDdkMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO3dCQUNoQixNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztxQkFDMUI7aUJBQ0o7cUJBQU07b0JBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUU7d0JBQzlCLGtCQUFrQjt3QkFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTs0QkFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7eUJBQzNCO3dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFOzRCQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt5QkFDekI7cUJBQ0o7eUJBQU07d0JBQ0gsc0JBQXNCO3dCQUN0QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7NEJBQ2hCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3lCQUMxQjtxQkFDSjtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssd0JBQXdCO1FBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzttSEFoakJRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHFlQVdkLGlCQUFpQjs7Z0dBWHpCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFxYlEsUUFBUTs7MEJBQUksSUFBSTt5R0F6YTZDLFlBQVk7c0JBQTdFLGVBQWU7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVc5QyxLQUFLO3NCQURmLEtBQUs7Z0JBb0JLLElBQUk7c0JBRGQsS0FBSztnQkF1QkssUUFBUTtzQkFEbEIsS0FBSztnQkFtQkssUUFBUTtzQkFEbEIsS0FBSztnQkF1QkssT0FBTztzQkFEakIsS0FBSztnQkFxQm9CLE1BQU07c0JBQS9CLE1BQU07Z0JBU0EsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFhNUIsUUFBUTtzQkFEZixXQUFXO3VCQUFDLGlDQUFpQztnQkFJcEMsV0FBVztzQkFEcEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVXZCLGFBQWE7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBEeEIsU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBEb0NoZWNrLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG5vb3AsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5pbXBvcnQgeyBJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIFJhZGlvIEdyb3VwIGFsaWdubWVudFxuICovXG5leHBvcnQgY29uc3QgUmFkaW9Hcm91cEFsaWdubWVudCA9IG1rZW51bSh7XG4gICAgaG9yaXpvbnRhbDogJ2hvcml6b250YWwnLFxuICAgIHZlcnRpY2FsOiAndmVydGljYWwnXG59KTtcbmV4cG9ydCB0eXBlIFJhZGlvR3JvdXBBbGlnbm1lbnQgPSB0eXBlb2YgUmFkaW9Hcm91cEFsaWdubWVudFtrZXlvZiB0eXBlb2YgUmFkaW9Hcm91cEFsaWdubWVudF07XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIFJhZGlvIGdyb3VwIGRpcmVjdGl2ZSByZW5kZXJzIHNldCBvZiByYWRpbyBidXR0b25zLlxuICpcbiAqIEBpZ3hNb2R1bGUgSWd4UmFkaW9Nb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LXJhZGlvLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIHJhZGlvZ3JvdXAsIHJhZGlvLCBidXR0b24sIGlucHV0XG4gKlxuICogQGlneEdyb3VwIERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBJZ25pdGUgVUkgUmFkaW8gR3JvdXAgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhbiBhdmFpbGFibGUgc2V0IG9mIG9wdGlvbnMgdGhhdCBhcmUgbGlzdGVkIHNpZGUgYnkgc2lkZS5cbiAqXG4gKiBAZXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtcmFkaW8tZ3JvdXAgbmFtZT1cInJhZGlvR3JvdXBcIj5cbiAqICAgPGlneC1yYWRpbyAqbmdGb3I9XCJsZXQgaXRlbSBvZiBbJ0ZvbycsICdCYXInLCAnQmF6J11cIiB2YWx1ZT1cInt7aXRlbX19XCI+XG4gKiAgICAgIHt7aXRlbX19XG4gKiAgIDwvaWd4LXJhZGlvPlxuICogPC9pZ3gtcmFkaW8tZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgZXhwb3J0QXM6ICdpZ3hSYWRpb0dyb3VwJyxcbiAgICBzZWxlY3RvcjogJ2lneC1yYWRpby1ncm91cCwgW2lneFJhZGlvR3JvdXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFJhZGlvR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICBwcml2YXRlIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogYm9vbGVhbiB8ICcnO1xuICAgIHByaXZhdGUgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2ludmFsaWQ6IGJvb2xlYW4gfCAnJztcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHJlZmVyZW5jZSB0byB0aGUgY2hpbGQgcmFkaW8gYnV0dG9ucy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCByYWRpb0J1dHRvbnMgPSAgdGhpcy5yYWRpb0dyb3VwLnJhZGlvQnV0dG9ucztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneFJhZGlvQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHB1YmxpYyByYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hSYWRpb0NvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGB2YWx1ZWAgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBbdmFsdWVdID0gXCIncmFkaW9CdXR0b25WYWx1ZSdcIj48L2lneC1yYWRpby1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdFJhZGlvQnV0dG9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBuYW1lYCBhdHRyaWJ1dGUgb2YgdGhlIHJhZGlvIGdyb3VwIGNvbXBvbmVudC4gQWxsIGNoaWxkIHJhZGlvIGJ1dHRvbnMgaW5oZXJpdHMgdGhpcyBuYW1lLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBuYW1lID0gXCJSYWRpbzFcIj48L2lneC1yYWRpby1ncm91cD5cbiAgICAgKiAgYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbmFtZShuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYW1lICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fc2V0UmFkaW9CdXR0b25OYW1lcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIHJlcXVpcmVkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBJZiBub3Qgc2V0LCBgcmVxdWlyZWRgIHdpbGwgaGF2ZSB2YWx1ZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBbcmVxdWlyZWRdID0gXCJ0cnVlXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSAodmFsdWUgYXMgYW55KSA9PT0gJycgfHwgdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldFJhZGlvQnV0dG9uc1JlcXVpcmVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBzZWxlY3RlZCBjaGlsZCByYWRpbyBidXR0b24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgc2VsZWN0ZWRCdXR0b24gPSB0aGlzLnJhZGlvR3JvdXAuc2VsZWN0ZWQ7XG4gICAgICogdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID0gc2VsZWN0ZWRCdXR0b247XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IElneFJhZGlvQ29tcG9uZW50IHwgbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkID8gc2VsZWN0ZWQudmFsdWUgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIGludmFsaWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIG5vdCBzZXQsIGBpbnZhbGlkYCB3aWxsIGhhdmUgdmFsdWUgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8tZ3JvdXAgW2ludmFsaWRdID0gXCJ0cnVlXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZhbGlkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGludmFsaWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faW52YWxpZCA9ICh2YWx1ZSBhcyBhbnkpID09PSAnJyB8fCB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc2V0UmFkaW9CdXR0b25zSW52YWxpZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCBhZnRlciB0aGUgcmFkaW8gZ3JvdXAgYHZhbHVlYCBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyByZWZlcmVuY2VzIHRvIHRoZSBzZWxlY3RlZCBgSWd4UmFkaW9Db21wb25lbnRgIGFuZCB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBhcyBldmVudCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvLWdyb3VwIChjaGFuZ2UpPVwiaGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3NzIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpby1ncm91cCcpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1yYWRpby1ncm91cCc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHZlcnRpY2FsIGFsaWdubWVudCB0byB0aGUgcmFkaW8gZ3JvdXAsIGlmIGBhbGlnbm1lbnRgIGlzIHNldCB0byBgdmVydGljYWxgLlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIGFsaWdubWVudCBpcyBob3Jpem9udGFsLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBhbGlnbm1lbnQ9XCJ2ZXJ0aWNhbFwiPjwvaWd4LXJhZGlvLWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXJhZGlvLWdyb3VwLS12ZXJ0aWNhbCcpXG4gICAgcHJpdmF0ZSB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLnJhZGlvQnV0dG9ucy5maWx0ZXIocmFkaW8gPT4gIXJhZGlvLmRpc2FibGVkKTtcbiAgICAgICAgY29uc3QgY2hlY2tlZCA9IGJ1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpO1xuXG4gICAgICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gY2hlY2tlZCA/IGJ1dHRvbnMuaW5kZXhPZihjaGVja2VkISkgOiAtMTtcbiAgICAgICAgICAgIGNvbnN0IGx0ciA9IHRoaXMuX2RpcmVjdGlvbmFsaXR5LnZhbHVlID09PSAnbHRyJztcblxuICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gLTE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IGx0ciA/IC0xIDogMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IGx0ciA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGluZGV4IDwgMCkgaW5kZXggPSBidXR0b25zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiBidXR0b25zLmxlbmd0aCAtIDEpIGluZGV4ID0gMDtcblxuICAgICAgICAgICAgYnV0dG9ucy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICAgICAgICAgIHJhZGlvLmRlc2VsZWN0KCk7XG4gICAgICAgICAgICAgICAgcmFkaW8ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYnV0dG9uc1tpbmRleF0uZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICBidXR0b25zW2luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICBidXR0b25zW2luZGV4XS5zZWxlY3QoKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIlRhYlwiKSB7XG4gICAgICAgICAgICBidXR0b25zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJhZGlvICE9PSBjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYWxpZ25tZW50IG9mIHRoZSBgaWd4LXJhZGlvLWdyb3VwYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15UmFkaW9Hcm91cFwiKVxuICAgICAqIHB1YmxpYyByYWRpb0dyb3VwOiBJZ3hSYWRpb0dyb3VwRGlyZWN0aXZlO1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCByYWRpb0FsaWdubWVudCA9IHRoaXMucmFkaW9Hcm91cC5hbGlnbm1lbnQ7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBhbGlnbm1lbnQoKTogUmFkaW9Hcm91cEFsaWdubWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZlcnRpY2FsID8gUmFkaW9Hcm91cEFsaWdubWVudC52ZXJ0aWNhbCA6IFJhZGlvR3JvdXBBbGlnbm1lbnQuaG9yaXpvbnRhbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIHJhZGlvIGdyb3VwIGFsaWdubWVudC5cbiAgICAgKiBBdmFpbGFibGUgb3B0aW9ucyBhcmUgYFJhZGlvR3JvdXBBbGlnbm1lbnQuaG9yaXpvbnRhbGAgKGRlZmF1bHQpIGFuZCBgUmFkaW9Hcm91cEFsaWdubWVudC52ZXJ0aWNhbGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBhbGlnbm1lbnQgPSBSYWRpb0dyb3VwQWxpZ25tZW50LnZlcnRpY2FsO1xuICAgICAqIC8vLi5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBbYWxpZ25tZW50XT1cImFsaWdubWVudFwiPjwvaWd4LXJhZGlvLWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgYWxpZ25tZW50KHZhbHVlOiBSYWRpb0dyb3VwQWxpZ25tZW50KSB7XG4gICAgICAgIHRoaXMudmVydGljYWwgPSB2YWx1ZSA9PT0gUmFkaW9Hcm91cEFsaWdubWVudC52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX25hbWUgPSBgaWd4LXJhZGlvLWdyb3VwLSR7bmV4dElkKyt9YDtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IG51bGw7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkOiBJZ3hSYWRpb0NvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludmFsaWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgcXVlcnlDaGFuZ2UkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBjYW4gcG9zc2libHkgYmUgc2V0IGJ5IE5nTW9kZWwgYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXRcbiAgICAgICAgLy8gdGhlIE9uSW5pdCBvZiB0aGUgTmdNb2RlbCBvY2N1cnMgYWZ0ZXIgdGhlIE9uSW5pdCBvZiB0aGlzIGNsYXNzLlxuICAgICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5Q2hhbmdlJC5uZXh0KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2luaXRSYWRpb0J1dHRvbnMoKSk7XG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yIHx8IHRoaXMubmdDb250cm9sLmNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5ibHVyUmFkaW9cbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlPbkJsdXIoKVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGZyb21FdmVudChidXR0b24ubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPbktleVVwKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRpdHlPbkJsdXIoKSB7XG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgYnV0dG9uLmZvY3VzZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlT25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBjaGVja2VkID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCh4ID0+IHguY2hlY2tlZCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJUYWJcIikge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmFkaW8gPT09IGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZC5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRhYkluZGV4KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlVGFiSW5kZXgoKSB7XG4gICAgICAgIC8vIE5lZWRlZCBzbyB0aGF0IHRoZSBrZXlib2FyZCBuYXZpZ2F0aW9uIG9mIGEgcmFkaW8gZ3JvdXBcbiAgICAgICAgLy8gcGxhY2VkIGluc2lkZSBhIGRpYWxvZyB3b3JrcyBwcm9wZXJseVxuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSB0aGlzLnJhZGlvQnV0dG9ucy5maW5kKHggPT4geC5jaGVja2VkKTtcblxuICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZC5uYXRpdmVFbGVtZW50LnRhYkluZGV4ID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoYnV0dG9uICE9PSBjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgXCJjaGVja2VkXCIgcHJvcGVydHkgdmFsdWUgb24gdGhlIHJhZGlvIGlucHV0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBjb25zaXN0ZW50IHRvIHRoZSBjdXJyZW50IHJhZGlvIGJ1dHRvbi5cbiAgICAgKiBJZiBpdCBpcywgdGhlIGNoZWNrZWQgYXR0cmlidXRlIHdpbGwgaGF2ZSB2YWx1ZSBgdHJ1ZWAgYW5kIHNlbGVjdGVkIHByb3BlcnR5IHdpbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgYElneFJhZGlvQ29tcG9uZW50YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMucmFkaW9Hcm91cC53cml0ZVZhbHVlKCdyYWRpb0J1dHRvblZhbHVlJyk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgdmFsdWUgY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgaXMgdG91Y2hlZC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICBidXR0b24ucmVnaXN0ZXJPblRvdWNoZWQoZm4pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByaXZhdGUgX2RpcmVjdGlvbmFsaXR5OiBJZ3hEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2luaXRSYWRpb0J1dHRvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSB7IG5hbWU6IHRoaXMuX25hbWUsIHJlcXVpcmVkOiB0aGlzLl9yZXF1aXJlZCB9O1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihidXR0b24sIHByb3BzKTtcblxuICAgICAgICAgICAgICAgIGlmIChidXR0b24udmFsdWUgPT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBidXR0b247XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJ1dHRvbi5jaGFuZ2UucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKGJ1dHRvbi5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMucXVlcnlDaGFuZ2UkKVxuICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChldikgPT4gdGhpcy5fc2VsZWN0ZWRSYWRpb0J1dHRvbkNoYW5nZWQoZXYpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkUmFkaW9CdXR0b25DaGFuZ2VkKGFyZ3M6IElDaGFuZ2VDaGVja2JveEV2ZW50QXJncykge1xuICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgIGJ1dHRvbi5jaGVja2VkID0gYnV0dG9uLmlkID09PSBhcmdzLm93bmVyLmlkO1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5jaGVja2VkICYmIGJ1dHRvbi5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWQgPSBidXR0b24ubmdDb250cm9sLmludmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGJ1dHRvbi5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gYXJncy5vd25lcjtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBhcmdzLnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXRSYWRpb0J1dHRvbk5hbWVzKCkge1xuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5uYW1lID0gdGhpcy5fbmFtZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbGVjdFJhZGlvQnV0dG9uKCkge1xuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBubyB2YWx1ZSAtIHVuY2hlY2sgYWxsIHJhZGlvIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlID09PSBidXR0b24udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICE9PSBidXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGJ1dHRvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFidXR0b24uY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbi1zZWxlY3RlZCBidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidXR0b24uY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXRSYWRpb0J1dHRvbnNSZXF1aXJlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICBidXR0b24ucmVxdWlyZWQgPSB0aGlzLl9yZXF1aXJlZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFJhZGlvQnV0dG9uc0ludmFsaWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmludmFsaWQgPSB0aGlzLl9pbnZhbGlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
576
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvcmFkaW8vcmFkaW8tZ3JvdXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxlQUFlLEVBQUUsU0FBUyxFQUFXLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFhLElBQUksRUFBRSxnQkFBZ0IsRUFDdEosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJaEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUM7SUFDdEMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFFLFVBQVU7Q0FDdkIsQ0FBQyxDQUFDO0FBR0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBVy9COzs7Ozs7O09BT0c7SUFDSCxJQUNXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLFFBQWE7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFL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ZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBEb0NoZWNrLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2VsZiwgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG5vb3AsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5pbXBvcnQgeyBJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIFJhZGlvIEdyb3VwIGFsaWdubWVudFxuICovXG5leHBvcnQgY29uc3QgUmFkaW9Hcm91cEFsaWdubWVudCA9IG1rZW51bSh7XG4gICAgaG9yaXpvbnRhbDogJ2hvcml6b250YWwnLFxuICAgIHZlcnRpY2FsOiAndmVydGljYWwnXG59KTtcbmV4cG9ydCB0eXBlIFJhZGlvR3JvdXBBbGlnbm1lbnQgPSB0eXBlb2YgUmFkaW9Hcm91cEFsaWdubWVudFtrZXlvZiB0eXBlb2YgUmFkaW9Hcm91cEFsaWdubWVudF07XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIFJhZGlvIGdyb3VwIGRpcmVjdGl2ZSByZW5kZXJzIHNldCBvZiByYWRpbyBidXR0b25zLlxuICpcbiAqIEBpZ3hNb2R1bGUgSWd4UmFkaW9Nb2R1bGVcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LXJhZGlvLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIHJhZGlvZ3JvdXAsIHJhZGlvLCBidXR0b24sIGlucHV0XG4gKlxuICogQGlneEdyb3VwIERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBJZ25pdGUgVUkgUmFkaW8gR3JvdXAgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhbiBhdmFpbGFibGUgc2V0IG9mIG9wdGlvbnMgdGhhdCBhcmUgbGlzdGVkIHNpZGUgYnkgc2lkZS5cbiAqXG4gKiBAZXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtcmFkaW8tZ3JvdXAgbmFtZT1cInJhZGlvR3JvdXBcIj5cbiAqICAgPGlneC1yYWRpbyAqbmdGb3I9XCJsZXQgaXRlbSBvZiBbJ0ZvbycsICdCYXInLCAnQmF6J11cIiB2YWx1ZT1cInt7aXRlbX19XCI+XG4gKiAgICAgIHt7aXRlbX19XG4gKiAgIDwvaWd4LXJhZGlvPlxuICogPC9pZ3gtcmFkaW8tZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgZXhwb3J0QXM6ICdpZ3hSYWRpb0dyb3VwJyxcbiAgICBzZWxlY3RvcjogJ2lneC1yYWRpby1ncm91cCwgW2lneFJhZGlvR3JvdXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFJhZGlvR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHJlZmVyZW5jZSB0byB0aGUgY2hpbGQgcmFkaW8gYnV0dG9ucy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCByYWRpb0J1dHRvbnMgPSAgdGhpcy5yYWRpb0dyb3VwLnJhZGlvQnV0dG9ucztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneFJhZGlvQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHB1YmxpYyByYWRpb0J1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hSYWRpb0NvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGB2YWx1ZWAgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBbdmFsdWVdID0gXCIncmFkaW9CdXR0b25WYWx1ZSdcIj48L2lneC1yYWRpby1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdFJhZGlvQnV0dG9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIGBuYW1lYCBhdHRyaWJ1dGUgb2YgdGhlIHJhZGlvIGdyb3VwIGNvbXBvbmVudC4gQWxsIGNoaWxkIHJhZGlvIGJ1dHRvbnMgaW5oZXJpdHMgdGhpcyBuYW1lLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBuYW1lID0gXCJSYWRpbzFcIj48L2lneC1yYWRpby1ncm91cD5cbiAgICAgKiAgYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbmFtZShuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYW1lICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fc2V0UmFkaW9CdXR0b25OYW1lcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIHJlcXVpcmVkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBJZiBub3Qgc2V0LCBgcmVxdWlyZWRgIHdpbGwgaGF2ZSB2YWx1ZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBbcmVxdWlyZWRdID0gXCJ0cnVlXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldFJhZGlvQnV0dG9uc1JlcXVpcmVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBzZWxlY3RlZCBjaGlsZCByYWRpbyBidXR0b24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgc2VsZWN0ZWRCdXR0b24gPSB0aGlzLnJhZGlvR3JvdXAuc2VsZWN0ZWQ7XG4gICAgICogdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID0gc2VsZWN0ZWRCdXR0b247XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IElneFJhZGlvQ29tcG9uZW50IHwgbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkID8gc2VsZWN0ZWQudmFsdWUgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIGludmFsaWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIG5vdCBzZXQsIGBpbnZhbGlkYCB3aWxsIGhhdmUgdmFsdWUgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtcmFkaW8tZ3JvdXAgW2ludmFsaWRdID0gXCJ0cnVlXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpbnZhbGlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc2V0UmFkaW9CdXR0b25zSW52YWxpZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCBhZnRlciB0aGUgcmFkaW8gZ3JvdXAgYHZhbHVlYCBpcyBjaGFuZ2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyByZWZlcmVuY2VzIHRvIHRoZSBzZWxlY3RlZCBgSWd4UmFkaW9Db21wb25lbnRgIGFuZCB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBhcyBldmVudCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvLWdyb3VwIChjaGFuZ2UpPVwiaGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQ2hhbmdlQ2hlY2tib3hFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3NzIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1yYWRpby1ncm91cCcpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1yYWRpby1ncm91cCc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHZlcnRpY2FsIGFsaWdubWVudCB0byB0aGUgcmFkaW8gZ3JvdXAsIGlmIGBhbGlnbm1lbnRgIGlzIHNldCB0byBgdmVydGljYWxgLlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIGFsaWdubWVudCBpcyBob3Jpem9udGFsLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1yYWRpby1ncm91cCBhbGlnbm1lbnQ9XCJ2ZXJ0aWNhbFwiPjwvaWd4LXJhZGlvLWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXJhZGlvLWdyb3VwLS12ZXJ0aWNhbCcpXG4gICAgcHJpdmF0ZSB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLnJhZGlvQnV0dG9ucy5maWx0ZXIocmFkaW8gPT4gIXJhZGlvLmRpc2FibGVkKTtcbiAgICAgICAgY29uc3QgY2hlY2tlZCA9IGJ1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpO1xuXG4gICAgICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gY2hlY2tlZCA/IGJ1dHRvbnMuaW5kZXhPZihjaGVja2VkKSA6IC0xO1xuICAgICAgICAgICAgY29uc3QgbHRyID0gdGhpcy5fZGlyZWN0aW9uYWxpdHkudmFsdWUgPT09ICdsdHInO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gbHRyID8gLTEgOiAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gbHRyID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5kZXggPCAwKSBpbmRleCA9IGJ1dHRvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IGJ1dHRvbnMubGVuZ3RoIC0gMSkgaW5kZXggPSAwO1xuXG4gICAgICAgICAgICBidXR0b25zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgICAgICAgICAgcmFkaW8uZGVzZWxlY3QoKTtcbiAgICAgICAgICAgICAgICByYWRpby5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBidXR0b25zW2luZGV4XS5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIGJ1dHRvbnNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIGJ1dHRvbnNbaW5kZXhdLnNlbGVjdCgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIpIHtcbiAgICAgICAgICAgIGJ1dHRvbnMuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmFkaW8gIT09IGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGBpZ3gtcmFkaW8tZ3JvdXBgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlSYWRpb0dyb3VwXCIpXG4gICAgICogcHVibGljIHJhZGlvR3JvdXA6IElneFJhZGlvR3JvdXBEaXJlY3RpdmU7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IHJhZGlvQWxpZ25tZW50ID0gdGhpcy5yYWRpb0dyb3VwLmFsaWdubWVudDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFsaWdubWVudCgpOiBSYWRpb0dyb3VwQWxpZ25tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmVydGljYWwgPyBSYWRpb0dyb3VwQWxpZ25tZW50LnZlcnRpY2FsIDogUmFkaW9Hcm91cEFsaWdubWVudC5ob3Jpem9udGFsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgcmFkaW8gZ3JvdXAgYWxpZ25tZW50LlxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zIGFyZSBgUmFkaW9Hcm91cEFsaWdubWVudC5ob3Jpem9udGFsYCAoZGVmYXVsdCkgYW5kIGBSYWRpb0dyb3VwQWxpZ25tZW50LnZlcnRpY2FsYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogcHVibGljIGFsaWdubWVudCA9IFJhZGlvR3JvdXBBbGlnbm1lbnQudmVydGljYWw7XG4gICAgICogLy8uLlxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXJhZGlvLWdyb3VwIFthbGlnbm1lbnRdPVwiYWxpZ25tZW50XCI+PC9pZ3gtcmFkaW8tZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCBhbGlnbm1lbnQodmFsdWU6IFJhZGlvR3JvdXBBbGlnbm1lbnQpIHtcbiAgICAgICAgdGhpcy52ZXJ0aWNhbCA9IHZhbHVlID09PSBSYWRpb0dyb3VwQWxpZ25tZW50LnZlcnRpY2FsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbmFtZSA9IGBpZ3gtcmFkaW8tZ3JvdXAtJHtuZXh0SWQrK31gO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWx1ZTogYW55ID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IElneFJhZGlvQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW52YWxpZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBxdWVyeUNoYW5nZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIC8vIFRoZSBpbml0aWFsIHZhbHVlIGNhbiBwb3NzaWJseSBiZSBzZXQgYnkgTmdNb2RlbCBhbmQgaXQgaXMgcG9zc2libGUgdGhhdFxuICAgICAgICAvLyB0aGUgT25Jbml0IG9mIHRoZSBOZ01vZGVsIG9jY3VycyBhZnRlciB0aGUgT25Jbml0IG9mIHRoaXMgY2xhc3MuXG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgoMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5faW5pdFJhZGlvQnV0dG9ucygpKTtcbiAgICAgICAgfSk7XG5cblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5hc3luY1ZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlcXVpcmVkID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmJsdXJSYWRpb1xuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eU9uQmx1cigpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50KGJ1dHRvbi5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU9uS2V5VXAoZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWxpZGl0eU9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICBidXR0b24uZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoYnV0dG9uLmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVPbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrZWQgPSB0aGlzLnJhZGlvQnV0dG9ucy5maW5kKHggPT4geC5jaGVja2VkKTtcblxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIlRhYlwiKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyYWRpbyA9PT0gY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2VkLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGFiSW5kZXgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVUYWJJbmRleCgpIHtcbiAgICAgICAgLy8gTmVlZGVkIHNvIHRoYXQgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24gb2YgYSByYWRpbyBncm91cFxuICAgICAgICAvLyBwbGFjZWQgaW5zaWRlIGEgZGlhbG9nIHdvcmtzIHByb3Blcmx5XG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9IHRoaXMucmFkaW9CdXR0b25zLmZpbmQoeCA9PiB4LmNoZWNrZWQpO1xuXG4gICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2VkLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChidXR0b24gIT09IGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5uYXRpdmVFbGVtZW50LnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBcImNoZWNrZWRcIiBwcm9wZXJ0eSB2YWx1ZSBvbiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIGNvbnNpc3RlbnQgdG8gdGhlIGN1cnJlbnQgcmFkaW8gYnV0dG9uLlxuICAgICAqIElmIGl0IGlzLCB0aGUgY2hlY2tlZCBhdHRyaWJ1dGUgd2lsbCBoYXZlIHZhbHVlIGB0cnVlYCBhbmQgc2VsZWN0ZWQgcHJvcGVydHkgd2lsbCBjb250YWluIHRoZSBzZWxlY3RlZCBgSWd4UmFkaW9Db21wb25lbnRgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5yYWRpb0dyb3VwLndyaXRlVmFsdWUoJ3JhZGlvQnV0dG9uVmFsdWUnKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCBpcyB0b3VjaGVkLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5yZWdpc3Rlck9uVG91Y2hlZChmbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJpdmF0ZSBfZGlyZWN0aW9uYWxpdHk6IElneERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5pdFJhZGlvQnV0dG9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgbmFtZTogdGhpcy5fbmFtZSwgcmVxdWlyZWQ6IHRoaXMuX3JlcXVpcmVkIH07XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGJ1dHRvbiwgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi52YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGJ1dHRvbjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnV0dG9uLmNoYW5nZS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwoYnV0dG9uLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5xdWVyeUNoYW5nZSQpXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLl9zZWxlY3RlZFJhZGlvQnV0dG9uQ2hhbmdlZChldikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRSYWRpb0J1dHRvbkNoYW5nZWQoYXJnczogSUNoYW5nZUNoZWNrYm94RXZlbnRBcmdzKSB7XG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgYnV0dG9uLmNoZWNrZWQgPSBidXR0b24uaWQgPT09IGFyZ3Mub3duZXIuaWQ7XG4gICAgICAgICAgICBpZiAoYnV0dG9uLmNoZWNrZWQgJiYgYnV0dG9uLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZCA9IGJ1dHRvbi5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYnV0dG9uLmNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBhcmdzLm93bmVyO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IGFyZ3MudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoYXJncyk7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFJhZGlvQnV0dG9uTmFtZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLm5hbWUgPSB0aGlzLl9uYW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0UmFkaW9CdXR0b24oKSB7XG4gICAgICAgIGlmICh0aGlzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vIHZhbHVlIC0gdW5jaGVjayBhbGwgcmFkaW8gYnV0dG9uc1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnV0dG9uLmNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdmFsdWUgPT09IGJ1dHRvbi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0ZWQgYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgIT09IGJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gYnV0dG9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJ1dHRvbi5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9uLXNlbGVjdGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFJhZGlvQnV0dG9uc1JlcXVpcmVkKCkge1xuICAgICAgICBpZiAodGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXF1aXJlZCA9IHRoaXMuX3JlcXVpcmVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2V0UmFkaW9CdXR0b25zSW52YWxpZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgICAgICBidXR0b24uaW52YWxpZCA9IHRoaXMuX2ludmFsaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
|
|
8
8
|
*/
|
|
9
9
|
export class IgxRadioModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioModule, imports: [IgxRadioGroupDirective, IgxRadioComponent], exports: [IgxRadioGroupDirective, IgxRadioComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioModule }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRadioModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
imports: [IgxRadioGroupDirective, IgxRadioComponent],
|