@fundamental-ngx/core 0.42.0-rc.9 → 0.42.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/alert/alert.module.d.ts +1 -1
- package/avatar/avatar.component.d.ts +2 -4
- package/avatar-group/directives/avatar-group-focusable-avatar.directive.d.ts +2 -6
- package/avatar-group/directives/avatar-group-overflow-button.directive.d.ts +2 -4
- package/bar/bar.component.d.ts +2 -4
- package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +2 -4
- package/button/button.component.d.ts +2 -6
- package/card/card-content.component.d.ts +2 -4
- package/card/card-counter.directive.d.ts +2 -4
- package/card/card-header.component.d.ts +2 -4
- package/card/card-loader.component.d.ts +2 -4
- package/card/card-second-subtitle.directive.d.ts +2 -4
- package/card/card-subtitle.directive.d.ts +2 -4
- package/card/card-title.directive.d.ts +2 -4
- package/card/card.component.d.ts +3 -5
- package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -4
- package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -4
- package/card/kpi/card-kpi-analytics.directive.d.ts +2 -4
- package/card/kpi/card-kpi-header.component.d.ts +2 -4
- package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -4
- package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -4
- package/card/kpi/card-kpi-value.directive.d.ts +2 -4
- package/combobox/combobox.module.d.ts +2 -1
- package/dialog/base/dialog-base.class.d.ts +2 -2
- package/dialog/dialog-body/dialog-body.component.d.ts +2 -4
- package/dialog/dialog-container/dialog-container.component.d.ts +0 -2
- package/dialog/dialog-service/dialog.service.d.ts +4 -0
- package/dialog/dialog.component.d.ts +0 -2
- package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +4 -6
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +2 -4
- package/dynamic-side-content/dynamic-side-content.component.d.ts +3 -5
- package/esm2020/alert/alert.module.mjs +5 -5
- package/esm2020/avatar/avatar.component.mjs +6 -10
- package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +4 -12
- package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +2 -2
- package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +3 -7
- package/esm2020/bar/bar.component.mjs +3 -7
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +2 -2
- package/esm2020/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +4 -8
- package/esm2020/button/button.component.mjs +3 -9
- package/esm2020/card/card-content.component.mjs +3 -7
- package/esm2020/card/card-counter.directive.mjs +3 -7
- package/esm2020/card/card-header.component.mjs +4 -8
- package/esm2020/card/card-loader.component.mjs +3 -7
- package/esm2020/card/card-second-subtitle.directive.mjs +3 -7
- package/esm2020/card/card-subtitle.directive.mjs +3 -7
- package/esm2020/card/card-title.directive.mjs +3 -7
- package/esm2020/card/card.component.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-header.component.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-value.directive.mjs +3 -7
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +5 -5
- package/esm2020/combobox/combobox.component.mjs +5 -4
- package/esm2020/combobox/combobox.module.mjs +8 -4
- package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
- package/esm2020/datetime-picker/datetime-picker.component.mjs +7 -4
- package/esm2020/dialog/base/dialog-base.class.mjs +4 -4
- package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -7
- package/esm2020/dialog/dialog-container/dialog-container.component.mjs +1 -5
- package/esm2020/dialog/dialog-service/dialog.service.mjs +10 -2
- package/esm2020/dialog/dialog.component.mjs +3 -7
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +4 -8
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +5 -9
- package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +3 -7
- package/esm2020/facets/content/facet-content.component.mjs +4 -8
- package/esm2020/facets/facet/facet.component.mjs +13 -19
- package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +3 -7
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +3 -7
- package/esm2020/feed-list-item/components/list/feed-list.component.mjs +3 -7
- package/esm2020/form/form-control/form-control.component.mjs +3 -7
- package/esm2020/form/form-group/form-group.component.mjs +3 -7
- package/esm2020/form/form-message/form-message.component.mjs +3 -7
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2020/icon/icon.component.mjs +3 -7
- package/esm2020/illustrated-message/illustrated-message.component.mjs +3 -7
- package/esm2020/info-label/info-label.component.mjs +3 -7
- package/esm2020/inline-help/inline-help.directive.mjs +26 -15
- package/esm2020/input-group/input-group-directives.mjs +6 -14
- package/esm2020/input-group/input-group.component.mjs +2 -2
- package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +3 -7
- package/esm2020/layout-grid/layout-grid.component.mjs +3 -7
- package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -7
- package/esm2020/link/link.component.mjs +9 -13
- package/esm2020/list/directives/list-icon.directive.mjs +3 -7
- package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -7
- package/esm2020/list/list-message.directive.mjs +3 -7
- package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +2 -2
- package/esm2020/message-box/message-box-container/message-box-container.component.mjs +1 -5
- package/esm2020/message-box/message-box.component.mjs +1 -5
- package/esm2020/message-page/message-page.component.mjs +3 -7
- package/esm2020/message-strip/alert/default-config.mjs +11 -0
- package/esm2020/message-strip/alert/index.mjs +6 -0
- package/esm2020/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +68 -0
- package/esm2020/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +57 -0
- package/esm2020/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +65 -0
- package/esm2020/message-strip/alert/message-strip-alert.position.mjs +2 -0
- package/esm2020/message-strip/alert/message-strip-alert.ref.mjs +3 -0
- package/esm2020/message-strip/alert/message-strip-alert.service.mjs +195 -0
- package/esm2020/message-strip/alert/message-strip-configuration-type.mjs +2 -0
- package/esm2020/message-strip/alert/open-message-strip-alert.config.mjs +2 -0
- package/esm2020/message-strip/alert/tokens.mjs +14 -0
- package/esm2020/message-strip/auto-dismiss-message-strip.directive.mjs +98 -0
- package/esm2020/message-strip/fundamental-ngx-core-message-strip.mjs +2 -2
- package/esm2020/message-strip/index.mjs +6 -0
- package/esm2020/message-strip/message-strip-type.mjs +2 -0
- package/esm2020/message-strip/message-strip.component.mjs +16 -20
- package/esm2020/message-strip/message-strip.module.mjs +6 -9
- package/esm2020/multi-combobox/multi-combobox.component.mjs +6 -6
- package/esm2020/multi-input/multi-input.component.mjs +33 -19
- package/esm2020/notification/directives/notification-indicator.directive.mjs +3 -7
- package/esm2020/notification/notification-group/notification-group.component.mjs +3 -7
- package/esm2020/notification/notification-utils/notification-group-base.mjs +2 -2
- package/esm2020/object-marker/object-marker.component.mjs +3 -7
- package/esm2020/object-number/object-number.component.mjs +3 -7
- package/esm2020/object-status/object-status.component.mjs +3 -7
- package/esm2020/panel/panel.component.mjs +3 -7
- package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
- package/esm2020/radio/radio-button/radio-button.component.mjs +2 -2
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +3 -7
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +4 -8
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +3 -7
- package/esm2020/segmented-button/segmented-button.component.mjs +4 -4
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +3 -7
- package/esm2020/status-indicator/status-indicator.component.mjs +4 -8
- package/esm2020/table/directives/table-cell.directive.mjs +31 -26
- package/esm2020/table/directives/table-icon.directive.mjs +3 -9
- package/esm2020/table/directives/table-row.directive.mjs +34 -19
- package/esm2020/table/table-wrapper.component.mjs +2 -2
- package/esm2020/table/table.component.mjs +1 -1
- package/esm2020/tabs/tab-item/tab-item.directive.mjs +3 -7
- package/esm2020/tabs/tab-nav/tab-nav.component.mjs +3 -9
- package/esm2020/tabs/tab-utils/tab-directives.mjs +3 -9
- package/esm2020/tile/directives/numeric-content.directives.mjs +14 -34
- package/esm2020/tile/directives/tile.directives.mjs +9 -21
- package/esm2020/tile/tile.component.mjs +2 -2
- package/esm2020/token/token-input.directive.mjs +3 -7
- package/esm2020/token/tokenizer.component.mjs +20 -22
- package/esm2020/toolbar/toolbar.component.mjs +2 -2
- package/esm2020/tree/components/tree-item/tree-item.component.mjs +1 -1
- package/esm2020/tree/models/base-tree-item.class.mjs +2 -6
- package/esm2020/tree/tree.component.mjs +3 -7
- package/esm2020/upload-collection/upload-collection-item.directive.mjs +2 -2
- package/esm2020/wizard/wizard.component.mjs +2 -2
- package/facets/content/facet-content.component.d.ts +2 -4
- package/facets/facet/facet.component.d.ts +2 -6
- package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -4
- package/feed-list-item/components/item/feed-list-item.component.d.ts +2 -4
- package/feed-list-item/components/list/feed-list.component.d.ts +2 -4
- package/fesm2015/fundamental-ngx-core-alert.mjs +4 -4
- package/fesm2015/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar.mjs +5 -9
- package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-bar.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +3 -7
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-button.mjs +2 -8
- package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-card.mjs +31 -91
- package/fesm2015/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +4 -4
- package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +10 -5
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-content-density.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +6 -3
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs +16 -21
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +7 -15
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-facets.mjs +15 -25
- package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-input.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +4 -12
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-icon.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-info-label.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-inline-help.mjs +24 -13
- package/fesm2015/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-input-group.mjs +6 -14
- package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs +4 -12
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-link.mjs +8 -12
- package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-list.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +0 -8
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-page.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-strip.mjs +488 -28
- package/fesm2015/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +5 -5
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +33 -17
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-notification.mjs +5 -13
- package/fesm2015/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-marker.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-number.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-status.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-panel.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs +3 -7
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-table.mjs +64 -48
- package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tabs.mjs +6 -22
- package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tile.mjs +22 -54
- package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-token.mjs +22 -28
- package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tree.mjs +3 -11
- package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-wizard.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-alert.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar.mjs +5 -9
- package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-bar.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +3 -7
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-button.mjs +2 -8
- package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-card.mjs +31 -91
- package/fesm2020/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +10 -5
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-content-density.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +6 -3
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +16 -21
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +7 -15
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-facets.mjs +15 -25
- package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-input.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +4 -12
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-icon.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-info-label.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-inline-help.mjs +24 -13
- package/fesm2020/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-input-group.mjs +6 -14
- package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs +4 -12
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-link.mjs +8 -12
- package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-list.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +0 -8
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-page.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-strip.mjs +493 -28
- package/fesm2020/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +5 -5
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +31 -17
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-notification.mjs +5 -13
- package/fesm2020/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-marker.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-number.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-status.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-panel.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs +3 -7
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-table.mjs +64 -48
- package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tabs.mjs +6 -22
- package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tile.mjs +22 -54
- package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-token.mjs +21 -27
- package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tree.mjs +3 -11
- package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-wizard.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/form/form-control/form-control.component.d.ts +2 -4
- package/form/form-group/form-group.component.d.ts +2 -4
- package/form/form-message/form-message.component.d.ts +2 -4
- package/fundamental-ngx-core-v0.42.0.tgz +0 -0
- package/icon/icon.component.d.ts +2 -4
- package/illustrated-message/illustrated-message.component.d.ts +2 -4
- package/info-label/info-label.component.d.ts +2 -4
- package/inline-help/inline-help.directive.d.ts +9 -3
- package/input-group/input-group-directives.d.ts +5 -9
- package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -4
- package/layout-grid/layout-grid.component.d.ts +2 -4
- package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +4 -6
- package/link/link.component.d.ts +2 -4
- package/list/directives/list-icon.directive.d.ts +4 -5
- package/list/directives/list-navigation-item-text.directive.d.ts +2 -4
- package/list/list-message.directive.d.ts +2 -4
- package/message-box/message-box-container/message-box-container.component.d.ts +0 -2
- package/message-box/message-box.component.d.ts +0 -2
- package/message-page/message-page.component.d.ts +2 -4
- package/message-strip/alert/default-config.d.ts +5 -0
- package/message-strip/alert/index.d.ts +9 -0
- package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +52 -0
- package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +28 -0
- package/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.d.ts +36 -0
- package/message-strip/alert/message-strip-alert.position.d.ts +3 -0
- package/message-strip/alert/message-strip-alert.ref.d.ts +14 -0
- package/message-strip/alert/message-strip-alert.service.d.ts +52 -0
- package/message-strip/alert/message-strip-configuration-type.d.ts +15 -0
- package/message-strip/alert/open-message-strip-alert.config.d.ts +22 -0
- package/message-strip/alert/tokens.d.ts +20 -0
- package/message-strip/auto-dismiss-message-strip.directive.d.ts +35 -0
- package/message-strip/index.d.ts +5 -5
- package/message-strip/message-strip-type.d.ts +2 -0
- package/message-strip/message-strip.component.d.ts +6 -9
- package/message-strip/message-strip.module.d.ts +2 -4
- package/multi-combobox/multi-combobox.component.d.ts +1 -1
- package/multi-input/multi-input.component.d.ts +10 -6
- package/notification/directives/notification-indicator.directive.d.ts +2 -4
- package/notification/notification-group/notification-group.component.d.ts +2 -4
- package/object-marker/object-marker.component.d.ts +2 -4
- package/object-number/object-number.component.d.ts +2 -4
- package/object-status/object-status.component.d.ts +2 -4
- package/package.json +3 -3
- package/panel/panel.component.d.ts +2 -4
- package/radio/radio-button/radio-button.component.d.ts +1 -1
- package/rating-indicator/components/rating-indicator.component.d.ts +2 -4
- package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +2 -4
- package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -4
- package/schematics/add-dependencies/index.js +4 -4
- package/slider/slider.component.d.ts +2 -4
- package/status-indicator/status-indicator.component.d.ts +2 -4
- package/table/directives/table-cell.directive.d.ts +6 -12
- package/table/directives/table-icon.directive.d.ts +2 -6
- package/table/directives/table-row.directive.d.ts +10 -10
- package/tabs/tab-item/tab-item.directive.d.ts +2 -4
- package/tabs/tab-nav/tab-nav.component.d.ts +4 -8
- package/tabs/tab-utils/tab-directives.d.ts +2 -6
- package/tile/directives/numeric-content.directives.d.ts +10 -20
- package/tile/directives/tile.directives.d.ts +6 -12
- package/tile/tile.component.d.ts +1 -1
- package/token/token-input.directive.d.ts +2 -4
- package/token/tokenizer.component.d.ts +2 -4
- package/toolbar/toolbar.component.d.ts +1 -1
- package/tree/models/base-tree-item.class.d.ts +1 -3
- package/tree/tree.component.d.ts +1 -3
- package/esm2020/message-strip/public_api.mjs +0 -3
- package/fundamental-ngx-core-v0.42.0-rc.9.tgz +0 -0
- package/message-strip/public_api.d.ts +0 -2
|
@@ -19,8 +19,8 @@ export class StatusIndicatorComponent {
|
|
|
19
19
|
return this.fillDirection;
|
|
20
20
|
}
|
|
21
21
|
/** @hidden */
|
|
22
|
-
constructor(
|
|
23
|
-
this.
|
|
22
|
+
constructor(elementRef, _cd) {
|
|
23
|
+
this.elementRef = elementRef;
|
|
24
24
|
this._cd = _cd;
|
|
25
25
|
/**
|
|
26
26
|
* defines the size of the status indicator.
|
|
@@ -76,10 +76,6 @@ export class StatusIndicatorComponent {
|
|
|
76
76
|
];
|
|
77
77
|
}
|
|
78
78
|
/** @hidden */
|
|
79
|
-
elementRef() {
|
|
80
|
-
return this._elementRef;
|
|
81
|
-
}
|
|
82
|
-
/** @hidden */
|
|
83
79
|
_calculateFilling() {
|
|
84
80
|
if (this.fillPercentage < 0 || this.fillPercentage === undefined) {
|
|
85
81
|
this.fillCalculator = 0;
|
|
@@ -100,7 +96,7 @@ export class StatusIndicatorComponent {
|
|
|
100
96
|
case 'radial': {
|
|
101
97
|
const tempPercent = this.fillCalculator % 1;
|
|
102
98
|
const fillNumber = Number(tempPercent.toFixed(2));
|
|
103
|
-
const element = this.
|
|
99
|
+
const element = this.elementRef.nativeElement.querySelectorAll('svg');
|
|
104
100
|
for (let i = 1; i < element.length; i++) {
|
|
105
101
|
sPointsAttributeValue = this._getPolygonPointsForCircularFilling(fillNumber * 100, element[i].getBBox());
|
|
106
102
|
polygonPoints = sPointsAttributeValue.reduce((acc, item) => acc + item.x + ',' + item.y + ' ', '');
|
|
@@ -295,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
295
291
|
}], angle: [{
|
|
296
292
|
type: Input
|
|
297
293
|
}], buildComponentCssClass: [] } });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdGF0dXMtaW5kaWNhdG9yL3N0YXR1cy1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3RhdHVzLWluZGljYXRvci9zdGF0dXMtaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBUzVFLE1BQU0sT0FBTyxLQUFLO0lBQ2QsY0FBYztJQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO1FBQTNCLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQUcsQ0FBQztDQUNyRDtBQXFCRCxNQUFNLE9BQU8sd0JBQXdCO0lBMEZqQyxjQUFjO0lBQ2QsSUFBSSxjQUFjLENBQUMsU0FBMkI7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBMkJELGNBQWM7SUFDZCxZQUFvQixXQUFvQyxFQUFVLEdBQXNCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBckh4Rjs7OztXQUlHO1FBRUgsU0FBSSxHQUF3QixJQUFJLENBQUM7UUEwQmpDOzs7V0FHRztRQUVILGNBQVMsR0FBd0IsSUFBSSxDQUFDO1FBd0N0Qzs7V0FFRztRQUVILGtCQUFh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RUFBRSxPQUFPO3dCQUN2QixhQUFhLEVBQUUsTUFBTTt3QkFDckIsdUJBQXVCLEVBQUUsZUFBZTt3QkFDeEMsc0JBQXNCLEVBQUUscUNBQXFDO3dCQUM3RCxzQkFBc0IsRUFBRSxHQUFHO3dCQUMzQixzQkFBc0IsRUFBRSxLQUFLO3dCQUM3QixpQkFBaUIsRUFBRSxvQkFBb0I7cUJBQzFDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07aUlBTy9DLEVBQUU7c0JBREQsS0FBSztnQkFTTixJQUFJO3NCQURILEtBQUs7Z0JBU04sTUFBTTtzQkFETCxLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFPTixPQUFPO3NCQUROLEtBQUs7Z0JBT04sU0FBUztzQkFEUixLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQU9OLGNBQWM7c0JBRGIsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBZU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkErQ04sc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhcHBseUNzc0NsYXNzLCBDc3NDbGFzc0J1aWxkZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgU3RhdHVzSW5kaWNhdG9yU2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XG5leHBvcnQgdHlwZSBTdGF0dXNJbmRpY2F0b3JDb2xvciA9ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJztcbmV4cG9ydCB0eXBlIExhYmxlUG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJztcbmV4cG9ydCB0eXBlIEZpbGxpbmdUeXBlID0gJ3JhZGlhbCcgfCAnYW5nbGVkJyB8ICdsaW5lYXJ1cCcgfCAnbGluZWFyZG93bicgfCAnbGluZWFybGVmdCc7XG5leHBvcnQgdHlwZSBGaWxsaW5nRGlyZWN0aW9uID0gJ2Nsb2Nrd2lzZScgfCAnY291bnRlcmNsb2Nrd2lzZSc7XG5cbmV4cG9ydCBjbGFzcyBQb2ludCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgeDogbnVtYmVyLCBwdWJsaWMgeTogbnVtYmVyKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXN0YXR1cy1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0dXMtaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdGF0dXMtaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYXJpYUxhYmVsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uXSc6ICdhcmlhUm9sZURlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1thdHRyLmZvY3VzYWJsZV0nOiAnZm9jdXNhYmxlJyxcbiAgICAgICAgJ1thdHRyLnRpdGxlXSc6ICd0aXRsZScsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWV0ZXh0XSc6ICdhcmlhVmFsdWVUZXh0JyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVub3ddJzogJ2ZpbGxQZXJjZW50YWdlID8gZmlsbFBlcmNlbnRhZ2UgOiAwJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJzAnLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAnMTAwJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICdmb2N1c2FibGUgPyAwIDogLTEnXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0YXR1c0luZGljYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ3NzQ2xhc3NCdWlsZGVyLCBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIHZhbHVlIGlkIGRlZmluZXMgdGhlIGlkIG9mIHRoZSBvYmplY3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGUgc2l6ZSBvZiB0aGUgc3RhdHVzIGluZGljYXRvci5cbiAgICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCdcbiAgICAgKiBEZWZhdWx0IHNpemUgaXMgTWVkaXVtKG1kKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFN0YXR1c0luZGljYXRvclNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHN0YXR1cyByZXByZXNlbnRlZCBieSB0aGUgU3RhdHVzIEluZGljYXRvci5cbiAgICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ2luZm9ybWF0aXZlJ1xuICAgICAqIEZvciBkZWZhdWx0IE9iamVjdCBTdGF0dXMgb21pdCB0aGlzIHByb3BlcnR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXM6IFN0YXR1c0luZGljYXRvckNvbG9yO1xuXG4gICAgLyoqIERlZmluZSB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBTdGF0dXMgaW5kaWNhdG9yKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXR1c0xhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBwb3NpdGlvbmluZyBvZiB0aGUgc3RhdHVzIGluZGljYXRvciBpbWFnZSB3aXRoaW5nIHRoZSBkZWZpbmVkIGhlaWdodCBhbmQgd2lkdGggLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmlld0JveDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogYm9vbGVhbiB2YWx1ZSB0byBiZSBtYXJrZWQgYXMgYSBjbGlja2FibGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsaWNrYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhlIHNpemUgb2YgdGhlIHN0YXR1cyBpbmRpY2F0b3IuXG4gICAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbFNpemU6IFN0YXR1c0luZGljYXRvclNpemUgPSAnc20nO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSBTdGF0dXMgSW5kaWNhdG9yLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFyaWEgZGVmaW5lcyByb2xlIGRlc2NyaXB0aW9uIGZvciB0aGUgU3RhdHVzIEluZGljYXRvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFSb2xlRGVzY3JpcHRpb246IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQXJpYSBGb2N1c2FibGUgZm9yIHRoZSBTdGF0dXMgSW5kaWNhdG9yLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9jdXNhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqIEFyaWEgUm9sZSBmb3IgdGhlIFN0YXR1cyBJbmRpY2F0b3IuICovXG4gICAgQElucHV0KClcbiAgICByb2xlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFyaWEgVmFsdWUgVGV4dCBmb3IgdGhlIFN0YXR1cyBJbmRpY2F0b3IuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhVmFsdWVUZXh0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFyaWEgdGl0bGUgZm9yIHRoZSBzdGF0dXMgaW5kaWNhdG9yLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogZGVmaW5lcyB0aGUgbGFiZWwgcG9zaXRpb24gdGhlIHZhbHVlIGNhbiBiZSAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxQb3NpdGlvbjogTGFibGVQb3NpdGlvbjtcblxuICAgIC8qKiBQYXRoIGZvciB0aGUgc3RhdHVzIGluZGljYXRvciAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGF0aDogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgdmFsdWUgdG8gYmUgZmlsbGVkIHVuZGVyIHRoZSBnaXZlIHBlcmNlbnRhdGdlIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbFBlcmNlbnRhZ2U6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIHZhbHVlIHRvIGRlZmluZSBmaWxsIGRpcmVjdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsbERpcmVjdGlvbjogRmlsbGluZ0RpcmVjdGlvbiA9ICdjbG9ja3dpc2UnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXQgX2ZpbGxEaXJlY3Rpb24oZGlyZWN0aW9uOiBGaWxsaW5nRGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuZmlsbERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICB9XG4gICAgZ2V0IF9maWxsRGlyZWN0aW9uKCk6IEZpbGxpbmdEaXJlY3Rpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxsRGlyZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbGxpbmdUeXBlIHRvIHJlcHJlc2VudCB0aGUgZmlsbCBwYXR0ZXJuIG9mIHRoZSBjb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxpbmdUeXBlOiBGaWxsaW5nVHlwZSA9ICdsaW5lYXJkb3duJztcblxuICAgIC8qKiByZXByZXNlbnQgdGhlIGRlZ3JlZSBvZiBhbmdsZSB0byBwcm9qZWN0IHRoZSBmaWxsaW5nIG9mIHRoZSBjb21wb25lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGFuZ2xlOiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZpbGxDYWxjdWxhdG9yOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBiaW5hcnlTdHJpbmc6IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHgxOiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB5MTogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgeDI6IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHkyOiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwb2ludHNBcnJheTogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hbmdsZUNhbGN1bGF0aW9uKCk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVGaWxsaW5nKCk7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdmZC1zdGF0dXMtaW5kaWNhdG9yJyxcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA/IGBmZC1zdGF0dXMtaW5kaWNhdG9yLS0ke3RoaXMuc2l6ZX1gIDogJycsXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA/IGBmZC1zdGF0dXMtaW5kaWNhdG9yLS0ke3RoaXMuc3RhdHVzfWAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xpY2thYmxlID8gYGZkLXN0YXR1cy1pbmRpY2F0b3ItLWxpbmtgIDogJycsXG4gICAgICAgICAgICB0aGlzLmxhYmVsUG9zaXRpb24gPT09ICdyaWdodCcgfHwgdGhpcy5sYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcbiAgICAgICAgICAgICAgICA/IGBmZC1zdGF0dXMtaW5kaWNhdG9yLS1ob3Jpem9udGFsLWxhYmVsYFxuICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlRmlsbGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsbFBlcmNlbnRhZ2UgPCAwIHx8IHRoaXMuZmlsbFBlcmNlbnRhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5maWxsQ2FsY3VsYXRvciA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbGxDYWxjdWxhdG9yID0gKHRoaXMuZmlsbFBlcmNlbnRhZ2UgKiB0aGlzLnBhdGgubGVuZ3RoKSAvIDEwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYW5nbGVDYWxjdWxhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgbGV0IHNQb2ludHNBdHRyaWJ1dGVWYWx1ZTogQXJyYXk8UG9pbnQ+O1xuICAgICAgICBsZXQgcG9seWdvblBvaW50czogc3RyaW5nO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZmlsbGluZ1R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FuZ2xlZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5hcnlTdHJpbmcgPSB0aGlzLl9jb252ZXJ0QW5nbGVUb0JpbmFyeSh0aGlzLmFuZ2xlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25CaW5hcnlWYWx1ZSh0aGlzLmJpbmFyeVN0cmluZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyYWRpYWwnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVtcFBlcmNlbnQgPSB0aGlzLmZpbGxDYWxjdWxhdG9yICUgMTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsTnVtYmVyID0gTnVtYmVyKHRlbXBQZXJjZW50LnRvRml4ZWQoMikpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3ZnJyk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGVsZW1lbnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc1BvaW50c0F0dHJpYnV0ZVZhbHVlID0gdGhpcy5fZ2V0UG9seWdvblBvaW50c0ZvckNpcmN1bGFyRmlsbGluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxOdW1iZXIgKiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50W2ldLmdldEJCb3goKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uUG9pbnRzID0gc1BvaW50c0F0dHJpYnV0ZVZhbHVlLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBpdGVtLnggKyAnLCcgKyBpdGVtLnkgKyAnICcsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludHNBcnJheS5wdXNoKHBvbHlnb25Qb2ludHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2xpbmVhcnVwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmFyeVN0cmluZyA9IHRoaXMuX2NvbnZlcnRBbmdsZVRvQmluYXJ5KDkwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25CaW5hcnlWYWx1ZSh0aGlzLmJpbmFyeVN0cmluZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsaW5lYXJkb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmFyeVN0cmluZyA9IHRoaXMuX2NvbnZlcnRBbmdsZVRvQmluYXJ5KDI3MCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduQmluYXJ5VmFsdWUodGhpcy5iaW5hcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGluZWFybGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5hcnlTdHJpbmcgPSB0aGlzLl9jb252ZXJ0QW5nbGVUb0JpbmFyeSgxODApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkJpbmFyeVZhbHVlKHRoaXMuYmluYXJ5U3RyaW5nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmZFN0YXR1c0luZGljYXRvcjogTm8gZmlsbFR5cGUgZm91bmQgZm9yICR7dGhpcy5maWxsaW5nVHlwZX0uYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRBbmdsZVRvQmluYXJ5KGFuZ2xlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYW5nbGUgPiAwICYmIGFuZ2xlIDw9IDQ1KSB7XG4gICAgICAgICAgICByZXR1cm4gJzEsMCwwLDEnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDQ1ICYmIGFuZ2xlIDwgOTApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwwLDAsMSc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gOTAgJiYgYW5nbGUgPCAxMzUpIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwwLDAsMSc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gMTM1ICYmIGFuZ2xlIDwgMTgwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzAsMCwxLDEnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDE4MCAmJiBhbmdsZSA8IDIyNSkge1xuICAgICAgICAgICAgcmV0dXJuICcwLDAsMSwwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA+PSAyMjUgJiYgYW5nbGUgPCAyNzApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwxLDEsMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gMjcwICYmIGFuZ2xlIDwgMzE1KSB7XG4gICAgICAgICAgICByZXR1cm4gJzAsMSwwLDAnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDMxNSAmJiBhbmdsZSA8IDM2MCkge1xuICAgICAgICAgICAgcmV0dXJuICcxLDEsMCwwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA9PT0gMCB8fCBhbmdsZSA9PT0gMzYwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzEsMCwwLDAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXNzaWduQmluYXJ5VmFsdWUoYmluYXJ5U3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmluYXJ5VmFsdWUgPSBiaW5hcnlTdHJpbmcuc3BsaXQoJywnKTtcbiAgICAgICAgdGhpcy54MSA9IGJpbmFyeVZhbHVlWzBdO1xuICAgICAgICB0aGlzLnkxID0gYmluYXJ5VmFsdWVbMV07XG4gICAgICAgIHRoaXMueDIgPSBiaW5hcnlWYWx1ZVsyXTtcbiAgICAgICAgdGhpcy55MiA9IGJpbmFyeVZhbHVlWzNdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UG9seWdvblBvaW50c0ZvckNpcmN1bGFyRmlsbGluZyh2YWx1ZTogbnVtYmVyLCBib3VuZGluZ0JveFN2ZzogRE9NUmVjdCk6IEFycmF5PFBvaW50PiB7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gMy42ICogdmFsdWU7XG4gICAgICAgIGNvbnN0IHBvaW50czogUG9pbnRbXSA9IFtdO1xuICAgICAgICBsZXQgeERpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmU6IG51bWJlcjtcbiAgICAgICAgbGV0IHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlOiBudW1iZXI7XG4gICAgICAgIGxldCBwb2x5Z29uUG9pbnQ6IFBvaW50O1xuXG4gICAgICAgIC8vIHN0YXJ0cyBhdCAxMiwgdGhlIGFsZ29yaXRobSBjb21wdXRlcyB0aGUgY29vcmRpbmF0aW9uIGZvciBjbG9ja3dpc2UgZGlyZWN0aW9uIG9ubHlcbiAgICAgICAgLy8gY291bnRlciBjbG9ja3dpc2UgZGlyZWN0aW9uIGlzIG1hbmFnZWQgYnkgc3ltbWV0cnlcbiAgICAgICAgY29uc3Qgb1N0YXJ0UG9pbnQgPSBuZXcgUG9pbnQoYm91bmRpbmdCb3hTdmcueCArIGJvdW5kaW5nQm94U3ZnLndpZHRoIC8gMiwgYm91bmRpbmdCb3hTdmcueSk7XG4gICAgICAgIGNvbnN0IG9DZW50cmVQb2ludCA9IG5ldyBQb2ludChcbiAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCAvIDIsXG4gICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMlxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlZmxlY3RzIHggY29vcmRpbmF0ZSBieSBjZW50cmUgcG9pbnQgZm9yIENvdW50ZXIgQ2xvY2t3aXNlIHR5cGVcbiAgICAgICAgY29uc3QgX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZSA9IChvUG9pbnQ6IFBvaW50KTogUG9pbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgb1BvaW50KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGxEaXJlY3Rpb24gPT09ICdjb3VudGVyY2xvY2t3aXNlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlYRGlzdGFuY2VGcm9tQ2VudHJlID0gb1BvaW50LnggLSBvQ2VudHJlUG9pbnQueDtcbiAgICAgICAgICAgICAgICByZXMueCA9IG9DZW50cmVQb2ludC54IC0gaVhEaXN0YW5jZUZyb21DZW50cmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQm91bmRhcnkgY2VudHJlIGlzIGdpdmVuIGJ5IGFuZ2xlIGRpc3RhbmNlIGZyb20gdGhlIGJlZ2lubmluZyAoMMKwKS4gVGhlIHJldHVybmVkIGRpZmZlcmVuY2UgaXMgcmVsYXRlZFxuICAgICAgICAvLyB0byB4IG9yIHkgY29vcmRpbmF0ZSBkZXBlbmRpbmcgb24gYm91bmRhcnkgY2VudHJlIGFuZ2xlIChlLmcuIDDCsCAtPiB4LCA5MMKwIC0+IHksIDE4MMKwIC0+IHggIDI3MMKwIC0+IHkpLlxuICAgICAgICAvLyBCb3VuZGFyeSBsZW5ndGggaXMgbGVuZ3RoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZGUgb2YgYm91bmRpbmcgYm94ICh3aWR0aCBmb3IgeCwgaGVpZ2h0IGZvciB5KS5cbiAgICAgICAgY29uc3QgY29tcHV0ZURpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSAoXG4gICAgICAgICAgICBpbkFuZ2xlOiBudW1iZXIsXG4gICAgICAgICAgICBpQm91bmRhcnlDZW50cmVBbmdsZTogbnVtYmVyLFxuICAgICAgICAgICAgaUJvdW5kYXJ5TGVuZ3RoOiBudW1iZXJcbiAgICAgICAgKTogbnVtYmVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhbiA9IE1hdGgudGFuKCgoaUJvdW5kYXJ5Q2VudHJlQW5nbGUgLSBpbkFuZ2xlKSAqIE1hdGguUEkpIC8gMTgwKTtcblxuICAgICAgICAgICAgcmV0dXJuICh0YW4gKiBpQm91bmRhcnlMZW5ndGgpIC8gMjtcbiAgICAgICAgfTtcblxuICAgICAgICBwb2ludHMucHVzaChvU3RhcnRQb2ludCk7XG5cbiAgICAgICAgaWYgKDAgPCBhbmdsZSAmJiBhbmdsZSA8IDQ1KSB7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCAwLCBib3VuZGluZ0JveFN2Zy5oZWlnaHQpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KG9TdGFydFBvaW50LnggLSB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSwgb1N0YXJ0UG9pbnQueSk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKHBvbHlnb25Qb2ludCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKDQ1IDw9IGFuZ2xlKSB7XG4gICAgICAgICAgICBwb2ludHMucHVzaChcbiAgICAgICAgICAgICAgICBfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKG5ldyBQb2ludChib3VuZGluZ0JveFN2Zy54ICsgYm91bmRpbmdCb3hTdmcud2lkdGgsIGJvdW5kaW5nQm94U3ZnLnkpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICg0NSA8IGFuZ2xlICYmIGFuZ2xlIDwgMTM1KSB7XG4gICAgICAgICAgICB5RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCA5MCwgYm91bmRpbmdCb3hTdmcud2lkdGgpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMiAtIHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgxMzUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQb2ludChib3VuZGluZ0JveFN2Zy54ICsgYm91bmRpbmdCb3hTdmcud2lkdGgsIGJvdW5kaW5nQm94U3ZnLnkgKyBib3VuZGluZ0JveFN2Zy5oZWlnaHQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgxMzUgPCBhbmdsZSAmJiBhbmdsZSA8IDIyNSkge1xuICAgICAgICAgICAgeERpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSBjb21wdXRlRGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZShhbmdsZSwgMTgwLCBib3VuZGluZ0JveFN2Zy5oZWlnaHQpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCAvIDIgKyB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgyMjUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UobmV3IFBvaW50KGJvdW5kaW5nQm94U3ZnLngsIGJvdW5kaW5nQm94U3ZnLnkgKyBib3VuZGluZ0JveFN2Zy5oZWlnaHQpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgyMjUgPCBhbmdsZSAmJiBhbmdsZSA8IDMxNSkge1xuICAgICAgICAgICAgeURpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSBjb21wdXRlRGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZShhbmdsZSwgMjcwLCBib3VuZGluZ0JveFN2Zy53aWR0aCk7XG4gICAgICAgICAgICBwb2x5Z29uUG9pbnQgPSBuZXcgUG9pbnQoXG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3hTdmcueCxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMiArIHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgzMTUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UobmV3IFBvaW50KGJvdW5kaW5nQm94U3ZnLngsIGJvdW5kaW5nQm94U3ZnLnkpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoMzE1IDwgYW5nbGUgJiYgYW5nbGUgPD0gMzYwKSB7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCAzNjAsIGJvdW5kaW5nQm94U3ZnLmhlaWdodCk7XG4gICAgICAgICAgICBwb2x5Z29uUG9pbnQgPSBuZXcgUG9pbnQoXG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3hTdmcueCArIGJvdW5kaW5nQm94U3ZnLndpZHRoIC8gMiAtIHhEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlLFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKHBvbHlnb25Qb2ludCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9pbnRzLnB1c2gob0NlbnRyZVBvaW50KTtcblxuICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIH1cbn1cbiIsIjxzcGFuXG4gICAgKm5nSWY9XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCcgfHwgbGFiZWxQb3NpdGlvbiA9PT0gJ3RvcCdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tc21dPVwibGFiZWxTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLW1kXT1cImxhYmVsU2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZ109XCJsYWJlbFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0teGxdPVwibGFiZWxTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLXRvcF09XCJsYWJlbFBvc2l0aW9uID09PSAndG9wJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgY2xhc3M9XCJmZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbFwiXG4gICAgPnt7IHN0YXR1c0xhYmVsIH19XG48L3NwYW4+XG48c3ZnXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIGRhdGEtc2FwLXVpPVwiX19zaGFwZTAtX19ib3gyMS0yNFwiXG4gICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgW2F0dHIudmlld0JveF09XCJ2aWV3Qm94XCJcbiAgICB4bG1ucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgY2xhc3M9XCJmZC1zdGF0dXMtaW5kaWNhdG9yX19zdmdcIlxuPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic3ZnVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvc3ZnPlxuPHNwYW5cbiAgICAqbmdJZj1cImxhYmVsUG9zaXRpb24gPT09ICdyaWdodCcgfHwgbGFiZWxQb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tc21dPVwibGFiZWxTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLW1kXT1cImxhYmVsU2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZ109XCJsYWJlbFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0teGxdPVwibGFiZWxTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLXJpZ2h0XT1cImxhYmVsUG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tYm90dG9tXT1cImxhYmVsUG9zaXRpb24gPT09ICdib3R0b20nXCJcbiAgICBjbGFzcz1cImZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsXCJcbiAgICA+e3sgc3RhdHVzTGFiZWwgfX1cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNzdmdUZW1wbGF0ZT5cbiAgICA8c3ZnXG4gICAgICAgIHhsbW5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgICAgIG92ZXJmbG93PVwidmlzaWJsZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImlkICsgaVwiXG4gICAgICAgIGRhdGEtc2FwLXVpPVwiaWRcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcGF0aCBvZiBwYXRoOyBsZXQgaSA9IGluZGV4XCJcbiAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKGZpbGxDYWxjdWxhdG9yIC0gaSA+IDAgJiYgZmlsbENhbGN1bGF0b3IgLSBpIDwgMSkgfHwgZmlsbGluZ1R5cGUgIT09ICdyYWRpYWwnXCJcbiAgICAgICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1ncmFkaWVudFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueDFdPVwieDFcIlxuICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cInkxXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJ4MlwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTJdPVwieTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdG9wIFthdHRyLm9mZnNldF09XCJmaWxsQ2FsY3VsYXRvciAtIGlcIiBzdG9wLWNvbG9yPVwid2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJvZmZzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZXM9XCIwLCB7eyBmaWxsQ2FsY3VsYXRvciAtIGkgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cj1cIjFzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luPVwiMHNcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3RvcD5cbiAgICAgICAgICAgICAgICA8c3RvcCBbYXR0ci5vZmZzZXRdPVwiZmlsbENhbGN1bGF0b3IgLSBpXCIgc3RvcC1jb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhbmltYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwib2Zmc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIudmFsdWVzPVwiMCwge3sgZmlsbENhbGN1bGF0b3IgLSBpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbj1cIjBzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N0b3A+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgICAgPG1hc2sgI21hc2tUZW1wbGF0ZSBpZD1cInt7IGlkICsgaSB9fS1tYXNrXCI+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKGZpbGxDYWxjdWxhdG9yIC0gaSA+IDAgJiYgZmlsbENhbGN1bGF0b3IgLSBpIDwgMSkgfHwgZmlsbGluZ1R5cGUgIT09ICdyYWRpYWwnXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eyBpZCArIGkgfX0tbWFzay1zaGFwZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGF0dHIuZmlsbD1cInVybCgje3sgaWQgKyBpIH19LWdyYWRpZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICAgICAgICA8cG9seWdvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpbGxpbmdUeXBlID09PSAncmFkaWFsJyAmJiBmaWxsQ2FsY3VsYXRvciAtIGkgPiAwICYmIGZpbGxDYWxjdWxhdG9yIC0gaSA8IDFcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1tYXNrLXNoYXBlXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucG9pbnRzXT1cInBvaW50c0FycmF5W2ldXCJcbiAgICAgICAgICAgICAgICA+PC9wb2x5Z29uPlxuICAgICAgICAgICAgPC9tYXNrPlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1zaGFwZVwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cInBhdGhcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMFwiXG4gICAgICAgICAgICBzdHJva2U9XCIjODk5MTlBXCJcbiAgICAgICAgICAgIGF0dHIubWFzaz1cInVybCgje3sgaWQgKyBpIH19LW1hc2spXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGlkPVwie3sgaWQgKyBpIH19LXNoYXBlLWJvcmRlclwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cInBhdGhcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC4yNVwiXG4gICAgICAgICAgICBzdHJva2U9XCIjODk5MTlBXCJcbiAgICAgICAgICAgIGZpbGw9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdGF0dXMtaW5kaWNhdG9yL3N0YXR1cy1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3RhdHVzLWluZGljYXRvci9zdGF0dXMtaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBUzVFLE1BQU0sT0FBTyxLQUFLO0lBQ2QsY0FBYztJQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO1FBQTNCLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQUcsQ0FBQztDQUNyRDtBQXFCRCxNQUFNLE9BQU8sd0JBQXdCO0lBMEZqQyxjQUFjO0lBQ2QsSUFBSSxjQUFjLENBQUMsU0FBMkI7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBMkJELGNBQWM7SUFDZCxZQUE0QixVQUFtQyxFQUFVLEdBQXNCO1FBQW5FLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFySC9GOzs7O1dBSUc7UUFFSCxTQUFJLEdBQXdCLElBQUksQ0FBQztRQTBCakM7OztXQUdHO1FBRUgsY0FBUyxHQUF3QixJQUFJLENBQUM7UUF3Q3RDOztXQUVHO1FBRUgsa0JBQWEs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LHNCQUFzQixFQUFFLHFDQUFxQzt3QkFDN0Qsc0JBQXNCLEVBQUUsR0FBRzt3QkFDM0Isc0JBQXNCLEVBQUUsS0FBSzt3QkFDN0IsaUJBQWlCLEVBQUUsb0JBQW9CO3FCQUMxQyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lJQU8vQyxFQUFFO3NCQURELEtBQUs7Z0JBU04sSUFBSTtzQkFESCxLQUFLO2dCQVNOLE1BQU07c0JBREwsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFPTixjQUFjO3NCQURiLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQWVOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBK0NOLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmV4cG9ydCB0eXBlIFN0YXR1c0luZGljYXRvclNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuZXhwb3J0IHR5cGUgU3RhdHVzSW5kaWNhdG9yQ29sb3IgPSAnbmVnYXRpdmUnIHwgJ2NyaXRpY2FsJyB8ICdwb3NpdGl2ZSc7XG5leHBvcnQgdHlwZSBMYWJsZVBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG5leHBvcnQgdHlwZSBGaWxsaW5nVHlwZSA9ICdyYWRpYWwnIHwgJ2FuZ2xlZCcgfCAnbGluZWFydXAnIHwgJ2xpbmVhcmRvd24nIHwgJ2xpbmVhcmxlZnQnO1xuZXhwb3J0IHR5cGUgRmlsbGluZ0RpcmVjdGlvbiA9ICdjbG9ja3dpc2UnIHwgJ2NvdW50ZXJjbG9ja3dpc2UnO1xuXG5leHBvcnQgY2xhc3MgUG9pbnQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHg6IG51bWJlciwgcHVibGljIHk6IG51bWJlcikge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zdGF0dXMtaW5kaWNhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhdHVzLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhdHVzLWluZGljYXRvci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ2FyaWFMYWJlbCcsXG4gICAgICAgICdbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl0nOiAnYXJpYVJvbGVEZXNjcmlwdGlvbicsXG4gICAgICAgICdbYXR0ci5mb2N1c2FibGVdJzogJ2ZvY3VzYWJsZScsXG4gICAgICAgICdbYXR0ci50aXRsZV0nOiAndGl0bGUnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVldGV4dF0nOiAnYXJpYVZhbHVlVGV4dCcsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbm93XSc6ICdmaWxsUGVyY2VudGFnZSA/IGZpbGxQZXJjZW50YWdlIDogMCcsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICcwJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtYXhdJzogJzEwMCcsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnZm9jdXNhYmxlID8gMCA6IC0xJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNJbmRpY2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENzc0NsYXNzQnVpbGRlciwgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiB2YWx1ZSBpZCBkZWZpbmVzIHRoZSBpZCBvZiB0aGUgb2JqZWN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhlIHNpemUgb2YgdGhlIHN0YXR1cyBpbmRpY2F0b3IuXG4gICAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnXG4gICAgICogRGVmYXVsdCBzaXplIGlzIE1lZGl1bShtZCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaXplOiBTdGF0dXNJbmRpY2F0b3JTaXplID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdGF0dXMgcmVwcmVzZW50ZWQgYnkgdGhlIFN0YXR1cyBJbmRpY2F0b3IuXG4gICAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiAnbmVnYXRpdmUnIHwgJ2NyaXRpY2FsJyB8ICdpbmZvcm1hdGl2ZSdcbiAgICAgKiBGb3IgZGVmYXVsdCBPYmplY3QgU3RhdHVzIG9taXQgdGhpcyBwcm9wZXJ0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzOiBTdGF0dXNJbmRpY2F0b3JDb2xvcjtcblxuICAgIC8qKiBEZWZpbmUgdGhlIHRleHQgY29udGVudCBvZiB0aGUgU3RhdHVzIGluZGljYXRvciovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXNMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogcG9zaXRpb25pbmcgb2YgdGhlIHN0YXR1cyBpbmRpY2F0b3IgaW1hZ2Ugd2l0aGluZyB0aGUgZGVmaW5lZCBoZWlnaHQgYW5kIHdpZHRoIC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZpZXdCb3g6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIGJvb2xlYW4gdmFsdWUgdG8gYmUgbWFya2VkIGFzIGEgY2xpY2thYmxlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjbGlja2FibGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBzdGF0dXMgaW5kaWNhdG9yLlxuICAgICAqIENhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxTaXplOiBTdGF0dXNJbmRpY2F0b3JTaXplID0gJ3NtJztcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgU3RhdHVzIEluZGljYXRvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBBcmlhIGRlZmluZXMgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGhlIFN0YXR1cyBJbmRpY2F0b3IuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFyaWEgRm9jdXNhYmxlIGZvciB0aGUgU3RhdHVzIEluZGljYXRvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKiBBcmlhIFJvbGUgZm9yIHRoZSBTdGF0dXMgSW5kaWNhdG9yLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm9sZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBBcmlhIFZhbHVlIFRleHQgZm9yIHRoZSBTdGF0dXMgSW5kaWNhdG9yLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYVZhbHVlVGV4dDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBBcmlhIHRpdGxlIGZvciB0aGUgc3RhdHVzIGluZGljYXRvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIGRlZmluZXMgdGhlIGxhYmVsIHBvc2l0aW9uIHRoZSB2YWx1ZSBjYW4gYmUgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbScgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsUG9zaXRpb246IExhYmxlUG9zaXRpb247XG5cbiAgICAvKiogUGF0aCBmb3IgdGhlIHN0YXR1cyBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhdGg6IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IHZhbHVlIHRvIGJlIGZpbGxlZCB1bmRlciB0aGUgZ2l2ZSBwZXJjZW50YXRnZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxQZXJjZW50YWdlOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiB2YWx1ZSB0byBkZWZpbmUgZmlsbCBkaXJlY3Rpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxEaXJlY3Rpb246IEZpbGxpbmdEaXJlY3Rpb24gPSAnY2xvY2t3aXNlJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0IF9maWxsRGlyZWN0aW9uKGRpcmVjdGlvbjogRmlsbGluZ0RpcmVjdGlvbikge1xuICAgICAgICB0aGlzLmZpbGxEaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgfVxuICAgIGdldCBfZmlsbERpcmVjdGlvbigpOiBGaWxsaW5nRGlyZWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsbERpcmVjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWxsaW5nVHlwZSB0byByZXByZXNlbnQgdGhlIGZpbGwgcGF0dGVybiBvZiB0aGUgY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWxsaW5nVHlwZTogRmlsbGluZ1R5cGUgPSAnbGluZWFyZG93bic7XG5cbiAgICAvKiogcmVwcmVzZW50IHRoZSBkZWdyZWUgb2YgYW5nbGUgdG8gcHJvamVjdCB0aGUgZmlsbGluZyBvZiB0aGUgY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBhbmdsZTogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmaWxsQ2FsY3VsYXRvcjogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYmluYXJ5U3RyaW5nOiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB4MTogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgeTE6IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHgyOiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB5Mjogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcG9pbnRzQXJyYXk6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FuZ2xlQ2FsY3VsYXRpb24oKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZUZpbGxpbmcoKTtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogQ3NzQ2xhc3NCdWlsZGVyIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHNpbmdsZSBzdHJpbmdcbiAgICAgKiBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3Igb3JkZXIgd2hpY2ggY3NzIGNsYXNzZXMgYXJlIGFwcGxpZWRcbiAgICAgKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2ZkLXN0YXR1cy1pbmRpY2F0b3InLFxuICAgICAgICAgICAgdGhpcy5zaXplID8gYGZkLXN0YXR1cy1pbmRpY2F0b3ItLSR7dGhpcy5zaXplfWAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID8gYGZkLXN0YXR1cy1pbmRpY2F0b3ItLSR7dGhpcy5zdGF0dXN9YCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jbGlja2FibGUgPyBgZmQtc3RhdHVzLWluZGljYXRvci0tbGlua2AgOiAnJyxcbiAgICAgICAgICAgIHRoaXMubGFiZWxQb3NpdGlvbiA9PT0gJ3JpZ2h0JyB8fCB0aGlzLmxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1xuICAgICAgICAgICAgICAgID8gYGZkLXN0YXR1cy1pbmRpY2F0b3ItLWhvcml6b250YWwtbGFiZWxgXG4gICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0ZUZpbGxpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGxQZXJjZW50YWdlIDwgMCB8fCB0aGlzLmZpbGxQZXJjZW50YWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsbENhbGN1bGF0b3IgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWxsQ2FsY3VsYXRvciA9ICh0aGlzLmZpbGxQZXJjZW50YWdlICogdGhpcy5wYXRoLmxlbmd0aCkgLyAxMDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FuZ2xlQ2FsY3VsYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGxldCBzUG9pbnRzQXR0cmlidXRlVmFsdWU6IEFycmF5PFBvaW50PjtcbiAgICAgICAgbGV0IHBvbHlnb25Qb2ludHM6IHN0cmluZztcbiAgICAgICAgc3dpdGNoICh0aGlzLmZpbGxpbmdUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdhbmdsZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYmluYXJ5U3RyaW5nID0gdGhpcy5fY29udmVydEFuZ2xlVG9CaW5hcnkodGhpcy5hbmdsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduQmluYXJ5VmFsdWUodGhpcy5iaW5hcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmFkaWFsJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBQZXJjZW50ID0gdGhpcy5maWxsQ2FsY3VsYXRvciAlIDE7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsbE51bWJlciA9IE51bWJlcih0ZW1wUGVyY2VudC50b0ZpeGVkKDIpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3ZnJyk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGVsZW1lbnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc1BvaW50c0F0dHJpYnV0ZVZhbHVlID0gdGhpcy5fZ2V0UG9seWdvblBvaW50c0ZvckNpcmN1bGFyRmlsbGluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxOdW1iZXIgKiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50W2ldLmdldEJCb3goKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uUG9pbnRzID0gc1BvaW50c0F0dHJpYnV0ZVZhbHVlLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBpdGVtLnggKyAnLCcgKyBpdGVtLnkgKyAnICcsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludHNBcnJheS5wdXNoKHBvbHlnb25Qb2ludHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2xpbmVhcnVwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmFyeVN0cmluZyA9IHRoaXMuX2NvbnZlcnRBbmdsZVRvQmluYXJ5KDkwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25CaW5hcnlWYWx1ZSh0aGlzLmJpbmFyeVN0cmluZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsaW5lYXJkb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmFyeVN0cmluZyA9IHRoaXMuX2NvbnZlcnRBbmdsZVRvQmluYXJ5KDI3MCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduQmluYXJ5VmFsdWUodGhpcy5iaW5hcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGluZWFybGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5hcnlTdHJpbmcgPSB0aGlzLl9jb252ZXJ0QW5nbGVUb0JpbmFyeSgxODApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkJpbmFyeVZhbHVlKHRoaXMuYmluYXJ5U3RyaW5nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmZFN0YXR1c0luZGljYXRvcjogTm8gZmlsbFR5cGUgZm91bmQgZm9yICR7dGhpcy5maWxsaW5nVHlwZX0uYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRBbmdsZVRvQmluYXJ5KGFuZ2xlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYW5nbGUgPiAwICYmIGFuZ2xlIDw9IDQ1KSB7XG4gICAgICAgICAgICByZXR1cm4gJzEsMCwwLDEnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDQ1ICYmIGFuZ2xlIDwgOTApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwwLDAsMSc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gOTAgJiYgYW5nbGUgPCAxMzUpIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwwLDAsMSc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gMTM1ICYmIGFuZ2xlIDwgMTgwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzAsMCwxLDEnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDE4MCAmJiBhbmdsZSA8IDIyNSkge1xuICAgICAgICAgICAgcmV0dXJuICcwLDAsMSwwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA+PSAyMjUgJiYgYW5nbGUgPCAyNzApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCwxLDEsMCc7XG4gICAgICAgIH0gZWxzZSBpZiAoYW5nbGUgPj0gMjcwICYmIGFuZ2xlIDwgMzE1KSB7XG4gICAgICAgICAgICByZXR1cm4gJzAsMSwwLDAnO1xuICAgICAgICB9IGVsc2UgaWYgKGFuZ2xlID49IDMxNSAmJiBhbmdsZSA8IDM2MCkge1xuICAgICAgICAgICAgcmV0dXJuICcxLDEsMCwwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbmdsZSA9PT0gMCB8fCBhbmdsZSA9PT0gMzYwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzEsMCwwLDAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXNzaWduQmluYXJ5VmFsdWUoYmluYXJ5U3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmluYXJ5VmFsdWUgPSBiaW5hcnlTdHJpbmcuc3BsaXQoJywnKTtcbiAgICAgICAgdGhpcy54MSA9IGJpbmFyeVZhbHVlWzBdO1xuICAgICAgICB0aGlzLnkxID0gYmluYXJ5VmFsdWVbMV07XG4gICAgICAgIHRoaXMueDIgPSBiaW5hcnlWYWx1ZVsyXTtcbiAgICAgICAgdGhpcy55MiA9IGJpbmFyeVZhbHVlWzNdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UG9seWdvblBvaW50c0ZvckNpcmN1bGFyRmlsbGluZyh2YWx1ZTogbnVtYmVyLCBib3VuZGluZ0JveFN2ZzogRE9NUmVjdCk6IEFycmF5PFBvaW50PiB7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gMy42ICogdmFsdWU7XG4gICAgICAgIGNvbnN0IHBvaW50czogUG9pbnRbXSA9IFtdO1xuICAgICAgICBsZXQgeERpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmU6IG51bWJlcjtcbiAgICAgICAgbGV0IHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlOiBudW1iZXI7XG4gICAgICAgIGxldCBwb2x5Z29uUG9pbnQ6IFBvaW50O1xuXG4gICAgICAgIC8vIHN0YXJ0cyBhdCAxMiwgdGhlIGFsZ29yaXRobSBjb21wdXRlcyB0aGUgY29vcmRpbmF0aW9uIGZvciBjbG9ja3dpc2UgZGlyZWN0aW9uIG9ubHlcbiAgICAgICAgLy8gY291bnRlciBjbG9ja3dpc2UgZGlyZWN0aW9uIGlzIG1hbmFnZWQgYnkgc3ltbWV0cnlcbiAgICAgICAgY29uc3Qgb1N0YXJ0UG9pbnQgPSBuZXcgUG9pbnQoYm91bmRpbmdCb3hTdmcueCArIGJvdW5kaW5nQm94U3ZnLndpZHRoIC8gMiwgYm91bmRpbmdCb3hTdmcueSk7XG4gICAgICAgIGNvbnN0IG9DZW50cmVQb2ludCA9IG5ldyBQb2ludChcbiAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCAvIDIsXG4gICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMlxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlZmxlY3RzIHggY29vcmRpbmF0ZSBieSBjZW50cmUgcG9pbnQgZm9yIENvdW50ZXIgQ2xvY2t3aXNlIHR5cGVcbiAgICAgICAgY29uc3QgX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZSA9IChvUG9pbnQ6IFBvaW50KTogUG9pbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgb1BvaW50KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGxEaXJlY3Rpb24gPT09ICdjb3VudGVyY2xvY2t3aXNlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlYRGlzdGFuY2VGcm9tQ2VudHJlID0gb1BvaW50LnggLSBvQ2VudHJlUG9pbnQueDtcbiAgICAgICAgICAgICAgICByZXMueCA9IG9DZW50cmVQb2ludC54IC0gaVhEaXN0YW5jZUZyb21DZW50cmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQm91bmRhcnkgY2VudHJlIGlzIGdpdmVuIGJ5IGFuZ2xlIGRpc3RhbmNlIGZyb20gdGhlIGJlZ2lubmluZyAoMMKwKS4gVGhlIHJldHVybmVkIGRpZmZlcmVuY2UgaXMgcmVsYXRlZFxuICAgICAgICAvLyB0byB4IG9yIHkgY29vcmRpbmF0ZSBkZXBlbmRpbmcgb24gYm91bmRhcnkgY2VudHJlIGFuZ2xlIChlLmcuIDDCsCAtPiB4LCA5MMKwIC0+IHksIDE4MMKwIC0+IHggIDI3MMKwIC0+IHkpLlxuICAgICAgICAvLyBCb3VuZGFyeSBsZW5ndGggaXMgbGVuZ3RoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZGUgb2YgYm91bmRpbmcgYm94ICh3aWR0aCBmb3IgeCwgaGVpZ2h0IGZvciB5KS5cbiAgICAgICAgY29uc3QgY29tcHV0ZURpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSAoXG4gICAgICAgICAgICBpbkFuZ2xlOiBudW1iZXIsXG4gICAgICAgICAgICBpQm91bmRhcnlDZW50cmVBbmdsZTogbnVtYmVyLFxuICAgICAgICAgICAgaUJvdW5kYXJ5TGVuZ3RoOiBudW1iZXJcbiAgICAgICAgKTogbnVtYmVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhbiA9IE1hdGgudGFuKCgoaUJvdW5kYXJ5Q2VudHJlQW5nbGUgLSBpbkFuZ2xlKSAqIE1hdGguUEkpIC8gMTgwKTtcblxuICAgICAgICAgICAgcmV0dXJuICh0YW4gKiBpQm91bmRhcnlMZW5ndGgpIC8gMjtcbiAgICAgICAgfTtcblxuICAgICAgICBwb2ludHMucHVzaChvU3RhcnRQb2ludCk7XG5cbiAgICAgICAgaWYgKDAgPCBhbmdsZSAmJiBhbmdsZSA8IDQ1KSB7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCAwLCBib3VuZGluZ0JveFN2Zy5oZWlnaHQpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KG9TdGFydFBvaW50LnggLSB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSwgb1N0YXJ0UG9pbnQueSk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKHBvbHlnb25Qb2ludCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKDQ1IDw9IGFuZ2xlKSB7XG4gICAgICAgICAgICBwb2ludHMucHVzaChcbiAgICAgICAgICAgICAgICBfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKG5ldyBQb2ludChib3VuZGluZ0JveFN2Zy54ICsgYm91bmRpbmdCb3hTdmcud2lkdGgsIGJvdW5kaW5nQm94U3ZnLnkpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICg0NSA8IGFuZ2xlICYmIGFuZ2xlIDwgMTM1KSB7XG4gICAgICAgICAgICB5RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCA5MCwgYm91bmRpbmdCb3hTdmcud2lkdGgpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMiAtIHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgxMzUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQb2ludChib3VuZGluZ0JveFN2Zy54ICsgYm91bmRpbmdCb3hTdmcud2lkdGgsIGJvdW5kaW5nQm94U3ZnLnkgKyBib3VuZGluZ0JveFN2Zy5oZWlnaHQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgxMzUgPCBhbmdsZSAmJiBhbmdsZSA8IDIyNSkge1xuICAgICAgICAgICAgeERpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSBjb21wdXRlRGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZShhbmdsZSwgMTgwLCBib3VuZGluZ0JveFN2Zy5oZWlnaHQpO1xuICAgICAgICAgICAgcG9seWdvblBvaW50ID0gbmV3IFBvaW50KFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnggKyBib3VuZGluZ0JveFN2Zy53aWR0aCAvIDIgKyB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgyMjUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UobmV3IFBvaW50KGJvdW5kaW5nQm94U3ZnLngsIGJvdW5kaW5nQm94U3ZnLnkgKyBib3VuZGluZ0JveFN2Zy5oZWlnaHQpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgyMjUgPCBhbmdsZSAmJiBhbmdsZSA8IDMxNSkge1xuICAgICAgICAgICAgeURpZmZlcmVuY2VGcm9tQm91bmRhcnlDZW50cmUgPSBjb21wdXRlRGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZShhbmdsZSwgMjcwLCBib3VuZGluZ0JveFN2Zy53aWR0aCk7XG4gICAgICAgICAgICBwb2x5Z29uUG9pbnQgPSBuZXcgUG9pbnQoXG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3hTdmcueCxcbiAgICAgICAgICAgICAgICBib3VuZGluZ0JveFN2Zy55ICsgYm91bmRpbmdCb3hTdmcuaGVpZ2h0IC8gMiArIHlEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9pbnRzLnB1c2goX2FkanVzdElmQ291bnRlckNsb2Nrd2lzZShwb2x5Z29uUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgzMTUgPD0gYW5nbGUpIHtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKF9hZGp1c3RJZkNvdW50ZXJDbG9ja3dpc2UobmV3IFBvaW50KGJvdW5kaW5nQm94U3ZnLngsIGJvdW5kaW5nQm94U3ZnLnkpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoMzE1IDwgYW5nbGUgJiYgYW5nbGUgPD0gMzYwKSB7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZUZyb21Cb3VuZGFyeUNlbnRyZSA9IGNvbXB1dGVEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlKGFuZ2xlLCAzNjAsIGJvdW5kaW5nQm94U3ZnLmhlaWdodCk7XG4gICAgICAgICAgICBwb2x5Z29uUG9pbnQgPSBuZXcgUG9pbnQoXG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3hTdmcueCArIGJvdW5kaW5nQm94U3ZnLndpZHRoIC8gMiAtIHhEaWZmZXJlbmNlRnJvbUJvdW5kYXJ5Q2VudHJlLFxuICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94U3ZnLnlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwb2ludHMucHVzaChfYWRqdXN0SWZDb3VudGVyQ2xvY2t3aXNlKHBvbHlnb25Qb2ludCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9pbnRzLnB1c2gob0NlbnRyZVBvaW50KTtcblxuICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIH1cbn1cbiIsIjxzcGFuXG4gICAgKm5nSWY9XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCcgfHwgbGFiZWxQb3NpdGlvbiA9PT0gJ3RvcCdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tc21dPVwibGFiZWxTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLW1kXT1cImxhYmVsU2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZ109XCJsYWJlbFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0teGxdPVwibGFiZWxTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLXRvcF09XCJsYWJlbFBvc2l0aW9uID09PSAndG9wJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgY2xhc3M9XCJmZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbFwiXG4gICAgPnt7IHN0YXR1c0xhYmVsIH19XG48L3NwYW4+XG48c3ZnXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIGRhdGEtc2FwLXVpPVwiX19zaGFwZTAtX19ib3gyMS0yNFwiXG4gICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgW2F0dHIudmlld0JveF09XCJ2aWV3Qm94XCJcbiAgICB4bG1ucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgY2xhc3M9XCJmZC1zdGF0dXMtaW5kaWNhdG9yX19zdmdcIlxuPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic3ZnVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvc3ZnPlxuPHNwYW5cbiAgICAqbmdJZj1cImxhYmVsUG9zaXRpb24gPT09ICdyaWdodCcgfHwgbGFiZWxQb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tc21dPVwibGFiZWxTaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLW1kXT1cImxhYmVsU2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLmZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsLS1sZ109XCJsYWJlbFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0teGxdPVwibGFiZWxTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MuZmQtc3RhdHVzLWluZGljYXRvcl9fbGFiZWwtLXJpZ2h0XT1cImxhYmVsUG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgIFtjbGFzcy5mZC1zdGF0dXMtaW5kaWNhdG9yX19sYWJlbC0tYm90dG9tXT1cImxhYmVsUG9zaXRpb24gPT09ICdib3R0b20nXCJcbiAgICBjbGFzcz1cImZkLXN0YXR1cy1pbmRpY2F0b3JfX2xhYmVsXCJcbiAgICA+e3sgc3RhdHVzTGFiZWwgfX1cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNzdmdUZW1wbGF0ZT5cbiAgICA8c3ZnXG4gICAgICAgIHhsbW5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgICAgIG92ZXJmbG93PVwidmlzaWJsZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImlkICsgaVwiXG4gICAgICAgIGRhdGEtc2FwLXVpPVwiaWRcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcGF0aCBvZiBwYXRoOyBsZXQgaSA9IGluZGV4XCJcbiAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKGZpbGxDYWxjdWxhdG9yIC0gaSA+IDAgJiYgZmlsbENhbGN1bGF0b3IgLSBpIDwgMSkgfHwgZmlsbGluZ1R5cGUgIT09ICdyYWRpYWwnXCJcbiAgICAgICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1ncmFkaWVudFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueDFdPVwieDFcIlxuICAgICAgICAgICAgICAgIFthdHRyLnkxXT1cInkxXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJ4MlwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTJdPVwieTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdG9wIFthdHRyLm9mZnNldF09XCJmaWxsQ2FsY3VsYXRvciAtIGlcIiBzdG9wLWNvbG9yPVwid2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJvZmZzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZXM9XCIwLCB7eyBmaWxsQ2FsY3VsYXRvciAtIGkgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cj1cIjFzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luPVwiMHNcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3RvcD5cbiAgICAgICAgICAgICAgICA8c3RvcCBbYXR0ci5vZmZzZXRdPVwiZmlsbENhbGN1bGF0b3IgLSBpXCIgc3RvcC1jb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhbmltYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwib2Zmc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIudmFsdWVzPVwiMCwge3sgZmlsbENhbGN1bGF0b3IgLSBpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbj1cIjBzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N0b3A+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgICAgPG1hc2sgI21hc2tUZW1wbGF0ZSBpZD1cInt7IGlkICsgaSB9fS1tYXNrXCI+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKGZpbGxDYWxjdWxhdG9yIC0gaSA+IDAgJiYgZmlsbENhbGN1bGF0b3IgLSBpIDwgMSkgfHwgZmlsbGluZ1R5cGUgIT09ICdyYWRpYWwnXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eyBpZCArIGkgfX0tbWFzay1zaGFwZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGF0dHIuZmlsbD1cInVybCgje3sgaWQgKyBpIH19LWdyYWRpZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICAgICAgICA8cG9seWdvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpbGxpbmdUeXBlID09PSAncmFkaWFsJyAmJiBmaWxsQ2FsY3VsYXRvciAtIGkgPiAwICYmIGZpbGxDYWxjdWxhdG9yIC0gaSA8IDFcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1tYXNrLXNoYXBlXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucG9pbnRzXT1cInBvaW50c0FycmF5W2ldXCJcbiAgICAgICAgICAgICAgICA+PC9wb2x5Z29uPlxuICAgICAgICAgICAgPC9tYXNrPlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICBpZD1cInt7IGlkICsgaSB9fS1zaGFwZVwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cInBhdGhcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMFwiXG4gICAgICAgICAgICBzdHJva2U9XCIjODk5MTlBXCJcbiAgICAgICAgICAgIGF0dHIubWFzaz1cInVybCgje3sgaWQgKyBpIH19LW1hc2spXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGlkPVwie3sgaWQgKyBpIH19LXNoYXBlLWJvcmRlclwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cInBhdGhcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC4yNVwiXG4gICAgICAgICAgICBzdHJva2U9XCIjODk5MTlBXCJcbiAgICAgICAgICAgIGZpbGw9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
import { Directive,
|
|
1
|
+
import { Directive, HostBinding, Input, QueryList, ContentChildren } from '@angular/core';
|
|
2
2
|
import { FD_CHECKBOX_COMPONENT } from '@fundamental-ngx/core/checkbox';
|
|
3
|
-
import { FocusableItemDirective } from '@fundamental-ngx/cdk/utils';
|
|
3
|
+
import { DestroyedService, FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItemDirective } from '@fundamental-ngx/cdk/utils';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
|
|
6
|
-
export class TableCellDirective {
|
|
5
|
+
export class TableCellDirective extends FocusableItemDirective {
|
|
7
6
|
/** @hidden */
|
|
8
7
|
set focusable(value) {
|
|
9
|
-
this.
|
|
8
|
+
this.fdkFocusableItem = value;
|
|
10
9
|
}
|
|
11
10
|
get focusable() {
|
|
12
|
-
return this.
|
|
13
|
-
}
|
|
14
|
-
/** Function, that creates a string to be announced by screen-reader whenever cell receives focus */
|
|
15
|
-
set cellFocusedEventAnnouncer(announcer) {
|
|
16
|
-
this._focusableItemDirective.cellFocusedEventAnnouncer = announcer;
|
|
11
|
+
return this.fdkFocusableItem;
|
|
17
12
|
}
|
|
18
13
|
/** @hidden */
|
|
19
|
-
constructor(
|
|
20
|
-
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
21
16
|
/** Whether to show the table cell's horizontal borders */
|
|
22
17
|
this.noBorderX = false;
|
|
23
18
|
/** Whether to show the table cell's vertical borders */
|
|
@@ -34,9 +29,7 @@ export class TableCellDirective {
|
|
|
34
29
|
this.noData = false;
|
|
35
30
|
/** @hidden */
|
|
36
31
|
this._fdTableCellClass = true;
|
|
37
|
-
|
|
38
|
-
this._focusableItemDirective = inject(FocusableItemDirective);
|
|
39
|
-
this._focusableItemDirective.fdkFocusableItem = false;
|
|
32
|
+
this.fdkFocusableItem = false;
|
|
40
33
|
}
|
|
41
34
|
/** @hidden */
|
|
42
35
|
ngAfterContentInit() {
|
|
@@ -49,21 +42,35 @@ export class TableCellDirective {
|
|
|
49
42
|
}
|
|
50
43
|
}
|
|
51
44
|
}
|
|
52
|
-
TableCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableCellDirective, deps: [
|
|
53
|
-
TableCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: { noBorderX: "noBorderX", noBorderY: "noBorderY", activable: "activable", focusable: "focusable", hoverable: "hoverable", fitContent: "fitContent", noPadding: "noPadding", noData: "noData", key: "key"
|
|
45
|
+
TableCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
TableCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: { noBorderX: "noBorderX", noBorderY: "noBorderY", activable: "activable", focusable: "focusable", hoverable: "hoverable", fitContent: "fitContent", noPadding: "noPadding", noData: "noData", key: "key" }, host: { properties: { "class.fd-table__cell--no-horizontal-border": "this.noBorderX", "class.fd-table__cell--no-vertical-border": "this.noBorderY", "class.fd-table__cell--activable": "this.activable", "class.fd-table__cell--focusable": "this.focusable", "class.fd-table__cell--hoverable": "this.hoverable", "class.fd-table__cell--fit-content": "this.fitContent", "class.fd-table__cell--no-padding": "this.noPadding", "class.fd-table__cell--no-data": "this.noData", "class.fd-table__cell": "this._fdTableCellClass" } }, providers: [
|
|
47
|
+
{
|
|
48
|
+
provide: FocusableItemDirective,
|
|
49
|
+
useExisting: TableCellDirective
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
|
|
53
|
+
useExisting: TableCellDirective
|
|
54
|
+
},
|
|
55
|
+
DestroyedService
|
|
56
|
+
], queries: [{ propertyName: "_checkboxes", predicate: FD_CHECKBOX_COMPONENT }], usesInheritance: true, ngImport: i0 });
|
|
54
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableCellDirective, decorators: [{
|
|
55
58
|
type: Directive,
|
|
56
59
|
args: [{
|
|
57
60
|
selector: '[fdTableCell], [fd-table-cell]',
|
|
58
|
-
|
|
61
|
+
providers: [
|
|
59
62
|
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
provide: FocusableItemDirective,
|
|
64
|
+
useExisting: TableCellDirective
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
|
|
68
|
+
useExisting: TableCellDirective
|
|
69
|
+
},
|
|
70
|
+
DestroyedService
|
|
64
71
|
]
|
|
65
72
|
}]
|
|
66
|
-
}], ctorParameters: function () { return [
|
|
73
|
+
}], ctorParameters: function () { return []; }, propDecorators: { noBorderX: [{
|
|
67
74
|
type: HostBinding,
|
|
68
75
|
args: ['class.fd-table__cell--no-horizontal-border']
|
|
69
76
|
}, {
|
|
@@ -105,8 +112,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
105
112
|
type: Input
|
|
106
113
|
}], key: [{
|
|
107
114
|
type: Input
|
|
108
|
-
}], cellFocusedEventAnnouncer: [{
|
|
109
|
-
type: Input
|
|
110
115
|
}], _checkboxes: [{
|
|
111
116
|
type: ContentChildren,
|
|
112
117
|
args: [FD_CHECKBOX_COMPONENT]
|
|
@@ -114,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
114
119
|
type: HostBinding,
|
|
115
120
|
args: ['class.fd-table__cell']
|
|
116
121
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJsZS9kaXJlY3RpdmVzL3RhYmxlLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBaUJwSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBZ0IxRCxjQUFjO0lBQ2QsSUFFSSxTQUFTLENBQUMsS0FBbUI7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQWtDRCxjQUFjO0lBQ2Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQTNEWiwwREFBMEQ7UUFHMUQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix3REFBd0Q7UUFHeEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiwwQ0FBMEM7UUFHMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVlsQiwwQ0FBMEM7UUFHMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw0REFBNEQ7UUFHNUQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQiw2REFBNkQ7UUFHN0QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw2REFBNkQ7UUFHN0QsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVVmLGNBQWM7UUFFZCxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFLckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztJQUNkLGtCQUFrQjtRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDOzsrR0EzRVEsa0JBQWtCO21HQUFsQixrQkFBa0Isb3hCQVpoQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixXQUFXLEVBQUUsa0JBQWtCO1NBQ2xDO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFdBQVcsRUFBRSxrQkFBa0I7U0FDbEM7UUFDRCxnQkFBZ0I7S0FDbkIsc0RBcURnQixxQkFBcUI7MkZBbkQ3QixrQkFBa0I7a0JBZDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsb0JBQW9CO3lCQUNsQzt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLG9CQUFvQjt5QkFDbEM7d0JBQ0QsZ0JBQWdCO3FCQUNuQjtpQkFDSjswRUFLRyxTQUFTO3NCQUZSLFdBQVc7dUJBQUMsNENBQTRDOztzQkFDeEQsS0FBSztnQkFNTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsMENBQTBDOztzQkFDdEQsS0FBSztnQkFNTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFDN0MsS0FBSztnQkFNRixTQUFTO3NCQUZaLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFDN0MsS0FBSztnQkFXTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFDN0MsS0FBSztnQkFNTixVQUFVO3NCQUZULFdBQVc7dUJBQUMsbUNBQW1DOztzQkFDL0MsS0FBSztnQkFNTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsa0NBQWtDOztzQkFDOUMsS0FBSztnQkFNTixNQUFNO3NCQUZMLFdBQVc7dUJBQUMsK0JBQStCOztzQkFDM0MsS0FBSztnQkFLTixHQUFHO3NCQURGLEtBQUs7Z0JBS04sV0FBVztzQkFEVixlQUFlO3VCQUFDLHFCQUFxQjtnQkFLdEMsaUJBQWlCO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBRdWVyeUxpc3QsIENvbnRlbnRDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQsIEZEX0NIRUNLQk9YX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jaGVja2JveCc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCBGb2N1c2FibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRUYWJsZUNlbGxdLCBbZmQtdGFibGUtY2VsbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRhYmxlQ2VsbERpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRhYmxlQ2VsbERpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxEaXJlY3RpdmUgZXh0ZW5kcyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdGFibGUgY2VsbCdzIGhvcml6b250YWwgYm9yZGVycyAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX2NlbGwtLW5vLWhvcml6b250YWwtYm9yZGVyJylcbiAgICBASW5wdXQoKVxuICAgIG5vQm9yZGVyWCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdGFibGUgY2VsbCdzIHZlcnRpY2FsIGJvcmRlcnMgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYmxlX19jZWxsLS1uby12ZXJ0aWNhbC1ib3JkZXInKVxuICAgIEBJbnB1dCgpXG4gICAgbm9Cb3JkZXJZID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgY2VsbCBpcyBhY3RpdmFibGUgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYmxlX19jZWxsLS1hY3RpdmFibGUnKVxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZvY3VzYWJsZScpXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9jdXNhYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5mZGtGb2N1c2FibGVJdGVtID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBmb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZka0ZvY3VzYWJsZUl0ZW07XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIGNlbGwgaXMgaG92ZXJhYmxlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fY2VsbC0taG92ZXJhYmxlJylcbiAgICBASW5wdXQoKVxuICAgIGhvdmVyYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIGNlbGwncyB3aWR0aCBzaG91bGQgZml0IHRvIGNvbnRlbnQgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fY2VsbC0tZml0LWNvbnRlbnQnKVxuICAgIEBJbnB1dCgpXG4gICAgZml0Q29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIGNlbGwgc2hvdWxkbid0IGhhdmUgcGFkZGluZyBvbiBzaWRlcyAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX2NlbGwtLW5vLXBhZGRpbmcnKVxuICAgIEBJbnB1dCgpXG4gICAgbm9QYWRkaW5nID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgY2VsbCBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBubyBkYXRhICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fY2VsbC0tbm8tZGF0YScpXG4gICAgQElucHV0KClcbiAgICBub0RhdGEgPSBmYWxzZTtcblxuICAgIC8qKiBLZXkgb2YgYSBjZWxsIGVsZW1lbnQsIGl0J3MgdXNlZCB0byBpZGVudGlmeSB0aGlzIGNlbGwgd2l0aCBjZXJ0YWluIGNvbHVtbiAqL1xuICAgIEBJbnB1dCgpXG4gICAga2V5OiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRfQ0hFQ0tCT1hfQ09NUE9ORU5UKVxuICAgIF9jaGVja2JveGVzOiBRdWVyeUxpc3Q8Q2hlY2tib3hDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYmxlX19jZWxsJylcbiAgICBfZmRUYWJsZUNlbGxDbGFzcyA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmICh0aGlzLl9jaGVja2JveGVzICYmIHRoaXMuX2NoZWNrYm94ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2ZkLXRhYmxlX19jZWxsLS1jaGVja2JveCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubm9EYXRhKSB7XG4gICAgICAgICAgICBjZWxsLnNldEF0dHJpYnV0ZSgnY29sc3BhbicsICcxMDAlJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -4,8 +4,8 @@ import { applyCssClass } from '@fundamental-ngx/cdk/utils';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class TableIconDirective {
|
|
6
6
|
/** @hidden */
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
7
|
+
constructor(elementRef) {
|
|
8
|
+
this.elementRef = elementRef;
|
|
9
9
|
/** @hidden */
|
|
10
10
|
this.fdTableIconClass = true;
|
|
11
11
|
/** The property allows user to pass additional css classes
|
|
@@ -42,12 +42,6 @@ export class TableIconDirective {
|
|
|
42
42
|
this.class
|
|
43
43
|
];
|
|
44
44
|
}
|
|
45
|
-
/** HasElementRef interface implementation
|
|
46
|
-
* function used by applyCssClass and applyCssStyle decorators
|
|
47
|
-
*/
|
|
48
|
-
elementRef() {
|
|
49
|
-
return this._elementRef;
|
|
50
|
-
}
|
|
51
45
|
}
|
|
52
46
|
TableIconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableIconDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
47
|
TableIconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: { class: "class", glyph: "glyph", navigation: "navigation" }, host: { properties: { "class.fd-table__icon": "this.fdTableIconClass" } }, usesOnChanges: true, ngImport: i0 });
|
|
@@ -72,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
72
66
|
}], navigation: [{
|
|
73
67
|
type: Input
|
|
74
68
|
}], buildComponentCssClass: [] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJsZS9kaXJlY3RpdmVzL3RhYmxlLWljb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFtQixNQUFNLDRCQUE0QixDQUFDOztBQUs1RSxNQUFNLE9BQU8sa0JBQWtCO0lBcUIzQixjQUFjO0lBQ2QsWUFBNEIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXJCbEQsY0FBYztRQUVkLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QjtXQUNHO1FBRUksVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVsQjs7O1dBR0c7UUFFSSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGdEQUFnRDtRQUVoRCxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBR2tDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsV0FBVztRQUNQLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFFSCxzQkFBc0I7UUFDbEIsT0FBTztZQUNILGdCQUFnQjtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSztTQUNiLENBQUM7SUFDTixDQUFDOzsrR0FqRFEsa0JBQWtCO21HQUFsQixrQkFBa0I7QUF5QzNCO0lBQUMsYUFBYTs7OztnRUFRYjsyRkFqRFEsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7aUJBQzdDO2lHQUlHLGdCQUFnQjtzQkFEZixXQUFXO3VCQUFDLHNCQUFzQjtnQkFNNUIsS0FBSztzQkFEWCxLQUFLO2dCQVFDLEtBQUs7c0JBRFgsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBd0JOLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZFRhYmxlSWNvbl0sIFtmZC10YWJsZS1pY29uXSdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVJY29uRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBDc3NDbGFzc0J1aWxkZXIsIE9uSW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYmxlX19pY29uJylcbiAgICBmZFRhYmxlSWNvbkNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBUaGUgcHJvcGVydHkgYWxsb3dzIHVzZXIgdG8gcGFzcyBhZGRpdGlvbmFsIGNzcyBjbGFzc2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xhc3MgPSAnJztcblxuICAgIC8qKiBUaGUgaWNvbiB0byBpbmNsdWRlIGluIHRoZSBidXR0b24uIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29ucy5cbiAgICAgKiBTZXR0ZXIgaXMgdXNlZCB0byBjb250cm9sIHdoZW4gY3NzIGNsYXNzIGhhdmUgdG8gYmUgcmVidWlsZGVkLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgc2V0IHRvICcnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdseXBoID0gJyc7XG5cbiAgICAvKiogV2hldGhlciBvciBubyBpY29uIGlzIHVzZWQgYXMgbmF2aWdhdGlvbiAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRpb24gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogRnVuY3Rpb24gcnVucyB3aGVuIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZFxuICAgICAqIGZ1bmN0aW9uIHNob3VsZCBidWlsZCBjb21wb25lbnQgY3NzIGNsYXNzXG4gICAgICogZnVuY3Rpb24gc2hvdWxkIGJ1aWxkIGNzcyBzdHlsZVxuICAgICAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZmQtdGFibGVfX2ljb24nLFxuICAgICAgICAgICAgdGhpcy5nbHlwaCA/IGBzYXAtaWNvbi0tJHt0aGlzLmdseXBofWAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbiA/ICdmZC10YWJsZV9faWNvbi0tbmF2aWdhdGlvbicgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -2,24 +2,22 @@ import { ChangeDetectorRef, ContentChildren, Directive, ElementRef, HostBinding,
|
|
|
2
2
|
import { startWith } from 'rxjs/operators';
|
|
3
3
|
import { TableService } from '../table.service';
|
|
4
4
|
import { TableCellDirective } from './table-cell.directive';
|
|
5
|
-
import {
|
|
5
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
|
+
import { DestroyedService, FDK_FOCUSABLE_LIST_DIRECTIVE, FocusableListDirective } from '@fundamental-ngx/cdk/utils';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../table.service";
|
|
8
|
-
import * as i2 from "@fundamental-ngx/cdk/utils";
|
|
9
8
|
export const HIDDEN_CLASS_NAME = 'fd-table--hidden';
|
|
10
|
-
export class TableRowDirective {
|
|
9
|
+
export class TableRowDirective extends FocusableListDirective {
|
|
11
10
|
/** Whether the table row is focusable */
|
|
12
11
|
set focusable(value) {
|
|
13
|
-
this.
|
|
12
|
+
this._focusable = coerceBooleanProperty(value);
|
|
13
|
+
this.setTabbable(this._focusable);
|
|
14
14
|
}
|
|
15
15
|
get focusable() {
|
|
16
|
-
return this.
|
|
16
|
+
return this._focusable;
|
|
17
17
|
}
|
|
18
18
|
/** @hidden */
|
|
19
|
-
constructor(
|
|
20
|
-
|
|
21
|
-
this._tableService = _tableService;
|
|
22
|
-
this.elementRef = elementRef;
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
23
21
|
/** @hidden */
|
|
24
22
|
this.fdTableRowClass = true;
|
|
25
23
|
/** Whether the table row is activable */
|
|
@@ -36,21 +34,27 @@ export class TableRowDirective {
|
|
|
36
34
|
/** Whether the table row is active. */
|
|
37
35
|
this.active = false;
|
|
38
36
|
/** @hidden */
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
this.
|
|
37
|
+
this._changeDetRef = inject(ChangeDetectorRef);
|
|
38
|
+
/** @hidden */
|
|
39
|
+
this._tableService = inject(TableService);
|
|
40
|
+
/** @hidden */
|
|
41
|
+
this.elementRef = inject(ElementRef);
|
|
42
42
|
}
|
|
43
43
|
/** @hidden */
|
|
44
44
|
ngOnInit() {
|
|
45
|
+
this.navigationDirection = 'grid';
|
|
46
|
+
this._updateNavigationDirection();
|
|
45
47
|
this._propagateKeysSubscription = this._tableService.propagateKeys$.subscribe((keys) => this._resetCells(keys));
|
|
46
48
|
}
|
|
47
49
|
/** @hidden */
|
|
48
50
|
ngAfterViewInit() {
|
|
51
|
+
super.ngAfterViewInit();
|
|
49
52
|
this._resetCells(this._tableService.propagateKeys$.getValue());
|
|
50
53
|
this._setupCellsSubscription();
|
|
51
54
|
}
|
|
52
55
|
/** @hidden */
|
|
53
56
|
ngOnDestroy() {
|
|
57
|
+
super.ngOnDestroy();
|
|
54
58
|
this._propagateKeysSubscription.unsubscribe();
|
|
55
59
|
}
|
|
56
60
|
/** @hidden */
|
|
@@ -95,16 +99,27 @@ export class TableRowDirective {
|
|
|
95
99
|
});
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
|
-
TableRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableRowDirective, deps: [
|
|
99
|
-
TableRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: { activable: "activable", highlightActive: "highlightActive", hoverable: "hoverable", focusable: "focusable", main: "main", secondary: "secondary", active: "active" }, host: { properties: { "class.fd-table__row": "this.fdTableRowClass", "class.fd-table__row--activable": "this.activable", "class.fd-table__row--hoverable": "this.hoverable", "class.fd-table__row--focusable": "this.focusable", "class.fd-table__row--main": "this.main", "class.fd-table__row--secondary": "this.secondary", "class.is-selected": "this.active" } }, providers: [
|
|
102
|
+
TableRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
103
|
+
TableRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: { activable: "activable", highlightActive: "highlightActive", hoverable: "hoverable", focusable: "focusable", main: "main", secondary: "secondary", active: "active" }, host: { properties: { "class.fd-table__row": "this.fdTableRowClass", "class.fd-table__row--activable": "this.activable", "class.fd-table__row--hoverable": "this.hoverable", "class.fd-table__row--focusable": "this.focusable", "class.fd-table__row--main": "this.main", "class.fd-table__row--secondary": "this.secondary", "class.is-selected": "this.active" } }, providers: [
|
|
104
|
+
{
|
|
105
|
+
provide: FDK_FOCUSABLE_LIST_DIRECTIVE,
|
|
106
|
+
useExisting: TableRowDirective
|
|
107
|
+
},
|
|
108
|
+
DestroyedService
|
|
109
|
+
], queries: [{ propertyName: "cells", predicate: TableCellDirective }], usesInheritance: true, ngImport: i0 });
|
|
100
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TableRowDirective, decorators: [{
|
|
101
111
|
type: Directive,
|
|
102
112
|
args: [{
|
|
103
113
|
selector: '[fdTableRow], [fd-table-row]',
|
|
104
|
-
providers: [
|
|
105
|
-
|
|
114
|
+
providers: [
|
|
115
|
+
{
|
|
116
|
+
provide: FDK_FOCUSABLE_LIST_DIRECTIVE,
|
|
117
|
+
useExisting: TableRowDirective
|
|
118
|
+
},
|
|
119
|
+
DestroyedService
|
|
120
|
+
]
|
|
106
121
|
}]
|
|
107
|
-
}], ctorParameters: function () { return [
|
|
122
|
+
}], ctorParameters: function () { return []; }, propDecorators: { cells: [{
|
|
108
123
|
type: ContentChildren,
|
|
109
124
|
args: [TableCellDirective]
|
|
110
125
|
}], fdTableRowClass: [{
|
|
@@ -143,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
143
158
|
}, {
|
|
144
159
|
type: Input
|
|
145
160
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RhYmxlL2RpcmVjdGl2ZXMvdGFibGUtcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBRXRGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUF3QjFCLHlDQUF5QztJQUN6QyxJQUVJLFNBQVMsQ0FBQyxLQUFtQjtRQUM3QixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUF1QkQsY0FBYztJQUNkLFlBQ1ksYUFBZ0MsRUFDaEMsYUFBMkIsRUFDNUIsVUFBMkM7UUFGMUMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQWlDO1FBdER0RCxjQUFjO1FBRWQsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIseUNBQXlDO1FB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QUM7aUJBQzNDOzRKQUlHLEtBQUs7c0JBREosZUFBZTt1QkFBQyxrQkFBa0I7Z0JBS25DLGVBQWU7c0JBRGQsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBTWxDLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO2dCQU1OLGVBQWU7c0JBRGQsS0FBSztnQkFNTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFDNUMsS0FBSztnQkFNRixTQUFTO3NCQUZaLFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFDNUMsS0FBSztnQkFXTixJQUFJO3NCQUZILFdBQVc7dUJBQUMsMkJBQTJCOztzQkFDdkMsS0FBSztnQkFNTixTQUFTO3NCQUZSLFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFDNUMsS0FBSztnQkFNTixNQUFNO3NCQUZMLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFRhYmxlU2VydmljZSB9IGZyb20gJy4uL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSwgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IEhJRERFTl9DTEFTU19OQU1FID0gJ2ZkLXRhYmxlLS1oaWRkZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZFRhYmxlUm93XSwgW2ZkLXRhYmxlLXJvd10nLFxuICAgIHByb3ZpZGVyczogW0Rlc3Ryb3llZFNlcnZpY2VdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbRm9jdXNhYmxlTGlzdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRhYmxlQ2VsbERpcmVjdGl2ZSlcbiAgICBjZWxsczogUXVlcnlMaXN0PFRhYmxlQ2VsbERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3JvdycpXG4gICAgZmRUYWJsZVJvd0NsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgYWN0aXZhYmxlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fcm93LS1hY3RpdmFibGUnKVxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIGhvdmVyYWJsZSAqL1xuICAgIC8qKiBXaGV0aGVyIHRvIGhpZ2hsaWdodCBhY3RpdmUgcm93IHdoZW4gY2xpY2tlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZ2hsaWdodEFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqICBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgaG92ZXJhYmxlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fcm93LS1ob3ZlcmFibGUnKVxuICAgIEBJbnB1dCgpXG4gICAgaG92ZXJhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIGZvY3VzYWJsZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3Jvdy0tZm9jdXNhYmxlJylcbiAgICBASW5wdXQoKVxuICAgIHNldCBmb2N1c2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0RGlyZWN0aXZlLmZvY3VzYWJsZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgZm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlTGlzdERpcmVjdGl2ZS5mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyBpcyBtYWluIHJvdywgaXQncyBjb25jZXJuZWQgb25seSBvbiBwb3AgaW4gbW9kZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3Jvdy0tbWFpbicpXG4gICAgQElucHV0KClcbiAgICBtYWluID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIHNlY29uZGFyeSByb3csIGl0J3MgY29uY2VybmVkIG9ubHkgb24gcG9wIGluIG1vZGUgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYmxlX19yb3ctLXNlY29uZGFyeScpXG4gICAgQElucHV0KClcbiAgICBzZWNvbmRhcnkgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgYWN0aXZlLiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtc2VsZWN0ZWQnKVxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Byb3BhZ2F0ZUtleXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlTGlzdERpcmVjdGl2ZSA9IGluamVjdChGb2N1c2FibGVMaXN0RGlyZWN0aXZlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3RhYmxlU2VydmljZTogVGFibGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PlxuICAgICkge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0RGlyZWN0aXZlLm5hdmlnYXRpb25EaXJlY3Rpb24gPSAnZ3JpZCc7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3REaXJlY3RpdmUuX3VwZGF0ZU5hdmlnYXRpb25EaXJlY3Rpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVLZXlzU3Vic2NyaXB0aW9uID0gdGhpcy5fdGFibGVTZXJ2aWNlLnByb3BhZ2F0ZUtleXMkLnN1YnNjcmliZSgoa2V5czogc3RyaW5nW10pID0+XG4gICAgICAgICAgICB0aGlzLl9yZXNldENlbGxzKGtleXMpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2V0Q2VsbHModGhpcy5fdGFibGVTZXJ2aWNlLnByb3BhZ2F0ZUtleXMkLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLl9zZXR1cENlbGxzU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlS2V5c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXRDZWxscyhrZXlzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jZWxscyAmJiBrZXlzICYmIGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmlzaWJpbGl0eShrZXlzKTtcblxuICAgICAgICAgICAgY29uc3Qgc29ydGVkQ2VsbHMgPSB0aGlzLmNlbGxzLnRvQXJyYXkoKS5zb3J0KChhLCBiKSA9PiB0aGlzLl9zb3J0TWV0aG9kKGEsIGIsIGtleXMpKTtcblxuICAgICAgICAgICAgdGhpcy5jZWxscy5yZXNldChzb3J0ZWRDZWxscyk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NvcnROYXRpdmVFbGVtZW50cygpO1xuXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zb3J0TWV0aG9kKGE6IFRhYmxlQ2VsbERpcmVjdGl2ZSwgYjogVGFibGVDZWxsRGlyZWN0aXZlLCBrZXlzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgICAgIGlmIChrZXlzLmZpbmRJbmRleCgoX2tleSkgPT4gX2tleSA9PT0gYS5rZXkpIDwga2V5cy5maW5kSW5kZXgoKF9rZXkpID0+IF9rZXkgPT09IGIua2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NvcnROYXRpdmVFbGVtZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZWxscy5mb3JFYWNoKChjZWxsKSA9PlxuICAgICAgICAgICAgY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZT8uYXBwZW5kQ2hpbGQoY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGFuZ2VWaXNpYmlsaXR5KGtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2VsbHMuZm9yRWFjaCgoY2VsbCkgPT4gY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShISURERU5fQ0xBU1NfTkFNRSkpO1xuICAgICAgICBjb25zdCBub3RGb3VuZEVsZW1lbnRzOiBUYWJsZUNlbGxEaXJlY3RpdmVbXSA9IHRoaXMuY2VsbHMuZmlsdGVyKFxuICAgICAgICAgICAgKGNlbGwpID0+ICFrZXlzLmZpbmQoKGtleSkgPT4ga2V5ID09PSBjZWxsLmtleSlcbiAgICAgICAgKTtcbiAgICAgICAgbm90Rm91bmRFbGVtZW50cy5mb3JFYWNoKHRoaXMuX2hpZGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGVFbGVtZW50KGVsZW1lbnQ6IFRhYmxlQ2VsbERpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBlbGVtZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKEhJRERFTl9DTEFTU19OQU1FKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwQ2VsbHNTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2VsbHMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2VsbHMuZm9yRWFjaCgoY2VsbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjZWxsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcmlhQ29sSW5kZXggPSBpbmRleC50b1N0cmluZygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RhYmxlL2RpcmVjdGl2ZXMvdGFibGUtcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFZcEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHNCQUFzQjtJQXdCekQseUNBQXlDO0lBQ3pDLElBRUksU0FBUyxDQUFDLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBMkJELGNBQWM7SUFDZDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBMURaLGNBQWM7UUFFZCxvQkFBZSxHQUFHLElBQUksQ0FBQztR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QkFSZjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsaUJBQWlCO1NBQ2pDO1FBQ0QsZ0JBQWdCO0tBQ25CLGdEQUlnQixrQkFBa0I7MkZBRjFCLGlCQUFpQjtrQkFWN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyxtQkFBbUI7eUJBQ2pDO3dCQUNELGdCQUFnQjtxQkFDbkI7aUJBQ0o7MEVBSUcsS0FBSztzQkFESixlQUFlO3VCQUFDLGtCQUFrQjtnQkFLbkMsZUFBZTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFNbEMsU0FBUztzQkFGUixXQUFXO3VCQUFDLGdDQUFnQzs7c0JBQzVDLEtBQUs7Z0JBTU4sZUFBZTtzQkFEZCxLQUFLO2dCQU1OLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO2dCQU1GLFNBQVM7c0JBRlosV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO2dCQWFOLElBQUk7c0JBRkgsV0FBVzt1QkFBQywyQkFBMkI7O3NCQUN2QyxLQUFLO2dCQU1OLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO2dCQU1OLE1BQU07c0JBRkwsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUMvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUNlbGxEaXJlY3RpdmUgfSBmcm9tICcuL3RhYmxlLWNlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UsIEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBISURERU5fQ0xBU1NfTkFNRSA9ICdmZC10YWJsZS0taGlkZGVuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRUYWJsZVJvd10sIFtmZC10YWJsZS1yb3ddJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZVJvd0RpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVJvd0RpcmVjdGl2ZSBleHRlbmRzIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRhYmxlQ2VsbERpcmVjdGl2ZSlcbiAgICBjZWxsczogUXVlcnlMaXN0PFRhYmxlQ2VsbERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3JvdycpXG4gICAgZmRUYWJsZVJvd0NsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgYWN0aXZhYmxlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fcm93LS1hY3RpdmFibGUnKVxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIGhvdmVyYWJsZSAqL1xuICAgIC8qKiBXaGV0aGVyIHRvIGhpZ2hsaWdodCBhY3RpdmUgcm93IHdoZW4gY2xpY2tlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZ2hsaWdodEFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqICBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgaG92ZXJhYmxlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fcm93LS1ob3ZlcmFibGUnKVxuICAgIEBJbnB1dCgpXG4gICAgaG92ZXJhYmxlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIGZvY3VzYWJsZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3Jvdy0tZm9jdXNhYmxlJylcbiAgICBASW5wdXQoKVxuICAgIHNldCBmb2N1c2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG4gICAgZ2V0IGZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGlzIG1haW4gcm93LCBpdCdzIGNvbmNlcm5lZCBvbmx5IG9uIHBvcCBpbiBtb2RlICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJsZV9fcm93LS1tYWluJylcbiAgICBASW5wdXQoKVxuICAgIG1haW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0YWJsZSByb3cgaXMgc2Vjb25kYXJ5IHJvdywgaXQncyBjb25jZXJuZWQgb25seSBvbiBwb3AgaW4gbW9kZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFibGVfX3Jvdy0tc2Vjb25kYXJ5JylcbiAgICBASW5wdXQoKVxuICAgIHNlY29uZGFyeSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyBpcyBhY3RpdmUuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgQElucHV0KClcbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlS2V5c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uRGlyZWN0aW9uID0gJ2dyaWQnO1xuICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuX3Byb3BhZ2F0ZUtleXNTdWJzY3JpcHRpb24gPSB0aGlzLl90YWJsZVNlcnZpY2UucHJvcGFnYXRlS2V5cyQuc3Vic2NyaWJlKChrZXlzOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0Q2VsbHMoa2V5cylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuX3Jlc2V0Q2VsbHModGhpcy5fdGFibGVTZXJ2aWNlLnByb3BhZ2F0ZUtleXMkLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLl9zZXR1cENlbGxzU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlS2V5c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXRDZWxscyhrZXlzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jZWxscyAmJiBrZXlzICYmIGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmlzaWJpbGl0eShrZXlzKTtcblxuICAgICAgICAgICAgY29uc3Qgc29ydGVkQ2VsbHMgPSB0aGlzLmNlbGxzLnRvQXJyYXkoKS5zb3J0KChhLCBiKSA9PiB0aGlzLl9zb3J0TWV0aG9kKGEsIGIsIGtleXMpKTtcblxuICAgICAgICAgICAgdGhpcy5jZWxscy5yZXNldChzb3J0ZWRDZWxscyk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NvcnROYXRpdmVFbGVtZW50cygpO1xuXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zb3J0TWV0aG9kKGE6IFRhYmxlQ2VsbERpcmVjdGl2ZSwgYjogVGFibGVDZWxsRGlyZWN0aXZlLCBrZXlzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgICAgIGlmIChrZXlzLmZpbmRJbmRleCgoX2tleSkgPT4gX2tleSA9PT0gYS5rZXkpIDwga2V5cy5maW5kSW5kZXgoKF9rZXkpID0+IF9rZXkgPT09IGIua2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NvcnROYXRpdmVFbGVtZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZWxscy5mb3JFYWNoKChjZWxsKSA9PlxuICAgICAgICAgICAgY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZT8uYXBwZW5kQ2hpbGQoY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGFuZ2VWaXNpYmlsaXR5KGtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2VsbHMuZm9yRWFjaCgoY2VsbCkgPT4gY2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShISURERU5fQ0xBU1NfTkFNRSkpO1xuICAgICAgICBjb25zdCBub3RGb3VuZEVsZW1lbnRzOiBUYWJsZUNlbGxEaXJlY3RpdmVbXSA9IHRoaXMuY2VsbHMuZmlsdGVyKFxuICAgICAgICAgICAgKGNlbGwpID0+ICFrZXlzLmZpbmQoKGtleSkgPT4ga2V5ID09PSBjZWxsLmtleSlcbiAgICAgICAgKTtcbiAgICAgICAgbm90Rm91bmRFbGVtZW50cy5mb3JFYWNoKHRoaXMuX2hpZGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGVFbGVtZW50KGVsZW1lbnQ6IFRhYmxlQ2VsbERpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBlbGVtZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKEhJRERFTl9DTEFTU19OQU1FKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwQ2VsbHNTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2VsbHMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2VsbHMuZm9yRWFjaCgoY2VsbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjZWxsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcmlhQ29sSW5kZXggPSBpbmRleC50b1N0cmluZygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|