@fundamental-ngx/core 0.49.1 → 0.49.2
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/avatar-group-legacy/avatar-group-legacy.component.d.ts +6 -6
- package/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.d.ts +2 -2
- package/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.d.ts +2 -2
- package/bar/bar.component.d.ts +6 -6
- package/bar/button-bar/button-bar.component.d.ts +4 -4
- package/calendar/calendar-header/calendar-header.component.d.ts +2 -2
- package/card/card-content.component.d.ts +2 -2
- package/card/card-counter.directive.d.ts +2 -2
- package/card/card-header.component.d.ts +6 -6
- package/card/card-loader.component.d.ts +2 -2
- package/card/card-second-subtitle.directive.d.ts +2 -2
- package/card/card-subtitle.directive.d.ts +2 -2
- package/card/card-title.directive.d.ts +2 -2
- package/card/card.component.d.ts +3 -3
- package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -2
- package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -2
- package/card/kpi/card-kpi-analytics.directive.d.ts +2 -2
- package/card/kpi/card-kpi-header.component.d.ts +2 -2
- package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -2
- package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -2
- package/card/kpi/card-kpi-value.directive.d.ts +4 -4
- package/checkbox/checkbox/checkbox.component.d.ts +3 -5
- package/content-density/providers/url-content-density-storage.d.ts +4 -4
- package/content-density/services/content-density-observer.service.d.ts +15 -15
- package/datetime/datetime-adapter.d.ts +9 -2
- package/datetime/fd-date.d.ts +10 -14
- package/datetime/fd-datetime-adapter.d.ts +2 -2
- package/dialog/base/dialog-base.class.d.ts +2 -2
- package/dialog/base/dialog-header-base.class.d.ts +4 -4
- package/dialog/base/dialog-ref-base.class.d.ts +6 -4
- package/dynamic-side-content/dynamic-side-content.component.d.ts +4 -4
- package/esm2022/avatar-group-legacy/avatar-group-legacy.component.mjs +15 -15
- package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.mjs +12 -12
- package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.mjs +9 -9
- package/esm2022/bar/bar.component.mjs +13 -13
- package/esm2022/bar/button-bar/button-bar.component.mjs +3 -3
- package/esm2022/calendar/calendar-header/calendar-header.component.mjs +1 -1
- package/esm2022/card/card-content.component.mjs +5 -5
- package/esm2022/card/card-counter.directive.mjs +6 -6
- package/esm2022/card/card-header.component.mjs +5 -5
- package/esm2022/card/card-loader.component.mjs +5 -5
- package/esm2022/card/card-second-subtitle.directive.mjs +5 -5
- package/esm2022/card/card-subtitle.directive.mjs +5 -5
- package/esm2022/card/card-title.directive.mjs +5 -5
- package/esm2022/card/card.component.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics-content.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics-label.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-analytics.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-header.component.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-scale-icon.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-scale-text.directive.mjs +5 -5
- package/esm2022/card/kpi/card-kpi-value.directive.mjs +5 -5
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/combobox/combobox.component.mjs +2 -2
- package/esm2022/content-density/providers/url-content-density-storage.mjs +11 -11
- package/esm2022/content-density/services/content-density-observer.service.mjs +7 -16
- package/esm2022/datetime/datetime-adapter.mjs +4 -2
- package/esm2022/datetime/fd-date.mjs +34 -27
- package/esm2022/datetime/fd-datetime-adapter.mjs +1 -1
- package/esm2022/dialog/base/dialog-base.class.mjs +1 -1
- package/esm2022/dialog/base/dialog-header-base.class.mjs +1 -1
- package/esm2022/dialog/base/dialog-ref-base.class.mjs +4 -8
- package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +9 -9
- package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +5 -5
- package/esm2022/feed-list-item/components/list/feed-list.component.mjs +15 -15
- package/esm2022/file-uploader/directives/file-uploader-select.directive.mjs +1 -1
- package/esm2022/file-uploader/file-uploader.component.mjs +5 -5
- package/esm2022/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
- package/esm2022/form/form-group/form-group.component.mjs +8 -8
- package/esm2022/form/form-message/form-message.component.mjs +9 -9
- package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -3
- package/esm2022/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2022/illustrated-message/illustrated-message.component.mjs +10 -10
- package/esm2022/input-group/input-group-directives.mjs +22 -22
- package/esm2022/layout-grid/directives/layout-grid-col.directive.mjs +9 -9
- package/esm2022/layout-grid/layout-grid.component.mjs +9 -9
- package/esm2022/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +9 -9
- package/esm2022/list/list-item/list-item.component.mjs +20 -17
- package/esm2022/list/list-message.directive.mjs +9 -9
- package/esm2022/menu/directives/segmented-button/segmented-button-header.directive.mjs +1 -2
- package/esm2022/menu/directives/toggle-button.directive.mjs +1 -2
- package/esm2022/message-box/message-box.component.mjs +17 -17
- package/esm2022/message-page/message-page.component.mjs +5 -5
- package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +5 -5
- package/esm2022/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +1 -1
- package/esm2022/message-strip/alert/message-strip-alert.service.mjs +2 -3
- package/esm2022/message-strip/message-strip.component.mjs +16 -16
- package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +43 -45
- package/esm2022/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +1 -1
- package/esm2022/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +13 -13
- package/esm2022/multi-combobox/multi-combobox.component.mjs +2 -5
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/nested-list/nested-content/nested-list-content.directive.mjs +6 -6
- package/esm2022/nested-list/nested-item/nested-item.directive.mjs +3 -3
- package/esm2022/nested-list/nested-list/nested-list.directive.mjs +3 -3
- package/esm2022/notification/directives/notification-indicator.directive.mjs +9 -9
- package/esm2022/notification/notification/notification.component.mjs +9 -9
- package/esm2022/notification/notification-group/notification-group.component.mjs +5 -5
- package/esm2022/notification/notification-service/notification.service.mjs +5 -2
- package/esm2022/notification/notification-utils/notification-ref.mjs +2 -5
- package/esm2022/object-number/object-number.component.mjs +9 -9
- package/esm2022/object-status/object-status.component.mjs +13 -12
- package/esm2022/overflow-layout/directives/overflow-expand.directive.mjs +5 -5
- package/esm2022/overflow-layout/directives/overflow-item-ref.directive.mjs +1 -1
- package/esm2022/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +5 -5
- package/esm2022/overflow-layout/directives/overflow-layout-item-container.directive.mjs +8 -8
- package/esm2022/overflow-layout/interfaces/overflow-focusable-item.interface.mjs +1 -1
- package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -18
- package/esm2022/radio/radio-button/radio-button.component.mjs +8 -9
- package/esm2022/rating-indicator/components/rating-indicator.component.mjs +28 -28
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +23 -23
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +7 -8
- package/esm2022/select/select.component.mjs +18 -18
- package/esm2022/shared/interfaces/search-component.interface.mjs +1 -1
- package/esm2022/shellbar/shellbar.component.mjs +7 -7
- package/esm2022/side-navigation/side-navigation.component.mjs +7 -7
- package/esm2022/skeleton/components/skeleton.component.mjs +3 -3
- package/esm2022/status-indicator/status-indicator.component.mjs +15 -15
- package/esm2022/table/directives/table-responsive-wrapper.directive.mjs +3 -3
- package/esm2022/tabs/tab-item/tab-item.directive.mjs +9 -9
- package/esm2022/tabs/tab-link/tab-link.directive.mjs +8 -8
- package/esm2022/tabs/tab-nav/tab-nav.component.mjs +15 -15
- package/esm2022/tabs/tab-panel/tab-panel.component.mjs +3 -3
- package/esm2022/tabs/tab-utils/tab-directives.mjs +8 -8
- package/esm2022/tile/directives/tile.directives.mjs +25 -25
- package/esm2022/tile/tile.component.mjs +9 -11
- package/esm2022/time/time-column/time-column.component.mjs +23 -23
- package/esm2022/timeline/services/position-strategies/base-strategy.mjs +1 -1
- package/esm2022/timeline/timeline.component.mjs +5 -5
- package/esm2022/title/title.component.mjs +4 -4
- package/esm2022/token/tokenizer.component.mjs +71 -71
- package/esm2022/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +4 -6
- package/esm2022/tree/tree.component.mjs +1 -4
- package/esm2022/upload-collection/upload-collection-item.directive.mjs +3 -3
- package/esm2022/vertical-navigation/vertical-navigation.component.mjs +6 -6
- package/esm2022/wizard/wizard-step/wizard-step.component.mjs +3 -3
- package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -2
- package/feed-list-item/components/list/feed-list.component.d.ts +6 -6
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +33 -33
- package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs +61 -61
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-content-density.mjs +17 -26
- package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +36 -27
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +3 -7
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +15 -15
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +3 -4
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +9 -9
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +21 -21
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +27 -24
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +0 -2
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +20 -21
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +55 -57
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +1 -4
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +9 -9
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +25 -25
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +8 -8
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +12 -11
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +32 -32
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +7 -8
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +27 -27
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +28 -29
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +17 -17
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +38 -38
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tile.mjs +32 -34
- package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +23 -23
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-timeline.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-title.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +70 -70
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +3 -8
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/file-uploader/directives/file-uploader-select.directive.d.ts +1 -1
- package/file-uploader/file-uploader.component.d.ts +4 -4
- package/form/form-group/form-group.component.d.ts +4 -4
- package/form/form-message/form-message.component.d.ts +2 -2
- package/grid-list/components/grid-list/grid-list.component.d.ts +3 -2
- package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +8 -8
- package/illustrated-message/illustrated-message.component.d.ts +7 -7
- package/input-group/input-group-directives.d.ts +12 -12
- package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -2
- package/layout-grid/layout-grid.component.d.ts +2 -2
- package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +2 -2
- package/list/list-item/list-item.component.d.ts +13 -13
- package/list/list-message.directive.d.ts +4 -4
- package/message-box/message-box.component.d.ts +5 -5
- package/message-page/message-page.component.d.ts +2 -2
- package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +4 -4
- package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +4 -4
- package/message-strip/alert/message-strip-alert.service.d.ts +3 -2
- package/message-strip/message-strip.component.d.ts +6 -6
- package/micro-process-flow/components/micro-process-flow/micro-process-flow.component.d.ts +15 -17
- package/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.d.ts +2 -2
- package/micro-process-flow/micro-process-flow-focusable-item.directive.d.ts +6 -6
- package/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
- package/nested-list/nested-content/nested-list-content.directive.d.ts +2 -2
- package/nested-list/nested-item/nested-item.directive.d.ts +2 -2
- package/nested-list/nested-list/nested-list.directive.d.ts +2 -2
- package/notification/directives/notification-indicator.directive.d.ts +4 -4
- package/notification/notification/notification.component.d.ts +2 -2
- package/notification/notification-group/notification-group.component.d.ts +2 -2
- package/notification/notification-utils/notification-ref.d.ts +5 -3
- package/object-number/object-number.component.d.ts +4 -4
- package/object-status/object-status.component.d.ts +5 -4
- package/overflow-layout/directives/overflow-expand.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-item-ref.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-layout-focusable-item.directive.d.ts +2 -2
- package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +2 -2
- package/overflow-layout/interfaces/overflow-focusable-item.interface.d.ts +1 -1
- package/overflow-layout/overflow-layout.component.d.ts +4 -4
- package/package.json +3 -3
- package/radio/radio-button/radio-button.component.d.ts +7 -7
- package/rating-indicator/components/rating-indicator.component.d.ts +12 -12
- package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +8 -8
- package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -2
- package/select/select.component.d.ts +19 -19
- package/shared/interfaces/search-component.interface.d.ts +1 -1
- package/shellbar/shellbar.component.d.ts +12 -12
- package/side-navigation/side-navigation.component.d.ts +2 -2
- package/skeleton/components/skeleton.component.d.ts +2 -2
- package/status-indicator/status-indicator.component.d.ts +7 -7
- package/tabs/tab-item/tab-item.directive.d.ts +2 -2
- package/tabs/tab-link/tab-link.directive.d.ts +2 -2
- package/tabs/tab-nav/tab-nav.component.d.ts +8 -8
- package/tabs/tab-panel/tab-panel.component.d.ts +2 -2
- package/tabs/tab-utils/tab-directives.d.ts +5 -5
- package/tile/directives/tile.directives.d.ts +12 -12
- package/tile/tile.component.d.ts +4 -6
- package/time/time-column/time-column.component.d.ts +6 -6
- package/timeline/services/position-strategies/base-strategy.d.ts +2 -2
- package/timeline/timeline.component.d.ts +2 -2
- package/title/title.component.d.ts +2 -2
- package/token/tokenizer.component.d.ts +16 -16
- package/toolbar/toolbar.component.d.ts +2 -2
- package/tree/components/tree-item/tree-item.component.d.ts +10 -9
- package/upload-collection/upload-collection-item.directive.d.ts +2 -2
- package/vertical-navigation/vertical-navigation.component.d.ts +2 -2
- package/wizard/wizard-step/wizard-step.component.d.ts +4 -4
|
@@ -123,28 +123,6 @@ export class TimeColumnComponent {
|
|
|
123
123
|
.subscribe());
|
|
124
124
|
}
|
|
125
125
|
/** @hidden */
|
|
126
|
-
ngOnInit() {
|
|
127
|
-
this._subscriptions.add(this._elementsAtOnce$.pipe(tap(() => this._setUpCarouselConfiguration())).subscribe());
|
|
128
|
-
this._setUpQuerySubscription();
|
|
129
|
-
}
|
|
130
|
-
/** @hidden */
|
|
131
|
-
ngAfterViewInit() {
|
|
132
|
-
this._subscriptions.add(resizeObservable(this._elmRef.nativeElement).subscribe(() => {
|
|
133
|
-
this._resize$.next(true);
|
|
134
|
-
}));
|
|
135
|
-
this._viewInit$.next(true);
|
|
136
|
-
}
|
|
137
|
-
/** @hidde */
|
|
138
|
-
ngOnChanges(changes) {
|
|
139
|
-
if (changes.columnTranslationsPreset) {
|
|
140
|
-
this._updateInternalTranslationConfig();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/** @hidden */
|
|
144
|
-
ngOnDestroy() {
|
|
145
|
-
this._subscriptions.unsubscribe();
|
|
146
|
-
}
|
|
147
|
-
/** @hidden */
|
|
148
126
|
onItemClick() {
|
|
149
127
|
this.activeStateChange.emit();
|
|
150
128
|
}
|
|
@@ -173,6 +151,28 @@ export class TimeColumnComponent {
|
|
|
173
151
|
}
|
|
174
152
|
}
|
|
175
153
|
/** @hidden */
|
|
154
|
+
ngOnInit() {
|
|
155
|
+
this._subscriptions.add(this._elementsAtOnce$.pipe(tap(() => this._setUpCarouselConfiguration())).subscribe());
|
|
156
|
+
this._setUpQuerySubscription();
|
|
157
|
+
}
|
|
158
|
+
/** @hidden */
|
|
159
|
+
ngAfterViewInit() {
|
|
160
|
+
this._subscriptions.add(resizeObservable(this._elmRef.nativeElement).subscribe(() => {
|
|
161
|
+
this._resize$.next(true);
|
|
162
|
+
}));
|
|
163
|
+
this._viewInit$.next(true);
|
|
164
|
+
}
|
|
165
|
+
/** @hidde */
|
|
166
|
+
ngOnChanges(changes) {
|
|
167
|
+
if (changes.columnTranslationsPreset) {
|
|
168
|
+
this._updateInternalTranslationConfig();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/** @hidden */
|
|
172
|
+
ngOnDestroy() {
|
|
173
|
+
this._subscriptions.unsubscribe();
|
|
174
|
+
}
|
|
175
|
+
/** @hidden */
|
|
176
176
|
spinnerButtonKeyupHandle(event, upButton) {
|
|
177
177
|
if (KeyUtil.isKeyCode(event, SPACE)) {
|
|
178
178
|
if (upButton) {
|
|
@@ -482,4 +482,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
482
482
|
type: HostListener,
|
|
483
483
|
args: ['wheel', ['$event']]
|
|
484
484
|
}] } });
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWUvdGltZS1jb2x1bW4vdGltZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWUvdGltZS1jb2x1bW4vdGltZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJeEQsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFtQjNCLE1BQU0sT0FBTyxtQkFBbUI7SUFjNUIsa0RBQWtE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RlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBS3pDLEVBQUU7c0JBREQsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQVFGLE1BQU07c0JBRFQsS0FBSztnQkFZRixjQUFjO3NCQURqQixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGlCQUFpQjtnQkFLNUIsS0FBSztzQkFESixZQUFZO3VCQUFDLHFCQUFxQjtnQkFLbkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBcUk1QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTztnQkFPckIsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQm5DLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET1dOX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleVV0aWwsIHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbmZpZywgQ2Fyb3VzZWxEaXJlY3RpdmUsIENhcm91c2VsSXRlbURpcmVjdGl2ZSwgUGFuRW5kT3V0cHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Nhcm91c2VsJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBTZWxlY3RhYmxlVmlld0l0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGltZUNvbHVtbkNvbmZpZyB9IGZyb20gJy4vdGltZS1jb2x1bW4tY29uZmlnJztcblxubGV0IHRpbWVDb2x1bW5VbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZUNvbHVtbkl0ZW1PdXRwdXQ8VD4ge1xuICAgIHZhbHVlOiBUO1xuICAgIGFmdGVyPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10aW1lLWNvbHVtbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdGltZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXRpbWVfX2NvbCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgQ2Fyb3VzZWxEaXJlY3RpdmUsIENhcm91c2VsSXRlbURpcmVjdGl2ZSwgRmRUcmFuc2xhdGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lQ29sdW1uQ29tcG9uZW50PEsgZXh0ZW5kcyBudW1iZXIsIFQgZXh0ZW5kcyBTZWxlY3RhYmxlVmlld0l0ZW08Sz4gPSBTZWxlY3RhYmxlVmlld0l0ZW08Sz4+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXG57XG4gICAgLyoqIGl0ZW1zIGluIHJvdyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm93czogVFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBidXR0b25zIHRoYXQgaW5jcmVtZW50XG4gICAgICogYW5kIGRlY3JlbWVudCB0aGUgY29ycmVzcG9uZGluZyBjb2x1bW5zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3Bpbm5lcnMgPSB0cnVlO1xuXG4gICAgLyoqIEN1cnJlbnRseSBjaG9zZW4sIGNlbnRlcmVkIHRpbWUgY29sdW1uIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmVWYWx1ZShhY3RpdmVJdGVtOiBOdWxsYWJsZTxUPikge1xuICAgICAgICBpZiAoIWFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIC8vIG9taXR0aW5nIFwibnVsbFwiIGFuZCBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJbml0JC52YWx1ZSAmJiB0aGlzLl9hY3RpdmVWYWx1ZSAhPT0gYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5fcGlja1RpbWUodGhpcy5fZ2V0SXRlbShhY3RpdmVJdGVtKSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gYWN0aXZlSXRlbTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlVmFsdWUoKTogTnVsbGFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIERlZmluZXMgaWYgY29sdW1uIGlzIGFjdGl2ZSwgaXQgaGFzIGltcGFjdCBvbiBiZWhhdmlvciBhbmQgdmlzdWFsICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX3ZpZXdJbml0JC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSW5kaWNhdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRpbWUgY29sdW1uIGlzIG1lcmlkaWFuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRpbWVfX2NvbC0tcGVyaW9kJylcbiAgICBtZXJpZGlhbiA9IGZhbHNlO1xuXG4gICAgLyoqIElkIG9mIGNvbHVtbiwgaW5pdGlhdGVkIHdpdGggc29tZSBkZWZhdWx0IHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nID0gJ2ZkLXRpbWUtY29sdW1uLScgKyB0aW1lQ29sdW1uVW5pcXVlSWQrKztcblxuICAgIC8qKiBJMThuIGFuZCBsYWJlbHMgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpbWVDb25maWc6IE51bGxhYmxlPFRpbWVDb2x1bW5Db25maWc+O1xuXG4gICAgLyoqIEkxOG4gYW5kIGxhYmVscyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uVHJhbnNsYXRpb25zUHJlc2V0OiAnc2Vjb25kcycgfCAnbWludXRlcycgfCAnaG91cnMnIHwgJ3BlcmlvZCc7XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgZm9yIGNhcm91c2VsIGRpcmVjdGl2ZSwgYWN0aXZlIGl0ZW0gaXMgYWx3YXlzIHRoZSBmaXJzdCBvbmUuXG4gICAgICogSW4gY2FzZSBvZiBoYXZpbmcgbW9yZSBpdGVtcyBpbiBjYXJvdXNlbCB0aGFuIDEsIG1pZGRsZSBlbGVtZW50IHNob3VsZCBiZSBhY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBvZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9vZmZzZXQkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1YW50aXR5IG9mIHRoZSBlbGVtZW50cyB0byBiZSBzaG93biBhdCB0aGUgc2FtZSB0aW1lIGluIGNvbHVtblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVsZW1lbnRzQXRPbmNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudHNBdE9uY2UkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBFdmVudCBlbWl0dGVkLCB3aGVuIGFjdGl2ZSBpdGVtIGlzIGNoYW5nZWQsIGJ5IGNhcm91c2VsICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaW1lQ29sdW1uSXRlbU91dHB1dDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVDb2x1bW5JdGVtT3V0cHV0PFQ+PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gY2VydGFpbiBjb2x1bW4gaXMgYWN0aXZhdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYXJvdXNlbERpcmVjdGl2ZSlcbiAgICBjYXJvdXNlbDogQ2Fyb3VzZWxEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlKVxuICAgIGl0ZW1zOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlPFQ+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5kaWNhdG9yJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgaW5kaWNhdG9yOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cmFwcGVySGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IGtleWRvd24gYmVmb3JlXG4gICAgICogZm9jdXNpbmcgb3Igc2VsZWN0aW5nIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljL2FscGhhIGtleXMuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwgPSA3NTA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbmZpZzogQ2Fyb3VzZWxDb25maWc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGludGVybmFsVHJhbnNsYXRpb25Db25maWc6IFRpbWVDb2x1bW5Db25maWcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGN1cnJlbnRJbmRpY2F0b3JJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICctY3VycmVudC1pbmRpY2F0b3InO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRpY2F0b3JJZCArICctdmFsdWUnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZWxlbWVudHNBdE9uY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdCg3KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMyk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9xdWVyeUtleURvd25FdmVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmVWYWx1ZTogTnVsbGFibGU8VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZUNhcm91c2VsSXRlbTogQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0RyYWdnaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZpZXdJbml0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogbG9ncyBudW1lcmljIGtleSBpbnB1dHMgdG8gc2V0IHRpbWUgdXNpbmcga2V5Ym9hcmQgaW5wdXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfa2V5TG9nOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUaW1lb3V0IHZhcmlhYmxlIHVzZWQgdG8gc2V0IHRpbWVvdXQgZm9yIHN1YnNlcXVlbnQgbnVtZXJpYyBrZXkgaW5wdXQgdG8gc2V0IHRpbWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbnVtZXJpY0lucHV0VGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9lbG1SZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl92aWV3SW5pdCQsIHRoaXMuX2VsZW1lbnRzQXRPbmNlJCwgdGhpcy5fb2Zmc2V0JCwgdGhpcy5fcmVzaXplJF0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoW3ZpZXdJbml0XSkgPT4gdmlld0luaXQpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKFssIGVsZW1lbnRzQXRPbmNlLCBvZmZzZXRdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdmVyYWdlSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnRvQXJyYXkoKS5yZWR1Y2UoKGFjYywgbmV4dCkgPT4gYWNjICsgbmV4dC5nZXRIZWlnaHQoKSwgMCkgLyB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlckhlaWdodCA9IGF2ZXJhZ2VIZWlnaHQgKiBlbGVtZW50c0F0T25jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVCdXROb3RTZWxlY3RlZEVsZW1lbnRzID0gTWF0aC5mbG9vcihlbGVtZW50c0F0T25jZSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZmlyc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AgPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxhc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLl9nZXRJdGVtKHRoaXMuYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX2VsZW1lbnRzQXRPbmNlJC5waXBlKHRhcCgoKSA9PiB0aGlzLl9zZXRVcENhcm91c2VsQ29uZmlndXJhdGlvbigpKSkuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLl9zZXRVcFF1ZXJ5U3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl92aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb2x1bW5UcmFuc2xhdGlvbnNQcmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUludGVybmFsVHJhbnNsYXRpb25Db25maWcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGF0ZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERvd24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFVQX0FSUk9XKSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxVcCgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ251bWVyaWMnKSkge1xuICAgICAgICAgICAgdGhpcy5fbnVtZXJpY0tleUlucHV0SGFuZGxlcihldmVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdhbHBoYWJldGljYWwnKSkge1xuICAgICAgICAgICAgdGhpcy5fYWxwaGFLZXlJbnB1dEhhbmRsZXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCd3aGVlbCcsIFsnJGV2ZW50J10pXG4gICAgbW91c2VTY3JvbGxIYW5kbGVyKGV2ZW50OiBXaGVlbEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHtcbiAgICAgICAgICAgIGV2ZW50LmRlbHRhWSA+IDAgPyB0aGlzLnNjcm9sbERvd24oKSA6IHRoaXMuc2Nyb2xsVXAoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3Bpbm5lckJ1dHRvbktleXVwSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB1cEJ1dHRvbj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBTUEFDRSkpIHtcbiAgICAgICAgICAgIGlmICh1cEJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVXAoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxEb3duKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0VmFsdWVPZkFjdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VXBJbml0aWFsVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBJdCBwcmV2ZW50cyBmcm9tIGFjY2lkZW50YWxseSBjaGFuZ2UgdGhlIGl0ZW0gYnkgY2xpY2sgZXZlbnQgKi9cbiAgICBoYW5kbGVEcmFnKGlzRHJhZ2dpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNEcmFnZ2luZyA9IGlzRHJhZ2dpbmc7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGhhbmRsZXMgYWN0aXZlIGl0ZW0gY2hhbmdlICovXG4gICAgYWN0aXZlQ2hhbmdlZEhhbmRsZShvdXRwdXQ6IFBhbkVuZE91dHB1dCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGFycmF5LmZpbmRJbmRleCgoX19pdGVtKSA9PiBfX2l0ZW0gPT09IG91dHB1dC5pdGVtKSArIHRoaXMub2Zmc2V0O1xuXG4gICAgICAgIGlmIChpbmRleCA+PSBhcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGluZGV4ID0gaW5kZXggLSBhcnJheS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBfaXRlbSA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVWYWx1ZSA9IF9pdGVtLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5fYWN0aXZlVmFsdWUhLFxuICAgICAgICAgICAgYWZ0ZXI6IG91dHB1dC5hZnRlclxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0gPSBfaXRlbTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgY2hhbmdlcyBhY3RpdmUgaXRlbSBhbmQgdHJpZ2dlcnMgY2Fyb3VzZWwgc2Nyb2xsICovXG4gICAgcGljayhpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmU8VD4sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgLyoqIFRvIHByZXZlbnQgZnJvbSBzd2l0Y2hpbmcgdGltZSwgd2hlbiBpdCdzIGJlaW5nIGRyYWdnZWQgKi9cbiAgICAgICAgaWYgKCF0aGlzLl9pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZShpdGVtLCB0cnVlLCB0cnVlLCBjdXJyZW50SW5kZXggPCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRyaWdnZXJlZCBieSBrZXlib2FyZCwgb3IgaW5jcmVtZW50IGJ1dHRvbiAqL1xuICAgIHNjcm9sbFVwKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvKiogS2V5Ym9hcmQgZXZlbnRzIGluIHJlYWN0aXZlIGZvcm1zLCBzaG91bGRuJ3QgdHJpZ2dlciB0aGlzIG1ldGhvZCAqL1xuICAgICAgICBpZiAoZXZlbnQgJiYgIWV2ZW50LmNsaWVudFgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMudG9BcnJheSgpLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuaXRlbXMudG9BcnJheSgpW2luZGV4XSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIGJ5IGtleWJvYXJkLCBvciBkZWNyZW1lbnQgYnV0dG9uICovXG4gICAgc2Nyb2xsRG93bigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5yb3dzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLml0ZW1zLnRvQXJyYXkoKVtpbmRleF0sIHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1cyBvbiBjb2x1bW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3I/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgaWQgZm9yIGNvbHVtbiBpdGVtXG4gICAgICogQHBhcmFtIGluZGV4IGNvbHVtbiBpdGVtIGluZGV4XG4gICAgICogQHJldHVybnMgY29sdW1uIGl0ZW0gaWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gZm9jdXMgY2FsbGJhY2tcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX29uRm9jdXNJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RhdGVDaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogaGFuZGxlcyBhbHBoYWJldGljYWwga2V5IGlucHV0cyB0byBzZXQgcGVyaW9kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2FscGhhS2V5SW5wdXRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2EnKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZU9uVmFsdWUoJ0FNJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdwJykge1xuICAgICAgICAgICAgdGhpcy5fcGlja1RpbWVPblZhbHVlKCdQTScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBoYW5kbGVzIG51bWVyaWMga2V5IGlucHV0cyB0byBzZXQgdGltZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9udW1lcmljS2V5SW5wdXRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtVmFsdWUgPSB0aGlzLml0ZW1zLmxhc3QudmFsdWUudmFsdWU7IC8vIHZhbHVlIG9mIGxhc3QgaXRlbSBpbiBjb2x1bW5cblxuICAgICAgICB0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0ICYmIGNsZWFyVGltZW91dCh0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fa2V5TG9nLnB1c2goZXZlbnQua2V5KTtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IHBhcnNlSW50KHRoaXMuX2tleUxvZy5qb2luKCcnKSwgMTApOyAvLyBjb252ZXJ0cyBrZXlMb2cgZWxlbWVudHMgdG8gYSBudW1iZXJcblxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSAqIDEwID4gbGFzdEl0ZW1WYWx1ZSB8fCB0aGlzLl9rZXlMb2cubGVuZ3RoID09PSBsYXN0SXRlbVZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZU9uVmFsdWUoaW5wdXRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGlja1RpbWVPblZhbHVlKGlucHV0VmFsdWUpO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogc2V0IHRoZSB0aW1lIGZvciBnaXZlbiBpdGVtIHZhbHVlLiB1c2VkIGJ5IF9udW1lcmljS2V5SW5wdXRIYW5kbGVyLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3BpY2tUaW1lT25WYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlLnZhbHVlID09PSB2YWx1ZSksXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9rZXlMb2cgPSBbXTsgLy8gY2xlYXIga2V5IGxvZ1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0cmlnZ2VyZWQgYnkga2V5Ym9hcmQsIG9yIGRlY3JlbWVudCBidXR0b25cbiAgICAgKiBBcmdzOlxuICAgICAqIGl0ZW0gPT4gcGlja2VkIGNhcm91c2VsIGl0ZW0sIHRoYXQgc2hvdWxkIGJlIGNlbnRlcmVkXG4gICAgICogc21vb3RoID0+IGRlZmluZXMgaWYgdHJhbnNpdGlvbiB0aW1lIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0cmFuc2Zvcm1cbiAgICAgKiBlbWl0RXZlbnQgPT4gZGVmaW5lcyBpZiBFdmVudEVtaXR0ZXIgc2hvdWxkIGJlIHRyaWdnZXJlZCBieSB0aGlzIGNoYW5nZSwgc2V0IHRvIGZhbHNlLCB3aGVuIGNoYW5nZWQgZnJvbSBvdXRzaWRlXG4gICAgICogYWZ0ZXIgPT4gRGVmaW5lcyBpZiB2YWx1ZSB3YXMgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQsIG5lZWRlZCBmb3IgaG91cnMgdG8gdHJpZ2dlciBBTS9QTSBjaGFuZ2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcGlja1RpbWUoaXRlbT86IENhcm91c2VsSXRlbURpcmVjdGl2ZTxUPiwgc21vb3RoPzogYm9vbGVhbiwgZW1pdEV2ZW50PzogYm9vbGVhbiwgYWZ0ZXI/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ2Fyb3VzZWwoaXRlbSwgc21vb3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZUNhcm91c2VsSXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gaXRlbS52YWx1ZTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICAgIGFmdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSB3aXRoIHBhc3NlZCB2YWx1ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtKF9pdGVtOiBOdWxsYWJsZTxUPik6IENhcm91c2VsSXRlbURpcmVjdGl2ZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IF9pdGVtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJDYXJvdXNlbChpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmU8VD4sIHNtb290aD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBhcnJheS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gaXRlbSkgLSB0aGlzLm9mZnNldDtcblxuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBpbmRleCA9IGFycmF5Lmxlbmd0aCArIGluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYXJvdXNlbC5nb1RvSXRlbShhcnJheVtpbmRleF0sIHNtb290aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXMgY3VycmVudCBpbmRpY2F0b3IsIHdoaWNoIGFsbG93cyB0byBoYW5kbGUga2V5ZG93biBldmVudHMgaW5zaWRlIGNvbHVtblxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb2N1c0luZGljYXRvcigpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jdXJyZW50SW5kaWNhdG9ySWQpPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcFF1ZXJ5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fcXVlcnlLZXlEb3duRXZlbnQucGlwZShkZWJvdW5jZVRpbWUodGhpcy50eXBlYWhlYWREZWJvdW5jZUludGVydmFsKSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9xdWVyeUtleURvd25FdmVudFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBidWZmZXIodHJpZ2dlciksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoa2V5cykgPT4ga2V5cy5qb2luKCcnKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHRoaXMuX2dldFZhbHVlKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHRoaXMuX2dldEl0ZW0odmFsdWUpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtKSA9PiB0aGlzLl9waWNrVGltZShpdGVtLCBmYWxzZSwgdHJ1ZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcENhcm91c2VsQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnOiBDYXJvdXNlbENvbmZpZyA9IHtcbiAgICAgICAgICAgIGdlc3R1cmVTdXBwb3J0OiB0cnVlLFxuICAgICAgICAgICAgdmVydGljYWw6IHRydWUsXG4gICAgICAgICAgICBlbGVtZW50c0F0T25jZTogdGhpcy5fZWxlbWVudHNBdE9uY2UkLnZhbHVlLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJzE1MG1zJ1xuICAgICAgICB9O1xuICAgICAgICBpZiAoIXRoaXMubWVyaWRpYW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5pbmZpbml0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcEluaXRpYWxWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlVmFsdWUgPSB0aGlzLml0ZW1zLmZpcnN0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5fYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVJbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29sdW1uVHJhbnNsYXRpb25zUHJlc2V0KSB7XG4gICAgICAgICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBpbmNyZWFzZUxhYmVsOiAnY29yZVRpbWUuaW5jcmVhc2VIb3Vyc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5ocnNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLmhvdXJzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBkZWNyZWFzZUxhYmVsOiAnY29yZVRpbWUuZGVjcmVhc2VIb3Vyc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbkluc3RydWN0aW9uOiAnY29yZVRpbWUubmF2aWdhdGlvbkluc3RydWN0aW9uJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGVzJzpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGluY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5pbmNyZWFzZU1pbnV0ZXNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnY29yZVRpbWUubWluTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBmdWxsTGFiZWw6ICdjb3JlVGltZS5taW51dGVzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBkZWNyZWFzZUxhYmVsOiAnY29yZVRpbWUuZGVjcmVhc2VNaW51dGVzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5zdHJ1Y3Rpb246ICdjb3JlVGltZS5uYXZpZ2F0aW9uSW5zdHJ1Y3Rpb24nXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2VMYWJlbDogJ2NvcmVUaW1lLmluY3JlYXNlU2Vjb25kc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5zZWNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLnNlY29uZHNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGRlY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5kZWNyZWFzZVNlY29uZHNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JbnN0cnVjdGlvbjogJ2NvcmVUaW1lLm5hdmlnYXRpb25JbnN0cnVjdGlvbidcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncGVyaW9kJzpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGluY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5pbmNyZWFzZVBlcmlvZExhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5wZXJpb2RMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLnBlcmlvZExhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2VMYWJlbDogJ2NvcmVUaW1lLmRlY3JlYXNlUGVyaW9kTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5zdHJ1Y3Rpb246ICdjb3JlVGltZS5uYXZpZ2F0aW9uSW5zdHJ1Y3Rpb24nXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmZC10aW1lX19zbGlkZXItbGFiZWxcIj57e1xuICAgIHRpbWVDb25maWc/LmxhYmVsIHx8IChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnICYmIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnLmxhYmVsIHwgZmRUcmFuc2xhdGUpKVxufX08L2xhYmVsPlxuQGlmIChhY3RpdmUgJiYgc3Bpbm5lcnMpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi11cC1hcnJvd1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICB0aW1lQ29uZmlnPy5kZWNyZWFzZUxhYmVsIHx8XG4gICAgICAgICAgICAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyAmJiAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZy5kZWNyZWFzZUxhYmVsIHwgZmRUcmFuc2xhdGUpKVxuICAgICAgICBcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIlxuICAgICAgICAgICAgdGltZUNvbmZpZz8uZGVjcmVhc2VMYWJlbCB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcuZGVjcmVhc2VMYWJlbCB8IGZkVHJhbnNsYXRlKSlcbiAgICAgICAgXCJcbiAgICAgICAgKGtleXVwKT1cInNwaW5uZXJCdXR0b25LZXl1cEhhbmRsZSgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFVwKCRldmVudClcIlxuICAgID48L2J1dHRvbj5cbn1cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRpbWVfX3dyYXBwZXJcIlxuICAgIFtjbGFzcy5mZC10aW1lX193cmFwcGVyLS1hY3RpdmVdPVwiYWN0aXZlXCJcbiAgICBbY2xhc3MuZmQtdGltZV9fd3JhcHBlci0tbWVyaWRpYW5dPVwibWVyaWRpYW5cIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYWN0aXZlID8gd3JhcHBlckhlaWdodCA6ICcnXCJcbj5cbiAgICA8dWxcbiAgICAgICAgY2xhc3M9XCJmZC10aW1lX19saXN0XCJcbiAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiIWFjdGl2ZVwiXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgKGNsaWNrKT1cImluZGljYXRvci5mb2N1cygpXCJcbiAgICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJhY3RpdmVDaGFuZ2VkSGFuZGxlKCRldmVudClcIlxuICAgICAgICAoZHJhZ1N0YXRlQ2hhbmdlKT1cImhhbmRsZURyYWcoJGV2ZW50KVwiXG4gICAgICAgIGZkQ2Fyb3VzZWxcbiAgICA+XG4gICAgICAgIEBmb3IgKHJvdyBvZiByb3dzOyB0cmFjayByb3c7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10aW1lX19pdGVtXCJcbiAgICAgICAgICAgICAgICBmZENhcm91c2VsSXRlbVxuICAgICAgICAgICAgICAgICNpdGVtPVwiZmRDYXJvdXNlbEl0ZW1cIlxuICAgICAgICAgICAgICAgIFtpZF09XCJfY3JlYXRlQ29sdW1uSXRlbUlkQnlJbmRleChpbmRleClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZGlzcGxheWVkLXZhbHVlXT1cInJvdy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC10aW1lX191bml0XCIgcm9sZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicm93LmxhYmVsXCIgKGNsaWNrKT1cInBpY2soaXRlbSwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHJvdy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC10aW1lX19jdXJyZW50LWluZGljYXRvclwiXG4gICAgICAgICNpbmRpY2F0b3JcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5pZF09XCJjdXJyZW50SW5kaWNhdG9ySWRcIlxuICAgICAgICBbY2xhc3MuZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICAgIHRpbWVDb25maWc/Lm5hdmlnYXRpb25JbnN0cnVjdGlvbiB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcubmF2aWdhdGlvbkluc3RydWN0aW9uIHwgZmRUcmFuc2xhdGUpKVxuICAgICAgICBcIlxuICAgICAgICAoZm9jdXMpPVwiX29uRm9jdXNJbmRpY2F0b3IoKVwiXG4gICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJmZC10aW1lLWNvbHVtbi1jdXN0b20taGlkZGVuXCJcbiAgICAgICAgICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC10aW1lLWNvbHVtbi1jdXN0b20taGlkZGVuXT1cImFjdGl2ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICB0aW1lQ29uZmlnPy5sYWJlbCB8fCAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyAmJiAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZy5mdWxsTGFiZWwgfCBmZFRyYW5zbGF0ZSkpXG4gICAgICAgICAgICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgQGlmICghYWN0aXZlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtdGltZV9faXRlbSBmZC10aW1lX19pdGVtLS1jb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9kaXY+XG5AaWYgKGFjdGl2ZSAmJiBzcGlubmVycykge1xuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJuYXZpZ2F0aW9uLWRvd24tYXJyb3dcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgdGltZUNvbmZpZz8uaW5jcmVhc2VMYWJlbCB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcuaW5jcmVhc2VMYWJlbCB8IGZkVHJhbnNsYXRlKSlcbiAgICAgICAgXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJcbiAgICAgICAgICAgIHRpbWVDb25maWc/LmluY3JlYXNlTGFiZWwgfHxcbiAgICAgICAgICAgIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnICYmIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnLmluY3JlYXNlTGFiZWwgfCBmZFRyYW5zbGF0ZSkpXG4gICAgICAgIFwiXG4gICAgICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxEb3duKClcIlxuICAgID48L2J1dHRvbj5cbn1cbiJdfQ==
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWUvdGltZS1jb2x1bW4vdGltZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWUvdGltZS1jb2x1bW4vdGltZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJeEQsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFtQjNCLE1BQU0sT0FBTyxtQkFBbUI7SUFjNUIsa0RBQWtE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RlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBS3pDLEVBQUU7c0JBREQsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQVFGLE1BQU07c0JBRFQsS0FBSztnQkFZRixjQUFjO3NCQURqQixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGlCQUFpQjtnQkFLNUIsS0FBSztzQkFESixZQUFZO3VCQUFDLHFCQUFxQjtnQkFLbkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBeUc1QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTztnQkFPckIsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQm5DLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET1dOX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleVV0aWwsIHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbmZpZywgQ2Fyb3VzZWxEaXJlY3RpdmUsIENhcm91c2VsSXRlbURpcmVjdGl2ZSwgUGFuRW5kT3V0cHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Nhcm91c2VsJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBTZWxlY3RhYmxlVmlld0l0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGltZUNvbHVtbkNvbmZpZyB9IGZyb20gJy4vdGltZS1jb2x1bW4tY29uZmlnJztcblxubGV0IHRpbWVDb2x1bW5VbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZUNvbHVtbkl0ZW1PdXRwdXQ8VD4ge1xuICAgIHZhbHVlOiBUO1xuICAgIGFmdGVyPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10aW1lLWNvbHVtbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdGltZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXRpbWVfX2NvbCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgQ2Fyb3VzZWxEaXJlY3RpdmUsIENhcm91c2VsSXRlbURpcmVjdGl2ZSwgRmRUcmFuc2xhdGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lQ29sdW1uQ29tcG9uZW50PEsgZXh0ZW5kcyBudW1iZXIsIFQgZXh0ZW5kcyBTZWxlY3RhYmxlVmlld0l0ZW08Sz4gPSBTZWxlY3RhYmxlVmlld0l0ZW08Sz4+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXG57XG4gICAgLyoqIGl0ZW1zIGluIHJvdyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm93czogVFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBidXR0b25zIHRoYXQgaW5jcmVtZW50XG4gICAgICogYW5kIGRlY3JlbWVudCB0aGUgY29ycmVzcG9uZGluZyBjb2x1bW5zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3Bpbm5lcnMgPSB0cnVlO1xuXG4gICAgLyoqIEN1cnJlbnRseSBjaG9zZW4sIGNlbnRlcmVkIHRpbWUgY29sdW1uIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmVWYWx1ZShhY3RpdmVJdGVtOiBOdWxsYWJsZTxUPikge1xuICAgICAgICBpZiAoIWFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIC8vIG9taXR0aW5nIFwibnVsbFwiIGFuZCBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJbml0JC52YWx1ZSAmJiB0aGlzLl9hY3RpdmVWYWx1ZSAhPT0gYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5fcGlja1RpbWUodGhpcy5fZ2V0SXRlbShhY3RpdmVJdGVtKSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gYWN0aXZlSXRlbTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlVmFsdWUoKTogTnVsbGFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIERlZmluZXMgaWYgY29sdW1uIGlzIGFjdGl2ZSwgaXQgaGFzIGltcGFjdCBvbiBiZWhhdmlvciBhbmQgdmlzdWFsICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX3ZpZXdJbml0JC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSW5kaWNhdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRpbWUgY29sdW1uIGlzIG1lcmlkaWFuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRpbWVfX2NvbC0tcGVyaW9kJylcbiAgICBtZXJpZGlhbiA9IGZhbHNlO1xuXG4gICAgLyoqIElkIG9mIGNvbHVtbiwgaW5pdGlhdGVkIHdpdGggc29tZSBkZWZhdWx0IHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nID0gJ2ZkLXRpbWUtY29sdW1uLScgKyB0aW1lQ29sdW1uVW5pcXVlSWQrKztcblxuICAgIC8qKiBJMThuIGFuZCBsYWJlbHMgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpbWVDb25maWc6IE51bGxhYmxlPFRpbWVDb2x1bW5Db25maWc+O1xuXG4gICAgLyoqIEkxOG4gYW5kIGxhYmVscyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uVHJhbnNsYXRpb25zUHJlc2V0OiAnc2Vjb25kcycgfCAnbWludXRlcycgfCAnaG91cnMnIHwgJ3BlcmlvZCc7XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgZm9yIGNhcm91c2VsIGRpcmVjdGl2ZSwgYWN0aXZlIGl0ZW0gaXMgYWx3YXlzIHRoZSBmaXJzdCBvbmUuXG4gICAgICogSW4gY2FzZSBvZiBoYXZpbmcgbW9yZSBpdGVtcyBpbiBjYXJvdXNlbCB0aGFuIDEsIG1pZGRsZSBlbGVtZW50IHNob3VsZCBiZSBhY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBvZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9vZmZzZXQkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1YW50aXR5IG9mIHRoZSBlbGVtZW50cyB0byBiZSBzaG93biBhdCB0aGUgc2FtZSB0aW1lIGluIGNvbHVtblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVsZW1lbnRzQXRPbmNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudHNBdE9uY2UkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBFdmVudCBlbWl0dGVkLCB3aGVuIGFjdGl2ZSBpdGVtIGlzIGNoYW5nZWQsIGJ5IGNhcm91c2VsICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaW1lQ29sdW1uSXRlbU91dHB1dDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVDb2x1bW5JdGVtT3V0cHV0PFQ+PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gY2VydGFpbiBjb2x1bW4gaXMgYWN0aXZhdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYXJvdXNlbERpcmVjdGl2ZSlcbiAgICBjYXJvdXNlbDogQ2Fyb3VzZWxEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlKVxuICAgIGl0ZW1zOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlPFQ+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5kaWNhdG9yJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgaW5kaWNhdG9yOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cmFwcGVySGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IGtleWRvd24gYmVmb3JlXG4gICAgICogZm9jdXNpbmcgb3Igc2VsZWN0aW5nIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljL2FscGhhIGtleXMuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwgPSA3NTA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbmZpZzogQ2Fyb3VzZWxDb25maWc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGludGVybmFsVHJhbnNsYXRpb25Db25maWc6IFRpbWVDb2x1bW5Db25maWcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGN1cnJlbnRJbmRpY2F0b3JJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICctY3VycmVudC1pbmRpY2F0b3InO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRpY2F0b3JJZCArICctdmFsdWUnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZWxlbWVudHNBdE9uY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdCg3KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMyk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9xdWVyeUtleURvd25FdmVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmVWYWx1ZTogTnVsbGFibGU8VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZUNhcm91c2VsSXRlbTogQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0RyYWdnaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZpZXdJbml0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogbG9ncyBudW1lcmljIGtleSBpbnB1dHMgdG8gc2V0IHRpbWUgdXNpbmcga2V5Ym9hcmQgaW5wdXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfa2V5TG9nOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUaW1lb3V0IHZhcmlhYmxlIHVzZWQgdG8gc2V0IHRpbWVvdXQgZm9yIHN1YnNlcXVlbnQgbnVtZXJpYyBrZXkgaW5wdXQgdG8gc2V0IHRpbWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbnVtZXJpY0lucHV0VGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9lbG1SZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl92aWV3SW5pdCQsIHRoaXMuX2VsZW1lbnRzQXRPbmNlJCwgdGhpcy5fb2Zmc2V0JCwgdGhpcy5fcmVzaXplJF0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoW3ZpZXdJbml0XSkgPT4gdmlld0luaXQpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKFssIGVsZW1lbnRzQXRPbmNlLCBvZmZzZXRdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdmVyYWdlSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnRvQXJyYXkoKS5yZWR1Y2UoKGFjYywgbmV4dCkgPT4gYWNjICsgbmV4dC5nZXRIZWlnaHQoKSwgMCkgLyB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlckhlaWdodCA9IGF2ZXJhZ2VIZWlnaHQgKiBlbGVtZW50c0F0T25jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVCdXROb3RTZWxlY3RlZEVsZW1lbnRzID0gTWF0aC5mbG9vcihlbGVtZW50c0F0T25jZSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZmlyc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AgPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxhc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLl9nZXRJdGVtKHRoaXMuYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uSXRlbUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVN0YXRlQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleURvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRE9XTl9BUlJPVykpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVVBfQVJST1cpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFVwKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnbnVtZXJpYycpKSB7XG4gICAgICAgICAgICB0aGlzLl9udW1lcmljS2V5SW5wdXRIYW5kbGVyKGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ2FscGhhYmV0aWNhbCcpKSB7XG4gICAgICAgICAgICB0aGlzLl9hbHBoYUtleUlucHV0SGFuZGxlcihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3doZWVsJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZVNjcm9sbEhhbmRsZXIoZXZlbnQ6IFdoZWVsRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgZXZlbnQuZGVsdGFZID4gMCA/IHRoaXMuc2Nyb2xsRG93bigpIDogdGhpcy5zY3JvbGxVcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZWxlbWVudHNBdE9uY2UkLnBpcGUodGFwKCgpID0+IHRoaXMuX3NldFVwQ2Fyb3VzZWxDb25maWd1cmF0aW9uKCkpKS5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuX3NldFVwUXVlcnlTdWJzY3JpcHRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZSQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3ZpZXdJbml0JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGUgKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbHVtblRyYW5zbGF0aW9uc1ByZXNldCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3Bpbm5lckJ1dHRvbktleXVwSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB1cEJ1dHRvbj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBTUEFDRSkpIHtcbiAgICAgICAgICAgIGlmICh1cEJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVXAoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxEb3duKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0VmFsdWVPZkFjdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VXBJbml0aWFsVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBJdCBwcmV2ZW50cyBmcm9tIGFjY2lkZW50YWxseSBjaGFuZ2UgdGhlIGl0ZW0gYnkgY2xpY2sgZXZlbnQgKi9cbiAgICBoYW5kbGVEcmFnKGlzRHJhZ2dpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNEcmFnZ2luZyA9IGlzRHJhZ2dpbmc7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGhhbmRsZXMgYWN0aXZlIGl0ZW0gY2hhbmdlICovXG4gICAgYWN0aXZlQ2hhbmdlZEhhbmRsZShvdXRwdXQ6IFBhbkVuZE91dHB1dCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGFycmF5LmZpbmRJbmRleCgoX19pdGVtKSA9PiBfX2l0ZW0gPT09IG91dHB1dC5pdGVtKSArIHRoaXMub2Zmc2V0O1xuXG4gICAgICAgIGlmIChpbmRleCA+PSBhcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGluZGV4ID0gaW5kZXggLSBhcnJheS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBfaXRlbSA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVWYWx1ZSA9IF9pdGVtLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5fYWN0aXZlVmFsdWUhLFxuICAgICAgICAgICAgYWZ0ZXI6IG91dHB1dC5hZnRlclxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0gPSBfaXRlbTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgY2hhbmdlcyBhY3RpdmUgaXRlbSBhbmQgdHJpZ2dlcnMgY2Fyb3VzZWwgc2Nyb2xsICovXG4gICAgcGljayhpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmU8VD4sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgLyoqIFRvIHByZXZlbnQgZnJvbSBzd2l0Y2hpbmcgdGltZSwgd2hlbiBpdCdzIGJlaW5nIGRyYWdnZWQgKi9cbiAgICAgICAgaWYgKCF0aGlzLl9pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZShpdGVtLCB0cnVlLCB0cnVlLCBjdXJyZW50SW5kZXggPCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRyaWdnZXJlZCBieSBrZXlib2FyZCwgb3IgaW5jcmVtZW50IGJ1dHRvbiAqL1xuICAgIHNjcm9sbFVwKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvKiogS2V5Ym9hcmQgZXZlbnRzIGluIHJlYWN0aXZlIGZvcm1zLCBzaG91bGRuJ3QgdHJpZ2dlciB0aGlzIG1ldGhvZCAqL1xuICAgICAgICBpZiAoZXZlbnQgJiYgIWV2ZW50LmNsaWVudFgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMudG9BcnJheSgpLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuaXRlbXMudG9BcnJheSgpW2luZGV4XSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIGJ5IGtleWJvYXJkLCBvciBkZWNyZW1lbnQgYnV0dG9uICovXG4gICAgc2Nyb2xsRG93bigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5yb3dzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLml0ZW1zLnRvQXJyYXkoKVtpbmRleF0sIHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1cyBvbiBjb2x1bW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3I/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgaWQgZm9yIGNvbHVtbiBpdGVtXG4gICAgICogQHBhcmFtIGluZGV4IGNvbHVtbiBpdGVtIGluZGV4XG4gICAgICogQHJldHVybnMgY29sdW1uIGl0ZW0gaWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gZm9jdXMgY2FsbGJhY2tcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX29uRm9jdXNJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RhdGVDaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogaGFuZGxlcyBhbHBoYWJldGljYWwga2V5IGlucHV0cyB0byBzZXQgcGVyaW9kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2FscGhhS2V5SW5wdXRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2EnKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZU9uVmFsdWUoJ0FNJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdwJykge1xuICAgICAgICAgICAgdGhpcy5fcGlja1RpbWVPblZhbHVlKCdQTScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBoYW5kbGVzIG51bWVyaWMga2V5IGlucHV0cyB0byBzZXQgdGltZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9udW1lcmljS2V5SW5wdXRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtVmFsdWUgPSB0aGlzLml0ZW1zLmxhc3QudmFsdWUudmFsdWU7IC8vIHZhbHVlIG9mIGxhc3QgaXRlbSBpbiBjb2x1bW5cblxuICAgICAgICB0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0ICYmIGNsZWFyVGltZW91dCh0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fa2V5TG9nLnB1c2goZXZlbnQua2V5KTtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IHBhcnNlSW50KHRoaXMuX2tleUxvZy5qb2luKCcnKSwgMTApOyAvLyBjb252ZXJ0cyBrZXlMb2cgZWxlbWVudHMgdG8gYSBudW1iZXJcblxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSAqIDEwID4gbGFzdEl0ZW1WYWx1ZSB8fCB0aGlzLl9rZXlMb2cubGVuZ3RoID09PSBsYXN0SXRlbVZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZU9uVmFsdWUoaW5wdXRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9udW1lcmljSW5wdXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGlja1RpbWVPblZhbHVlKGlucHV0VmFsdWUpO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogc2V0IHRoZSB0aW1lIGZvciBnaXZlbiBpdGVtIHZhbHVlLiB1c2VkIGJ5IF9udW1lcmljS2V5SW5wdXRIYW5kbGVyLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3BpY2tUaW1lT25WYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlLnZhbHVlID09PSB2YWx1ZSksXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9rZXlMb2cgPSBbXTsgLy8gY2xlYXIga2V5IGxvZ1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0cmlnZ2VyZWQgYnkga2V5Ym9hcmQsIG9yIGRlY3JlbWVudCBidXR0b25cbiAgICAgKiBBcmdzOlxuICAgICAqIGl0ZW0gPT4gcGlja2VkIGNhcm91c2VsIGl0ZW0sIHRoYXQgc2hvdWxkIGJlIGNlbnRlcmVkXG4gICAgICogc21vb3RoID0+IGRlZmluZXMgaWYgdHJhbnNpdGlvbiB0aW1lIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0cmFuc2Zvcm1cbiAgICAgKiBlbWl0RXZlbnQgPT4gZGVmaW5lcyBpZiBFdmVudEVtaXR0ZXIgc2hvdWxkIGJlIHRyaWdnZXJlZCBieSB0aGlzIGNoYW5nZSwgc2V0IHRvIGZhbHNlLCB3aGVuIGNoYW5nZWQgZnJvbSBvdXRzaWRlXG4gICAgICogYWZ0ZXIgPT4gRGVmaW5lcyBpZiB2YWx1ZSB3YXMgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQsIG5lZWRlZCBmb3IgaG91cnMgdG8gdHJpZ2dlciBBTS9QTSBjaGFuZ2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcGlja1RpbWUoaXRlbT86IENhcm91c2VsSXRlbURpcmVjdGl2ZTxUPiwgc21vb3RoPzogYm9vbGVhbiwgZW1pdEV2ZW50PzogYm9vbGVhbiwgYWZ0ZXI/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ2Fyb3VzZWwoaXRlbSwgc21vb3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZUNhcm91c2VsSXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gaXRlbS52YWx1ZTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICAgIGFmdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSB3aXRoIHBhc3NlZCB2YWx1ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtKF9pdGVtOiBOdWxsYWJsZTxUPik6IENhcm91c2VsSXRlbURpcmVjdGl2ZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IF9pdGVtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJDYXJvdXNlbChpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmU8VD4sIHNtb290aD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBhcnJheS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gaXRlbSkgLSB0aGlzLm9mZnNldDtcblxuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICBpbmRleCA9IGFycmF5Lmxlbmd0aCArIGluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYXJvdXNlbC5nb1RvSXRlbShhcnJheVtpbmRleF0sIHNtb290aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXMgY3VycmVudCBpbmRpY2F0b3IsIHdoaWNoIGFsbG93cyB0byBoYW5kbGUga2V5ZG93biBldmVudHMgaW5zaWRlIGNvbHVtblxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb2N1c0luZGljYXRvcigpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jdXJyZW50SW5kaWNhdG9ySWQpPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcFF1ZXJ5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fcXVlcnlLZXlEb3duRXZlbnQucGlwZShkZWJvdW5jZVRpbWUodGhpcy50eXBlYWhlYWREZWJvdW5jZUludGVydmFsKSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9xdWVyeUtleURvd25FdmVudFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBidWZmZXIodHJpZ2dlciksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoa2V5cykgPT4ga2V5cy5qb2luKCcnKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHRoaXMuX2dldFZhbHVlKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHRoaXMuX2dldEl0ZW0odmFsdWUpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtKSA9PiB0aGlzLl9waWNrVGltZShpdGVtLCBmYWxzZSwgdHJ1ZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcENhcm91c2VsQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnOiBDYXJvdXNlbENvbmZpZyA9IHtcbiAgICAgICAgICAgIGdlc3R1cmVTdXBwb3J0OiB0cnVlLFxuICAgICAgICAgICAgdmVydGljYWw6IHRydWUsXG4gICAgICAgICAgICBlbGVtZW50c0F0T25jZTogdGhpcy5fZWxlbWVudHNBdE9uY2UkLnZhbHVlLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJzE1MG1zJ1xuICAgICAgICB9O1xuICAgICAgICBpZiAoIXRoaXMubWVyaWRpYW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5pbmZpbml0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcEluaXRpYWxWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlVmFsdWUgPSB0aGlzLml0ZW1zLmZpcnN0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5fYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVJbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29sdW1uVHJhbnNsYXRpb25zUHJlc2V0KSB7XG4gICAgICAgICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBpbmNyZWFzZUxhYmVsOiAnY29yZVRpbWUuaW5jcmVhc2VIb3Vyc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5ocnNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLmhvdXJzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBkZWNyZWFzZUxhYmVsOiAnY29yZVRpbWUuZGVjcmVhc2VIb3Vyc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbkluc3RydWN0aW9uOiAnY29yZVRpbWUubmF2aWdhdGlvbkluc3RydWN0aW9uJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGVzJzpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGluY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5pbmNyZWFzZU1pbnV0ZXNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnY29yZVRpbWUubWluTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBmdWxsTGFiZWw6ICdjb3JlVGltZS5taW51dGVzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBkZWNyZWFzZUxhYmVsOiAnY29yZVRpbWUuZGVjcmVhc2VNaW51dGVzTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5zdHJ1Y3Rpb246ICdjb3JlVGltZS5uYXZpZ2F0aW9uSW5zdHJ1Y3Rpb24nXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2VMYWJlbDogJ2NvcmVUaW1lLmluY3JlYXNlU2Vjb25kc0xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5zZWNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLnNlY29uZHNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGRlY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5kZWNyZWFzZVNlY29uZHNMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JbnN0cnVjdGlvbjogJ2NvcmVUaW1lLm5hdmlnYXRpb25JbnN0cnVjdGlvbidcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncGVyaW9kJzpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGluY3JlYXNlTGFiZWw6ICdjb3JlVGltZS5pbmNyZWFzZVBlcmlvZExhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjb3JlVGltZS5wZXJpb2RMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ2NvcmVUaW1lLnBlcmlvZExhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2VMYWJlbDogJ2NvcmVUaW1lLmRlY3JlYXNlUGVyaW9kTGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5zdHJ1Y3Rpb246ICdjb3JlVGltZS5uYXZpZ2F0aW9uSW5zdHJ1Y3Rpb24nXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsVHJhbnNsYXRpb25Db25maWcgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmZC10aW1lX19zbGlkZXItbGFiZWxcIj57e1xuICAgIHRpbWVDb25maWc/LmxhYmVsIHx8IChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnICYmIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnLmxhYmVsIHwgZmRUcmFuc2xhdGUpKVxufX08L2xhYmVsPlxuQGlmIChhY3RpdmUgJiYgc3Bpbm5lcnMpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGdseXBoPVwibmF2aWdhdGlvbi11cC1hcnJvd1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICB0aW1lQ29uZmlnPy5kZWNyZWFzZUxhYmVsIHx8XG4gICAgICAgICAgICAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyAmJiAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZy5kZWNyZWFzZUxhYmVsIHwgZmRUcmFuc2xhdGUpKVxuICAgICAgICBcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIlxuICAgICAgICAgICAgdGltZUNvbmZpZz8uZGVjcmVhc2VMYWJlbCB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcuZGVjcmVhc2VMYWJlbCB8IGZkVHJhbnNsYXRlKSlcbiAgICAgICAgXCJcbiAgICAgICAgKGtleXVwKT1cInNwaW5uZXJCdXR0b25LZXl1cEhhbmRsZSgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFVwKCRldmVudClcIlxuICAgID48L2J1dHRvbj5cbn1cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRpbWVfX3dyYXBwZXJcIlxuICAgIFtjbGFzcy5mZC10aW1lX193cmFwcGVyLS1hY3RpdmVdPVwiYWN0aXZlXCJcbiAgICBbY2xhc3MuZmQtdGltZV9fd3JhcHBlci0tbWVyaWRpYW5dPVwibWVyaWRpYW5cIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYWN0aXZlID8gd3JhcHBlckhlaWdodCA6ICcnXCJcbj5cbiAgICA8dWxcbiAgICAgICAgY2xhc3M9XCJmZC10aW1lX19saXN0XCJcbiAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiIWFjdGl2ZVwiXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgKGNsaWNrKT1cImluZGljYXRvci5mb2N1cygpXCJcbiAgICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJhY3RpdmVDaGFuZ2VkSGFuZGxlKCRldmVudClcIlxuICAgICAgICAoZHJhZ1N0YXRlQ2hhbmdlKT1cImhhbmRsZURyYWcoJGV2ZW50KVwiXG4gICAgICAgIGZkQ2Fyb3VzZWxcbiAgICA+XG4gICAgICAgIEBmb3IgKHJvdyBvZiByb3dzOyB0cmFjayByb3c7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10aW1lX19pdGVtXCJcbiAgICAgICAgICAgICAgICBmZENhcm91c2VsSXRlbVxuICAgICAgICAgICAgICAgICNpdGVtPVwiZmRDYXJvdXNlbEl0ZW1cIlxuICAgICAgICAgICAgICAgIFtpZF09XCJfY3JlYXRlQ29sdW1uSXRlbUlkQnlJbmRleChpbmRleClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZGlzcGxheWVkLXZhbHVlXT1cInJvdy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC10aW1lX191bml0XCIgcm9sZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicm93LmxhYmVsXCIgKGNsaWNrKT1cInBpY2soaXRlbSwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHJvdy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC10aW1lX19jdXJyZW50LWluZGljYXRvclwiXG4gICAgICAgICNpbmRpY2F0b3JcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5pZF09XCJjdXJyZW50SW5kaWNhdG9ySWRcIlxuICAgICAgICBbY2xhc3MuZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICAgIHRpbWVDb25maWc/Lm5hdmlnYXRpb25JbnN0cnVjdGlvbiB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcubmF2aWdhdGlvbkluc3RydWN0aW9uIHwgZmRUcmFuc2xhdGUpKVxuICAgICAgICBcIlxuICAgICAgICAoZm9jdXMpPVwiX29uRm9jdXNJbmRpY2F0b3IoKVwiXG4gICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJmZC10aW1lLWNvbHVtbi1jdXN0b20taGlkZGVuXCJcbiAgICAgICAgICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImN1cnJlbnRJbmRpY2F0b3JWYWx1ZUlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC10aW1lLWNvbHVtbi1jdXN0b20taGlkZGVuXT1cImFjdGl2ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICB0aW1lQ29uZmlnPy5sYWJlbCB8fCAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZyAmJiAoaW50ZXJuYWxUcmFuc2xhdGlvbkNvbmZpZy5mdWxsTGFiZWwgfCBmZFRyYW5zbGF0ZSkpXG4gICAgICAgICAgICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgQGlmICghYWN0aXZlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtdGltZV9faXRlbSBmZC10aW1lX19pdGVtLS1jb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9kaXY+XG5AaWYgKGFjdGl2ZSAmJiBzcGlubmVycykge1xuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJuYXZpZ2F0aW9uLWRvd24tYXJyb3dcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgdGltZUNvbmZpZz8uaW5jcmVhc2VMYWJlbCB8fFxuICAgICAgICAgICAgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcgJiYgKGludGVybmFsVHJhbnNsYXRpb25Db25maWcuaW5jcmVhc2VMYWJlbCB8IGZkVHJhbnNsYXRlKSlcbiAgICAgICAgXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJcbiAgICAgICAgICAgIHRpbWVDb25maWc/LmluY3JlYXNlTGFiZWwgfHxcbiAgICAgICAgICAgIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnICYmIChpbnRlcm5hbFRyYW5zbGF0aW9uQ29uZmlnLmluY3JlYXNlTGFiZWwgfCBmZFRyYW5zbGF0ZSkpXG4gICAgICAgIFwiXG4gICAgICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxEb3duKClcIlxuICAgID48L2J1dHRvbj5cbn1cbiJdfQ==
|
|
@@ -79,4 +79,4 @@ export class BaseStrategy {
|
|
|
79
79
|
lastNode.lineEl.nativeElement.style.opacity = '0';
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90aW1lbGluZS9zZXJ2aWNlcy9wb3NpdGlvbi1zdHJhdGVnaWVzL2Jhc2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixZQUFZO0lBQWxDO1FBQ0ksaUNBQWlDO1FBQ2hCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRW5DLDJDQUEyQztRQUMxQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWpDLHFEQUFxRDtRQUNwQyw2QkFBd0IsR0FBRyxFQUFFLENBQUM7SUEyRm5ELENBQUM7SUF0RkcsY0FBYztJQUNKLFVBQVUsQ0FBQyxJQUFvQztRQUNyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUQsQ0FBQztJQUVELGNBQWM7SUFDSixrQkFBa0IsQ0FDeEIsS0FBdUM7UUFFdkMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN2RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjO0lBQ0osdUJBQXVCLENBQUMsS0FBdUMsRUFBRSxJQUFrQjtRQUN6RixNQUFNLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxHQUNoQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFJLEdBQUcsSUFBSSxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDakMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLDBEQUEwRDtZQUMxRCxJQUFJLFlBQVksRUFBRTtnQkFDZCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7YUFDM0Q7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FDVixTQUFTLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3RELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpbWVsaW5lTm9kZUNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGltZWxpbmUtbm9kZS90aW1lbGluZS1ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVBeGlzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVN0cmF0ZWd5IHtcbiAgICAvKiogT2Zmc2V0IGJldHdlZW4gbm9kZXMgbGluZXMgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IFNNQUxMX09GRlNFVCA9IDE0O1xuXG4gICAgLyoqIE9mZnNldCBiZXR3ZWVuIG5vZGVzIGxpbmVzIHdpdGggaWNvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQklHX09GRlNFVCA9IDMwO1xuXG4gICAgLyoqIE9mZnNldCBmb3Igc2Vjb25kIGxpc3QgaW4gd2l0aGluIHZlcnRpY2FsIGF4aXMgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IFZFUlRJQ0FMX1RPUF9MSVNUX09GRlNFVCA9IDI0O1xuXG4gICAgLyoqIENhbGN1bGF0ZSBzdHlsZXMgZm9yIHRpbWVsaW5lIG5vZGVzICovXG4gICAgYWJzdHJhY3QgY2FsY3VsYXRlU3R5bGVzKG5vZGVzOiBUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXSk6IGFueTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9nZXRPZmZzZXQobm9kZTogVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuZ2x5cGggPyB0aGlzLkJJR19PRkZTRVQgOiB0aGlzLlNNQUxMX09GRlNFVDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZ2V0VHdvTGlzdEZyb21PbmUoXG4gICAgICAgIG5vZGVzOiBUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXVxuICAgICk6IFtUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXSwgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlW11dIHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4SW5GaXJzdExpc3QgPSBNYXRoLmNlaWwobm9kZXMubGVuZ3RoIC8gMik7XG4gICAgICAgIGNvbnN0IGZpcnN0TGlzdCA9IG5vZGVzLnNsaWNlKDAsIGxhc3RJbmRleEluRmlyc3RMaXN0KTtcbiAgICAgICAgY29uc3Qgc2Vjb25kTGlzdCA9IG5vZGVzLnNsaWNlKGxhc3RJbmRleEluRmlyc3RMaXN0LCBub2Rlcy5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gW2ZpcnN0TGlzdCwgc2Vjb25kTGlzdF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3NldFN0eWxlc0ZvclNpbmdsZUxpc3Qobm9kZXM6IFRpbWVsaW5lTm9kZUNvbXBvbmVudEludGVyZmFjZVtdLCBheGlzOiBUaW1lbGluZUF4aXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgW29mZnNldFByb3BlcnR5LCBzaXplUHJvcGVydHldID1cbiAgICAgICAgICAgIGF4aXMgPT09ICdob3Jpem9udGFsJyA/IFsnb2Zmc2V0TGVmdCcsICd3aWR0aCddIDogWydvZmZzZXRUb3AnLCAnaGVpZ2h0J107XG5cbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHROb2RlID0gbm9kZXNbaW5kZXggKyAxXTtcbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGlmIChuZXh0Tm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemUgPVxuICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZS5lbC5uYXRpdmVFbGVtZW50W29mZnNldFByb3BlcnR5XSAtXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuZWwubmF0aXZlRWxlbWVudFtvZmZzZXRQcm9wZXJ0eV0gLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRPZmZzZXQobm9kZSk7XG4gICAgICAgICAgICAgICAgbm9kZS5saW5lRWwubmF0aXZlRWxlbWVudC5zdHlsZVtzaXplUHJvcGVydHldID0gc2l6ZSArICdweCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhpZGUgbGFzdCB0aW1lbGluZSBsaW5lIGluIGxpc3RcbiAgICAgICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9zZXRTdHlsZXNGb3JEb3VibGVMaXN0KG5vZGVzOiBUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXSwgYXhpczogVGltZWxpbmVBeGlzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtmaXJzdExpc3QsIHNlY29uZExpc3RdID0gdGhpcy5fZ2V0VHdvTGlzdEZyb21PbmUobm9kZXMpO1xuICAgICAgICBjb25zdCBbb2Zmc2V0UHJvcCwgc2l6ZVByb3AsIHNpemVPZmZzZXRQcm9wXSA9XG4gICAgICAgICAgICBheGlzID09PSAnaG9yaXpvbnRhbCcgPyBbJ29mZnNldExlZnQnLCAnd2lkdGgnLCAnb2Zmc2V0V2lkdGgnXSA6IFsnb2Zmc2V0VG9wJywgJ2hlaWdodCcsICdvZmZzZXRIZWlnaHQnXTtcblxuICAgICAgICAvLyBTZXQgc3R5bGVzIGZvciBzZWNvbmQgbGlzdFxuICAgICAgICBzZWNvbmRMaXN0LmZvckVhY2goKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IG5vZGUuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFsbGVsTm9kZUVsID0gZmlyc3RMaXN0W2luZGV4XS5lbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIGJvdHRvbSBlZGdlIG9mIGl0ZW0gaW4gc2Vjb25kIGxpc3QgaGlnaGVyIHRoYW4gdG9wIGVkZ2Ugb2YgbmV4dCBpdGVtIGluIGZpcnN0IGxpc3RcbiAgICAgICAgICAgIC8vIEFjdHVhbCBvbmx5IGZvciB2ZXJ0aWNhbCBheGlzIGJlY2F1c2UgaXRlbXMgaW4gaG9yaXpvbnRhbCBheGlzIGhhdmUgZml4ZWQgc2l6ZVxuICAgICAgICAgICAgaWYgKGF4aXMgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBzZWNvbmRMaXN0W2luZGV4XS5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpblRvcCA9IGAke3RoaXMuU01BTExfT0ZGU0VUfXB4YDtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHNlY29uZExpc3RbaW5kZXggLSAxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmQmV0d2VlbiA9IHByZXZOb2RlXG4gICAgICAgICAgICAgICAgICAgID8gcGFyYWxsZWxOb2RlRWwub2Zmc2V0VG9wICtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLlZFUlRJQ0FMX1RPUF9MSVNUX09GRlNFVCAtXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZOb2RlLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wICsgcHJldk5vZGUuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpXG4gICAgICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgICAgICAgICAgaWYgKGRpZmZCZXR3ZWVuID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2Tm9kZS5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbkJvdHRvbSA9IGAke2RpZmZCZXR3ZWVufXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPVxuICAgICAgICAgICAgICAgIHBhcmFsbGVsTm9kZUVsW29mZnNldFByb3BdICsgcGFyYWxsZWxOb2RlRWxbc2l6ZU9mZnNldFByb3BdIC0gZWxbb2Zmc2V0UHJvcF0gLSB0aGlzLl9nZXRPZmZzZXQobm9kZSk7XG4gICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlW3NpemVQcm9wXSA9IGRpZmYgKyAncHgnO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTZXQgc3R5bGVzIGZvciBmaXJzdCBsaXN0XG4gICAgICAgIGZpcnN0TGlzdC5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBub2RlLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbGxlbE5vZGUgPSBzZWNvbmRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGlmIChwYXJhbGxlbE5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gcGFyYWxsZWxOb2RlLmVsLm5hdGl2ZUVsZW1lbnRbb2Zmc2V0UHJvcF0gLSBlbFtvZmZzZXRQcm9wXSAtIHRoaXMuX2dldE9mZnNldChub2RlKTtcbiAgICAgICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlW3NpemVQcm9wXSA9IGRpZmYgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIaWRlIGxhc3QgdGltZWxpbmUgbGluZSBpbiBsaXN0c1xuICAgICAgICBjb25zdCBsYXN0Tm9kZSA9XG4gICAgICAgICAgICBmaXJzdExpc3QubGVuZ3RoID09PSBzZWNvbmRMaXN0Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gc2Vjb25kTGlzdFtzZWNvbmRMaXN0Lmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgOiBmaXJzdExpc3RbZmlyc3RMaXN0Lmxlbmd0aCAtIDFdO1xuICAgICAgICBsYXN0Tm9kZS5saW5lRWwubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIH1cbn1cbiJdfQ==
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90aW1lbGluZS9zZXJ2aWNlcy9wb3NpdGlvbi1zdHJhdGVnaWVzL2Jhc2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixZQUFZO0lBQWxDO1FBSUksaUNBQWlDO1FBQ2hCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRW5DLDJDQUEyQztRQUMxQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWpDLHFEQUFxRDtRQUNwQyw2QkFBd0IsR0FBRyxFQUFFLENBQUM7SUF3Rm5ELENBQUM7SUF0RkcsY0FBYztJQUNKLFVBQVUsQ0FBQyxJQUFvQztRQUNyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUQsQ0FBQztJQUVELGNBQWM7SUFDSixrQkFBa0IsQ0FDeEIsS0FBdUM7UUFFdkMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN2RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjO0lBQ0osdUJBQXVCLENBQUMsS0FBdUMsRUFBRSxJQUFrQjtRQUN6RixNQUFNLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxHQUNoQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFJLEdBQUcsSUFBSSxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDakMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLDBEQUEwRDtZQUMxRCxJQUFJLFlBQVksRUFBRTtnQkFDZCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7YUFDM0Q7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FDVixTQUFTLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3RELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpbWVsaW5lTm9kZUNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGltZWxpbmUtbm9kZS90aW1lbGluZS1ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVBeGlzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVN0cmF0ZWd5IHtcbiAgICAvKiogQ2FsY3VsYXRlIHN0eWxlcyBmb3IgdGltZWxpbmUgbm9kZXMgKi9cbiAgICBhYnN0cmFjdCBjYWxjdWxhdGVTdHlsZXMobm9kZXM6IFRpbWVsaW5lTm9kZUNvbXBvbmVudEludGVyZmFjZVtdKTogYW55O1xuXG4gICAgLyoqIE9mZnNldCBiZXR3ZWVuIG5vZGVzIGxpbmVzICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBTTUFMTF9PRkZTRVQgPSAxNDtcblxuICAgIC8qKiBPZmZzZXQgYmV0d2VlbiBub2RlcyBsaW5lcyB3aXRoIGljb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IEJJR19PRkZTRVQgPSAzMDtcblxuICAgIC8qKiBPZmZzZXQgZm9yIHNlY29uZCBsaXN0IGluIHdpdGhpbiB2ZXJ0aWNhbCBheGlzICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBWRVJUSUNBTF9UT1BfTElTVF9PRkZTRVQgPSAyNDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9nZXRPZmZzZXQobm9kZTogVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuZ2x5cGggPyB0aGlzLkJJR19PRkZTRVQgOiB0aGlzLlNNQUxMX09GRlNFVDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZ2V0VHdvTGlzdEZyb21PbmUoXG4gICAgICAgIG5vZGVzOiBUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXVxuICAgICk6IFtUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXSwgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlW11dIHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4SW5GaXJzdExpc3QgPSBNYXRoLmNlaWwobm9kZXMubGVuZ3RoIC8gMik7XG4gICAgICAgIGNvbnN0IGZpcnN0TGlzdCA9IG5vZGVzLnNsaWNlKDAsIGxhc3RJbmRleEluRmlyc3RMaXN0KTtcbiAgICAgICAgY29uc3Qgc2Vjb25kTGlzdCA9IG5vZGVzLnNsaWNlKGxhc3RJbmRleEluRmlyc3RMaXN0LCBub2Rlcy5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gW2ZpcnN0TGlzdCwgc2Vjb25kTGlzdF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3NldFN0eWxlc0ZvclNpbmdsZUxpc3Qobm9kZXM6IFRpbWVsaW5lTm9kZUNvbXBvbmVudEludGVyZmFjZVtdLCBheGlzOiBUaW1lbGluZUF4aXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgW29mZnNldFByb3BlcnR5LCBzaXplUHJvcGVydHldID1cbiAgICAgICAgICAgIGF4aXMgPT09ICdob3Jpem9udGFsJyA/IFsnb2Zmc2V0TGVmdCcsICd3aWR0aCddIDogWydvZmZzZXRUb3AnLCAnaGVpZ2h0J107XG5cbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHROb2RlID0gbm9kZXNbaW5kZXggKyAxXTtcbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGlmIChuZXh0Tm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemUgPVxuICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZS5lbC5uYXRpdmVFbGVtZW50W29mZnNldFByb3BlcnR5XSAtXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuZWwubmF0aXZlRWxlbWVudFtvZmZzZXRQcm9wZXJ0eV0gLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRPZmZzZXQobm9kZSk7XG4gICAgICAgICAgICAgICAgbm9kZS5saW5lRWwubmF0aXZlRWxlbWVudC5zdHlsZVtzaXplUHJvcGVydHldID0gc2l6ZSArICdweCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhpZGUgbGFzdCB0aW1lbGluZSBsaW5lIGluIGxpc3RcbiAgICAgICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9zZXRTdHlsZXNGb3JEb3VibGVMaXN0KG5vZGVzOiBUaW1lbGluZU5vZGVDb21wb25lbnRJbnRlcmZhY2VbXSwgYXhpczogVGltZWxpbmVBeGlzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtmaXJzdExpc3QsIHNlY29uZExpc3RdID0gdGhpcy5fZ2V0VHdvTGlzdEZyb21PbmUobm9kZXMpO1xuICAgICAgICBjb25zdCBbb2Zmc2V0UHJvcCwgc2l6ZVByb3AsIHNpemVPZmZzZXRQcm9wXSA9XG4gICAgICAgICAgICBheGlzID09PSAnaG9yaXpvbnRhbCcgPyBbJ29mZnNldExlZnQnLCAnd2lkdGgnLCAnb2Zmc2V0V2lkdGgnXSA6IFsnb2Zmc2V0VG9wJywgJ2hlaWdodCcsICdvZmZzZXRIZWlnaHQnXTtcblxuICAgICAgICAvLyBTZXQgc3R5bGVzIGZvciBzZWNvbmQgbGlzdFxuICAgICAgICBzZWNvbmRMaXN0LmZvckVhY2goKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IG5vZGUuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFsbGVsTm9kZUVsID0gZmlyc3RMaXN0W2luZGV4XS5lbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIGJvdHRvbSBlZGdlIG9mIGl0ZW0gaW4gc2Vjb25kIGxpc3QgaGlnaGVyIHRoYW4gdG9wIGVkZ2Ugb2YgbmV4dCBpdGVtIGluIGZpcnN0IGxpc3RcbiAgICAgICAgICAgIC8vIEFjdHVhbCBvbmx5IGZvciB2ZXJ0aWNhbCBheGlzIGJlY2F1c2UgaXRlbXMgaW4gaG9yaXpvbnRhbCBheGlzIGhhdmUgZml4ZWQgc2l6ZVxuICAgICAgICAgICAgaWYgKGF4aXMgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBzZWNvbmRMaXN0W2luZGV4XS5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpblRvcCA9IGAke3RoaXMuU01BTExfT0ZGU0VUfXB4YDtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHNlY29uZExpc3RbaW5kZXggLSAxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmQmV0d2VlbiA9IHByZXZOb2RlXG4gICAgICAgICAgICAgICAgICAgID8gcGFyYWxsZWxOb2RlRWwub2Zmc2V0VG9wICtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLlZFUlRJQ0FMX1RPUF9MSVNUX09GRlNFVCAtXG4gICAgICAgICAgICAgICAgICAgICAgKHByZXZOb2RlLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wICsgcHJldk5vZGUuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpXG4gICAgICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgICAgICAgICAgaWYgKGRpZmZCZXR3ZWVuID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2Tm9kZS5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbkJvdHRvbSA9IGAke2RpZmZCZXR3ZWVufXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPVxuICAgICAgICAgICAgICAgIHBhcmFsbGVsTm9kZUVsW29mZnNldFByb3BdICsgcGFyYWxsZWxOb2RlRWxbc2l6ZU9mZnNldFByb3BdIC0gZWxbb2Zmc2V0UHJvcF0gLSB0aGlzLl9nZXRPZmZzZXQobm9kZSk7XG4gICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlW3NpemVQcm9wXSA9IGRpZmYgKyAncHgnO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTZXQgc3R5bGVzIGZvciBmaXJzdCBsaXN0XG4gICAgICAgIGZpcnN0TGlzdC5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBub2RlLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBwYXJhbGxlbE5vZGUgPSBzZWNvbmRMaXN0W2luZGV4XTtcbiAgICAgICAgICAgIC8vIFNldCBsaW5lIHNpemUgZGVwZW5kIG9uIHdoZXJlIG5leHQgbm9kZSBpdGVtIGlzIHN0YXJ0ZWRcbiAgICAgICAgICAgIGlmIChwYXJhbGxlbE5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gcGFyYWxsZWxOb2RlLmVsLm5hdGl2ZUVsZW1lbnRbb2Zmc2V0UHJvcF0gLSBlbFtvZmZzZXRQcm9wXSAtIHRoaXMuX2dldE9mZnNldChub2RlKTtcbiAgICAgICAgICAgICAgICBub2RlLmxpbmVFbC5uYXRpdmVFbGVtZW50LnN0eWxlW3NpemVQcm9wXSA9IGRpZmYgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIaWRlIGxhc3QgdGltZWxpbmUgbGluZSBpbiBsaXN0c1xuICAgICAgICBjb25zdCBsYXN0Tm9kZSA9XG4gICAgICAgICAgICBmaXJzdExpc3QubGVuZ3RoID09PSBzZWNvbmRMaXN0Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gc2Vjb25kTGlzdFtzZWNvbmRMaXN0Lmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgOiBmaXJzdExpc3RbZmlyc3RMaXN0Lmxlbmd0aCAtIDFdO1xuICAgICAgICBsYXN0Tm9kZS5saW5lRWwubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -167,7 +167,7 @@ export class TimelineComponent {
|
|
|
167
167
|
return [dataForFirstList, dataForSecondList];
|
|
168
168
|
}
|
|
169
169
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TimelineComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i1.TimelinePositionControlService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TimelineComponent, isStandalone: true, selector: "fd-timeline", inputs: { dataSource: "dataSource", trackBy: "trackBy", axis: "axis", layout: "layout" }, host: { attributes: { "role": "timeline", "arial-label": "timeline" }, properties: { "class.fd-timeline--horizontal": "axis === \"horizontal\"", "class.fd-timeline--vertical": "axis === \"vertical\"" }, classAttribute: "fd-timeline" }, providers: [TimelinePositionControlService], queries: [{ propertyName: "_nodeDefs", predicate: TimelineNodeDefDirective, descendants: true }], viewQueries: [{ propertyName: "_firstListOutlet", first: true, predicate: TimelineFirstListOutletDirective, descendants: true, static: true }, { propertyName: "_secondListOutlet", first: true, predicate: TimelineSecondListOutletDirective, descendants: true, static: true }, { propertyName: "_loadingTemplate", first: true, predicate: ["loadingTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <fd-timeline-node *fdkRepeat=\"3\">\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n</ng-template>\n", styles: [".fd-timeline{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline:before,.fd-timeline:after{box-sizing:inherit;font-size:inherit}.fd-timeline--double-sided{max-width:57.5rem}.fd-timeline__container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-top:1rem}.fd-timeline__container:before,.fd-timeline__container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-bottom:1rem;list-style-type:none}.fd-timeline__group:before,.fd-timeline__group:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group--collapsed{margin-bottom:2rem}.fd-timeline__group-header-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-timeline__group-header-container:before,.fd-timeline__group-header-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header-container--horizontal{width:auto;height:100%;flex-direction:column;align-items:flex-start}.fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar{margin:0;margin-left:1.25rem;margin-top:.8125rem}[dir=rtl] .fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar,.fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar[dir=rtl]{margin-right:1.25rem;margin-left:0}.fd-timeline__group-header{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;margin-right:.8125rem;cursor:pointer;width:-moz-fit-content;width:fit-content;position:relative;height:1.625rem;background:var(--sapButton_Selected_Background);border-radius:var(--sapElement_BorderCornerRadius);border:.0625rem solid var(--sapButton_Selected_BorderColor)}.fd-timeline__group-header:before,.fd-timeline__group-header:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header:focus,.fd-timeline__group-header.is-focus{outline:none}.fd-timeline__group-header:focus:before,.fd-timeline__group-header.is-focus:before{content:\"\";display:block;position:absolute;inset:-.1875rem;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor)}[dir=rtl] .fd-timeline__group-header,.fd-timeline__group-header[dir=rtl]{margin-right:0;margin-left:.8125rem}.fd-timeline__group-header:hover,.fd-timeline__group-header.is-hover{background:var(--sapButton_Selected_Hover_Background);border-color:var(--sapButton_Selected_Hover_BorderColor)}.fd-timeline__group-header:active,.fd-timeline__group-header.is-active{background:var(--sapButton_Selected_Background);border-color:var(--sapButton_Selected_BorderColor)}.fd-timeline__group-header--collapsed{background:var(--sapButton_Background);border-color:var(--sapButton_BorderColor)}.fd-timeline__group-header--collapsed:focus:before,.fd-timeline__group-header--collapsed.is-focus:before{left:-.1875rem;right:-.375rem}[dir=rtl] .fd-timeline__group-header--collapsed:focus:before,[dir=rtl] .fd-timeline__group-header--collapsed.is-focus:before,.fd-timeline__group-header--collapsed[dir=rtl]:focus:before,.fd-timeline__group-header--collapsed[dir=rtl].is-focus:before{right:-.1875rem;left:-.375rem}.fd-timeline__group-header--collapsed .fd-timeline__group-header-icon [class*=sap-icon]{color:var(--sapButton_TextColor)}[dir=rtl] .fd-timeline__group-header--collapsed .fd-timeline__group-header-icon,.fd-timeline__group-header--collapsed .fd-timeline__group-header-icon[dir=rtl]{transform:rotate(180deg)}.fd-timeline__group-header--collapsed .fd-timeline__group-header-text{color:var(--sapButton_Hover_TextColor)}.fd-timeline__group-header--collapsed:hover,.fd-timeline__group-header--collapsed.is-hover{background:var(--sapButton_Hover_Background);border-color:var(--sapButton_Hover_BorderColor)}.fd-timeline__group-header--collapsed:hover:after,.fd-timeline__group-header--collapsed.is-hover:after{background:var(--sapButton_Hover_Background);border-color:var(--sapButton_Hover_BorderColor)}.fd-timeline__group-header--collapsed:hover .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed.is-hover .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed:hover .fd-timeline__group-header-text,.fd-timeline__group-header--collapsed.is-hover .fd-timeline__group-header-text{color:var(--sapButton_Hover_TextColor)}.fd-timeline__group-header--collapsed:active,.fd-timeline__group-header--collapsed.is-active{background:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor)}.fd-timeline__group-header--collapsed:active:after,.fd-timeline__group-header--collapsed.is-active:after{background:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor)}.fd-timeline__group-header--collapsed:active .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed.is-active .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed:active .fd-timeline__group-header-text,.fd-timeline__group-header--collapsed.is-active .fd-timeline__group-header-text{color:var(--sapButton_Active_TextColor)}.fd-timeline__group-header--collapsed:after{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;transform:translate(0) translateY(0) rotate(45deg);content:\"\";position:absolute;width:.4375rem;height:.4375rem;right:-.25rem;background:var(--sapButton_Background);border-top:.0625rem solid var(--sapButton_BorderColor);border-right:.0625rem solid var(--sapButton_BorderColor)}.fd-timeline__group-header--collapsed:after:before,.fd-timeline__group-header--collapsed:after:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header--collapsed:after,.fd-timeline__group-header--collapsed[dir=rtl]:after{transform:translate(0) translateY(0) rotate(225deg);right:auto;left:-.25rem}.fd-timeline__group-header--horizontal:focus:before,.fd-timeline__group-header--horizontal.is-focus:before{right:-.1875rem;bottom:-.375rem}[dir=rtl] .fd-timeline__group-header--horizontal:focus:before,[dir=rtl] .fd-timeline__group-header--horizontal.is-focus:before,.fd-timeline__group-header--horizontal[dir=rtl]:focus:before,.fd-timeline__group-header--horizontal[dir=rtl].is-focus:before{left:-.1875rem;right:-.1875rem}.fd-timeline__group-header--horizontal:after{transform:rotate(135deg);left:1rem;bottom:-.25rem}[dir=rtl] .fd-timeline__group-header--horizontal:after,.fd-timeline__group-header--horizontal[dir=rtl]:after{left:auto;transform:rotate(135deg);right:1rem}.fd-timeline__group-header-icon{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:.5rem;margin-right:.5rem}.fd-timeline__group-header-icon:before,.fd-timeline__group-header-icon:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header-icon [class*=sap-icon]{color:var(--sapButton_Selected_TextColor);font-size:1rem;height:1.625rem;line-height:1.625rem}.fd-timeline__group-header-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-right:1rem;cursor:inherit;color:var(--sapButton_Selected_TextColor)}.fd-timeline__group-header-text:before,.fd-timeline__group-header-text:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header-text,.fd-timeline__group-header-text[dir=rtl]{margin-right:0;margin-left:1rem}.fd-timeline__node-container--horizontal{flex-direction:row}.fd-timeline__node-container--horizontal .fd-timeline__node{margin-top:0;margin-bottom:0;margin-left:.25rem;margin-right:.25rem}.fd-timeline__node-container--horizontal .fd-timeline__node--grouping{margin:0}.fd-timeline__node-container--horizontal .fd-timeline__node--icon{margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:.5rem}.fd-timeline__node{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;width:.375rem;height:.375rem;border-radius:50%;background:var(--sapContent_ForegroundBorderColor)}.fd-timeline__node:before,.fd-timeline__node:after{box-sizing:inherit;font-size:inherit}.fd-timeline__node--grouping{margin-top:0;margin-bottom:0;border:.0625rem solid var(--sapContent_ForegroundBorderColor);width:.5rem;height:.5rem;border-radius:50%;background:transparent}.fd-timeline__node--icon{margin-top:.5rem;margin-bottom:.5rem;width:auto;height:auto;border-radius:50%;background:transparent}.fd-timeline__node--icon [class*=sap-icon]{line-height:1;width:1.375rem;height:1.375rem;font-size:1.375rem;color:var(--sapContent_NonInteractiveIconColor)}.fd-timeline__group-header-bar{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-right:.375rem;border:.0625rem dashed var(--sapContent_ForegroundBorderColor);flex:1}.fd-timeline__group-header-bar:before,.fd-timeline__group-header-bar:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header-bar,.fd-timeline__group-header-bar[dir=rtl]{margin-right:0;margin-left:.375rem}.fd-timeline__connecting-line{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;border:.0625rem solid var(--sapContent_ForegroundBorderColor)}.fd-timeline__connecting-line:before,.fd-timeline__connecting-line:after{box-sizing:inherit;font-size:inherit}.fd-timeline__posts{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;list-style-type:none}.fd-timeline__posts:before,.fd-timeline__posts:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-direction:row}.fd-timeline__post-container:before,.fd-timeline__post-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;height:auto;padding:.5rem;position:relative;border-radius:.25rem;border:.0625rem solid var(--sapGroup_ContentBorderColor);background:var(--sapGroup_ContentBackground)}.fd-timeline__post:before,.fd-timeline__post:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post:after{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;content:\"\";position:absolute;width:.8rem;height:.8rem;border-top:.0625rem solid var(--sapGroup_ContentBorderColor);border-right:.0625rem solid var(--sapGroup_ContentBorderColor);background:var(--sapGroup_ContentBackground)}.fd-timeline__post:after:before,.fd-timeline__post:after:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;margin-bottom:.5rem}.fd-timeline__post-header-container:before,.fd-timeline__post-header-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-header:before,.fd-timeline__post-header:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header:not(:first-child){margin-left:.3125rem}[dir=rtl] .fd-timeline__post-header:not(:first-child),.fd-timeline__post-header:not(:first-child)[dir=rtl]{margin-right:.3125rem;margin-left:0}.fd-timeline__post-header-title{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;font-weight:700}.fd-timeline__post-header-title:before,.fd-timeline__post-header-title:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-header-text:before,.fd-timeline__post-header-text:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-subheader{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-top:.125rem;font-size:var(--sapFontSmallSize);color:var(--sapContent_LabelColor)}.fd-timeline__post-subheader:before,.fd-timeline__post-subheader:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-content:before,.fd-timeline__post-content:after{box-sizing:inherit;font-size:inherit}.fd-timeline .fd-timeline__post-actions{margin-top:.5rem}.fd-timeline .fd-timeline__post-actions button:not(:first-child){margin-left:.5rem}[dir=rtl] .fd-timeline .fd-timeline__post-actions button:not(:first-child),.fd-timeline .fd-timeline__post-actions button:not(:first-child)[dir=rtl]{margin-right:.5rem;margin-left:0}.fd-timeline__post{flex-grow:1}.fd-timeline__post-subheader{display:block}.fd-timeline__post-header-title{margin-right:.3rem}.fd-timeline__node--icon{font-size:1.375rem}.fd-timeline__node--icon [class*=sap-icon]{display:flex;flex-direction:row;justify-content:center}.fd-timeline__node-container{position:absolute;height:1.5rem}.fd-timeline__node-wrapper{display:flex;flex-direction:row;position:relative;box-sizing:border-box;flex-shrink:0}.fd-timeline__list{display:flex;position:relative;flex-grow:1}.fd-timeline__connecting-line{flex-shrink:0}.fd-timeline{display:flex;justify-content:center}.fd-timeline--horizontal{flex-direction:column}.fd-timeline--horizontal .fd-timeline__node-wrapper{width:20rem}.fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper{padding-left:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper[dir=rtl]{padding-right:.25rem;padding-left:0}.fd-timeline--horizontal .fd-timeline__post{margin-right:1.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__post,.fd-timeline--horizontal .fd-timeline__post[dir=rtl]{margin-right:0;margin-left:1.25rem}.fd-timeline--horizontal .fd-timeline__main-line{height:1.5rem;width:100%}.fd-timeline--horizontal .fd-timeline__node-container{height:1.5rem;width:100%;display:flex;align-items:center;left:.5rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__node-container,.fd-timeline--horizontal .fd-timeline__node-container[dir=rtl]{left:auto;right:.5rem}.fd-timeline--horizontal .fd-timeline__icon-wrapper{flex:0;padding-left:.75rem;padding-right:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-right:.75rem;padding-left:0}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-right:0;padding-left:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-left:.25rem;padding-right:.75rem}.fd-timeline--horizontal .fd-timeline__list--first{align-items:flex-end}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__node-container{bottom:-1.5rem}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post{margin-bottom:1rem}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(135deg);left:1rem;bottom:-.4375rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post:after,.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post[dir=rtl]:after{left:auto;right:1rem}.fd-timeline--horizontal .fd-timeline__list--second{align-items:flex-start}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__node-container{top:-1.5rem}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post{margin-top:1rem}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(315deg);left:1rem;top:-.4375rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post:after,.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post[dir=rtl]:after{left:auto;right:1rem}.fd-timeline--horizontal .fd-timeline__list--with-offset{padding-left:4.688rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--with-offset,.fd-timeline--horizontal .fd-timeline__list--with-offset[dir=rtl]{padding-right:4.688rem;padding-left:0}.fd-timeline--vertical{max-width:50rem;align-items:stretch}.fd-timeline--vertical .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper{padding-top:.25rem}.fd-timeline--vertical .fd-timeline__node-wrapper--icon .fd-timeline__node--icon{margin:0}.fd-timeline--vertical .fd-timeline__post{margin-bottom:1.25rem}.fd-timeline--vertical .fd-timeline__main-line{width:1.5rem;flex:0 0 1.5rem;height:100%}.fd-timeline--vertical .fd-timeline__node-container{height:100%;flex:1 0;width:1.5rem;display:flex;flex-direction:column;align-items:center;top:.5rem}.fd-timeline--vertical .fd-timeline__icon-wrapper{flex:0;padding-top:.75rem;padding-bottom:.25rem}.fd-timeline--vertical .fd-timeline__list{flex-direction:column;flex:1 0 calc(50% - .75rem)}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container{right:-1.5rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container[dir=rtl]{right:auto;left:-1.5rem}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post{margin-right:1rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post[dir=rtl]{margin-right:0;margin-left:1rem}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(45deg);top:1rem;right:-.4375rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post:after,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post[dir=rtl]:after{transform:translate(0) translateY(0) rotate(225deg);right:auto;left:-.4375rem}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container{left:-1.5rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container[dir=rtl]{left:auto;right:-1.5rem}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post{margin-left:1rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post[dir=rtl]{margin-right:1rem;margin-left:0}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(225deg);top:1rem;left:-.4375rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post:after,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post[dir=rtl]:after{transform:translate(0) translateY(0) rotate(45deg);left:auto;right:-.4375rem}.fd-timeline--vertical .fd-timeline__list--with-offset{padding-top:1.5rem}.fd-timeline--vertical .fd-timeline__list--empty{flex:0 0 0}\n"], dependencies: [{ kind: "directive", type: TimelineFirstListOutletDirective, selector: "[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]" }, { kind: "directive", type: TimelineSecondListOutletDirective, selector: "[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]" }, { kind: "directive", type: RepeatDirective, selector: "[fdkRepeat]", inputs: ["fdkRepeat"] }, { kind: "component", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: ["glyph", "glyphFont", "ariaLabel"] }, { kind: "directive", type: TimelineNodeHeaderDirective, selector: "fd-timeline-node-header" }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
170
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TimelineComponent, isStandalone: true, selector: "fd-timeline", inputs: { dataSource: "dataSource", trackBy: "trackBy", axis: "axis", layout: "layout" }, host: { attributes: { "role": "timeline", "arial-label": "timeline" }, properties: { "class.fd-timeline--horizontal": "axis === \"horizontal\"", "class.fd-timeline--vertical": "axis === \"vertical\"" }, classAttribute: "fd-timeline" }, providers: [TimelinePositionControlService], queries: [{ propertyName: "_nodeDefs", predicate: TimelineNodeDefDirective, descendants: true }], viewQueries: [{ propertyName: "_loadingTemplate", first: true, predicate: ["loadingTemplate"], descendants: true }, { propertyName: "_firstListOutlet", first: true, predicate: TimelineFirstListOutletDirective, descendants: true, static: true }, { propertyName: "_secondListOutlet", first: true, predicate: TimelineSecondListOutletDirective, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <fd-timeline-node *fdkRepeat=\"3\">\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n</ng-template>\n", styles: [".fd-timeline{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline:before,.fd-timeline:after{box-sizing:inherit;font-size:inherit}.fd-timeline--double-sided{max-width:57.5rem}.fd-timeline__container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-top:1rem}.fd-timeline__container:before,.fd-timeline__container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-bottom:1rem;list-style-type:none}.fd-timeline__group:before,.fd-timeline__group:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group--collapsed{margin-bottom:2rem}.fd-timeline__group-header-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-timeline__group-header-container:before,.fd-timeline__group-header-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header-container--horizontal{width:auto;height:100%;flex-direction:column;align-items:flex-start}.fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar{margin:0;margin-left:1.25rem;margin-top:.8125rem}[dir=rtl] .fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar,.fd-timeline__group-header-container--horizontal .fd-timeline__group-header-bar[dir=rtl]{margin-right:1.25rem;margin-left:0}.fd-timeline__group-header{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;margin-right:.8125rem;cursor:pointer;width:-moz-fit-content;width:fit-content;position:relative;height:1.625rem;background:var(--sapButton_Selected_Background);border-radius:var(--sapElement_BorderCornerRadius);border:.0625rem solid var(--sapButton_Selected_BorderColor)}.fd-timeline__group-header:before,.fd-timeline__group-header:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header:focus,.fd-timeline__group-header.is-focus{outline:none}.fd-timeline__group-header:focus:before,.fd-timeline__group-header.is-focus:before{content:\"\";display:block;position:absolute;inset:-.1875rem;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor)}[dir=rtl] .fd-timeline__group-header,.fd-timeline__group-header[dir=rtl]{margin-right:0;margin-left:.8125rem}.fd-timeline__group-header:hover,.fd-timeline__group-header.is-hover{background:var(--sapButton_Selected_Hover_Background);border-color:var(--sapButton_Selected_Hover_BorderColor)}.fd-timeline__group-header:active,.fd-timeline__group-header.is-active{background:var(--sapButton_Selected_Background);border-color:var(--sapButton_Selected_BorderColor)}.fd-timeline__group-header--collapsed{background:var(--sapButton_Background);border-color:var(--sapButton_BorderColor)}.fd-timeline__group-header--collapsed:focus:before,.fd-timeline__group-header--collapsed.is-focus:before{left:-.1875rem;right:-.375rem}[dir=rtl] .fd-timeline__group-header--collapsed:focus:before,[dir=rtl] .fd-timeline__group-header--collapsed.is-focus:before,.fd-timeline__group-header--collapsed[dir=rtl]:focus:before,.fd-timeline__group-header--collapsed[dir=rtl].is-focus:before{right:-.1875rem;left:-.375rem}.fd-timeline__group-header--collapsed .fd-timeline__group-header-icon [class*=sap-icon]{color:var(--sapButton_TextColor)}[dir=rtl] .fd-timeline__group-header--collapsed .fd-timeline__group-header-icon,.fd-timeline__group-header--collapsed .fd-timeline__group-header-icon[dir=rtl]{transform:rotate(180deg)}.fd-timeline__group-header--collapsed .fd-timeline__group-header-text{color:var(--sapButton_Hover_TextColor)}.fd-timeline__group-header--collapsed:hover,.fd-timeline__group-header--collapsed.is-hover{background:var(--sapButton_Hover_Background);border-color:var(--sapButton_Hover_BorderColor)}.fd-timeline__group-header--collapsed:hover:after,.fd-timeline__group-header--collapsed.is-hover:after{background:var(--sapButton_Hover_Background);border-color:var(--sapButton_Hover_BorderColor)}.fd-timeline__group-header--collapsed:hover .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed.is-hover .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed:hover .fd-timeline__group-header-text,.fd-timeline__group-header--collapsed.is-hover .fd-timeline__group-header-text{color:var(--sapButton_Hover_TextColor)}.fd-timeline__group-header--collapsed:active,.fd-timeline__group-header--collapsed.is-active{background:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor)}.fd-timeline__group-header--collapsed:active:after,.fd-timeline__group-header--collapsed.is-active:after{background:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor)}.fd-timeline__group-header--collapsed:active .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed.is-active .fd-timeline__group-header-icon [class*=sap-icon],.fd-timeline__group-header--collapsed:active .fd-timeline__group-header-text,.fd-timeline__group-header--collapsed.is-active .fd-timeline__group-header-text{color:var(--sapButton_Active_TextColor)}.fd-timeline__group-header--collapsed:after{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;transform:translate(0) translateY(0) rotate(45deg);content:\"\";position:absolute;width:.4375rem;height:.4375rem;right:-.25rem;background:var(--sapButton_Background);border-top:.0625rem solid var(--sapButton_BorderColor);border-right:.0625rem solid var(--sapButton_BorderColor)}.fd-timeline__group-header--collapsed:after:before,.fd-timeline__group-header--collapsed:after:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header--collapsed:after,.fd-timeline__group-header--collapsed[dir=rtl]:after{transform:translate(0) translateY(0) rotate(225deg);right:auto;left:-.25rem}.fd-timeline__group-header--horizontal:focus:before,.fd-timeline__group-header--horizontal.is-focus:before{right:-.1875rem;bottom:-.375rem}[dir=rtl] .fd-timeline__group-header--horizontal:focus:before,[dir=rtl] .fd-timeline__group-header--horizontal.is-focus:before,.fd-timeline__group-header--horizontal[dir=rtl]:focus:before,.fd-timeline__group-header--horizontal[dir=rtl].is-focus:before{left:-.1875rem;right:-.1875rem}.fd-timeline__group-header--horizontal:after{transform:rotate(135deg);left:1rem;bottom:-.25rem}[dir=rtl] .fd-timeline__group-header--horizontal:after,.fd-timeline__group-header--horizontal[dir=rtl]:after{left:auto;transform:rotate(135deg);right:1rem}.fd-timeline__group-header-icon{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:.5rem;margin-right:.5rem}.fd-timeline__group-header-icon:before,.fd-timeline__group-header-icon:after{box-sizing:inherit;font-size:inherit}.fd-timeline__group-header-icon [class*=sap-icon]{color:var(--sapButton_Selected_TextColor);font-size:1rem;height:1.625rem;line-height:1.625rem}.fd-timeline__group-header-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-right:1rem;cursor:inherit;color:var(--sapButton_Selected_TextColor)}.fd-timeline__group-header-text:before,.fd-timeline__group-header-text:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header-text,.fd-timeline__group-header-text[dir=rtl]{margin-right:0;margin-left:1rem}.fd-timeline__node-container--horizontal{flex-direction:row}.fd-timeline__node-container--horizontal .fd-timeline__node{margin-top:0;margin-bottom:0;margin-left:.25rem;margin-right:.25rem}.fd-timeline__node-container--horizontal .fd-timeline__node--grouping{margin:0}.fd-timeline__node-container--horizontal .fd-timeline__node--icon{margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:.5rem}.fd-timeline__node{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;width:.375rem;height:.375rem;border-radius:50%;background:var(--sapContent_ForegroundBorderColor)}.fd-timeline__node:before,.fd-timeline__node:after{box-sizing:inherit;font-size:inherit}.fd-timeline__node--grouping{margin-top:0;margin-bottom:0;border:.0625rem solid var(--sapContent_ForegroundBorderColor);width:.5rem;height:.5rem;border-radius:50%;background:transparent}.fd-timeline__node--icon{margin-top:.5rem;margin-bottom:.5rem;width:auto;height:auto;border-radius:50%;background:transparent}.fd-timeline__node--icon [class*=sap-icon]{line-height:1;width:1.375rem;height:1.375rem;font-size:1.375rem;color:var(--sapContent_NonInteractiveIconColor)}.fd-timeline__group-header-bar{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-right:.375rem;border:.0625rem dashed var(--sapContent_ForegroundBorderColor);flex:1}.fd-timeline__group-header-bar:before,.fd-timeline__group-header-bar:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-timeline__group-header-bar,.fd-timeline__group-header-bar[dir=rtl]{margin-right:0;margin-left:.375rem}.fd-timeline__connecting-line{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;border:.0625rem solid var(--sapContent_ForegroundBorderColor)}.fd-timeline__connecting-line:before,.fd-timeline__connecting-line:after{box-sizing:inherit;font-size:inherit}.fd-timeline__posts{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;list-style-type:none}.fd-timeline__posts:before,.fd-timeline__posts:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;flex-direction:row}.fd-timeline__post-container:before,.fd-timeline__post-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;height:auto;padding:.5rem;position:relative;border-radius:.25rem;border:.0625rem solid var(--sapGroup_ContentBorderColor);background:var(--sapGroup_ContentBackground)}.fd-timeline__post:before,.fd-timeline__post:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post:after{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;content:\"\";position:absolute;width:.8rem;height:.8rem;border-top:.0625rem solid var(--sapGroup_ContentBorderColor);border-right:.0625rem solid var(--sapGroup_ContentBorderColor);background:var(--sapGroup_ContentBackground)}.fd-timeline__post:after:before,.fd-timeline__post:after:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center;margin-bottom:.5rem}.fd-timeline__post-header-container:before,.fd-timeline__post-header-container:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-header:before,.fd-timeline__post-header:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header:not(:first-child){margin-left:.3125rem}[dir=rtl] .fd-timeline__post-header:not(:first-child),.fd-timeline__post-header:not(:first-child)[dir=rtl]{margin-right:.3125rem;margin-left:0}.fd-timeline__post-header-title{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;font-weight:700}.fd-timeline__post-header-title:before,.fd-timeline__post-header-title:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-header-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-header-text:before,.fd-timeline__post-header-text:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-subheader{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-top:.125rem;font-size:var(--sapFontSmallSize);color:var(--sapContent_LabelColor)}.fd-timeline__post-subheader:before,.fd-timeline__post-subheader:after{box-sizing:inherit;font-size:inherit}.fd-timeline__post-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-timeline__post-content:before,.fd-timeline__post-content:after{box-sizing:inherit;font-size:inherit}.fd-timeline .fd-timeline__post-actions{margin-top:.5rem}.fd-timeline .fd-timeline__post-actions button:not(:first-child){margin-left:.5rem}[dir=rtl] .fd-timeline .fd-timeline__post-actions button:not(:first-child),.fd-timeline .fd-timeline__post-actions button:not(:first-child)[dir=rtl]{margin-right:.5rem;margin-left:0}.fd-timeline__post{flex-grow:1}.fd-timeline__post-subheader{display:block}.fd-timeline__post-header-title{margin-right:.3rem}.fd-timeline__node--icon{font-size:1.375rem}.fd-timeline__node--icon [class*=sap-icon]{display:flex;flex-direction:row;justify-content:center}.fd-timeline__node-container{position:absolute;height:1.5rem}.fd-timeline__node-wrapper{display:flex;flex-direction:row;position:relative;box-sizing:border-box;flex-shrink:0}.fd-timeline__list{display:flex;position:relative;flex-grow:1}.fd-timeline__connecting-line{flex-shrink:0}.fd-timeline{display:flex;justify-content:center}.fd-timeline--horizontal{flex-direction:column}.fd-timeline--horizontal .fd-timeline__node-wrapper{width:20rem}.fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper{padding-left:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper[dir=rtl]{padding-right:.25rem;padding-left:0}.fd-timeline--horizontal .fd-timeline__post{margin-right:1.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__post,.fd-timeline--horizontal .fd-timeline__post[dir=rtl]{margin-right:0;margin-left:1.25rem}.fd-timeline--horizontal .fd-timeline__main-line{height:1.5rem;width:100%}.fd-timeline--horizontal .fd-timeline__node-container{height:1.5rem;width:100%;display:flex;align-items:center;left:.5rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__node-container,.fd-timeline--horizontal .fd-timeline__node-container[dir=rtl]{left:auto;right:.5rem}.fd-timeline--horizontal .fd-timeline__icon-wrapper{flex:0;padding-left:.75rem;padding-right:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-right:.75rem;padding-left:0}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-right:0;padding-left:.25rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__icon-wrapper,.fd-timeline--horizontal .fd-timeline__icon-wrapper[dir=rtl]{padding-left:.25rem;padding-right:.75rem}.fd-timeline--horizontal .fd-timeline__list--first{align-items:flex-end}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__node-container{bottom:-1.5rem}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post{margin-bottom:1rem}.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(135deg);left:1rem;bottom:-.4375rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post:after,.fd-timeline--horizontal .fd-timeline__list--first .fd-timeline__post[dir=rtl]:after{left:auto;right:1rem}.fd-timeline--horizontal .fd-timeline__list--second{align-items:flex-start}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__node-container{top:-1.5rem}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post{margin-top:1rem}.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(315deg);left:1rem;top:-.4375rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post:after,.fd-timeline--horizontal .fd-timeline__list--second .fd-timeline__post[dir=rtl]:after{left:auto;right:1rem}.fd-timeline--horizontal .fd-timeline__list--with-offset{padding-left:4.688rem}[dir=rtl] .fd-timeline--horizontal .fd-timeline__list--with-offset,.fd-timeline--horizontal .fd-timeline__list--with-offset[dir=rtl]{padding-right:4.688rem;padding-left:0}.fd-timeline--vertical{max-width:50rem;align-items:stretch}.fd-timeline--vertical .fd-timeline__node-wrapper--icon .fd-timeline__icon-wrapper{padding-top:.25rem}.fd-timeline--vertical .fd-timeline__node-wrapper--icon .fd-timeline__node--icon{margin:0}.fd-timeline--vertical .fd-timeline__post{margin-bottom:1.25rem}.fd-timeline--vertical .fd-timeline__main-line{width:1.5rem;flex:0 0 1.5rem;height:100%}.fd-timeline--vertical .fd-timeline__node-container{height:100%;flex:1 0;width:1.5rem;display:flex;flex-direction:column;align-items:center;top:.5rem}.fd-timeline--vertical .fd-timeline__icon-wrapper{flex:0;padding-top:.75rem;padding-bottom:.25rem}.fd-timeline--vertical .fd-timeline__list{flex-direction:column;flex:1 0 calc(50% - .75rem)}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container{right:-1.5rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__node-container[dir=rtl]{right:auto;left:-1.5rem}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post{margin-right:1rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post[dir=rtl]{margin-right:0;margin-left:1rem}.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(45deg);top:1rem;right:-.4375rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post:after,.fd-timeline--vertical .fd-timeline__list--first .fd-timeline__post[dir=rtl]:after{transform:translate(0) translateY(0) rotate(225deg);right:auto;left:-.4375rem}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container{left:-1.5rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__node-container[dir=rtl]{left:auto;right:-1.5rem}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post{margin-left:1rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post[dir=rtl]{margin-right:1rem;margin-left:0}.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post:after{transform:translate(0) translateY(0) rotate(225deg);top:1rem;left:-.4375rem}[dir=rtl] .fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post:after,.fd-timeline--vertical .fd-timeline__list--second .fd-timeline__post[dir=rtl]:after{transform:translate(0) translateY(0) rotate(45deg);left:auto;right:-.4375rem}.fd-timeline--vertical .fd-timeline__list--with-offset{padding-top:1.5rem}.fd-timeline--vertical .fd-timeline__list--empty{flex:0 0 0}\n"], dependencies: [{ kind: "directive", type: TimelineFirstListOutletDirective, selector: "[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]" }, { kind: "directive", type: TimelineSecondListOutletDirective, selector: "[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]" }, { kind: "directive", type: RepeatDirective, selector: "[fdkRepeat]", inputs: ["fdkRepeat"] }, { kind: "component", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: ["glyph", "glyphFont", "ariaLabel"] }, { kind: "directive", type: TimelineNodeHeaderDirective, selector: "fd-timeline-node-header" }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
171
171
|
}
|
|
172
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TimelineComponent, decorators: [{
|
|
173
173
|
type: Component,
|
|
@@ -193,6 +193,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
193
193
|
type: Input
|
|
194
194
|
}], layout: [{
|
|
195
195
|
type: Input
|
|
196
|
+
}], _loadingTemplate: [{
|
|
197
|
+
type: ViewChild,
|
|
198
|
+
args: ['loadingTemplate']
|
|
196
199
|
}], _firstListOutlet: [{
|
|
197
200
|
type: ViewChild,
|
|
198
201
|
args: [TimelineFirstListOutletDirective, { static: true }]
|
|
@@ -202,8 +205,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
202
205
|
}], _nodeDefs: [{
|
|
203
206
|
type: ContentChildren,
|
|
204
207
|
args: [TimelineNodeDefDirective, { descendants: true }]
|
|
205
|
-
}], _loadingTemplate: [{
|
|
206
|
-
type: ViewChild,
|
|
207
|
-
args: ['loadingTemplate']
|
|
208
208
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUdMLGVBQWUsRUFJZixTQUFTLEVBRVQsV0FBVyxFQUVYLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9HLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUEyQjlGLE1BQU0sT0FB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VyxFQUFFLElBQUksRUFBRTtnQkFjaEUsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUcmFja0J5RnVuY3Rpb24sXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBSZXBlYXREaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9za2VsZXRvbic7XG5pbXBvcnQgeyBUaW1lbGluZU5vZGVIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUtbm9kZS1oZWFkZXIvdGltZWxpbmUtbm9kZS1oZWFkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS1ub2RlL3RpbWVsaW5lLW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVsaW5lRmlyc3RMaXN0T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RpbWVsaW5lLWZpcnN0LWxpc3Qtb3V0bGV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lbGluZU5vZGVEZWZEaXJlY3RpdmUsIFRpbWVsaW5lTm9kZU91dGxldENvbnRleHQgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZWxpbmUtbm9kZS1kZWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lU2Vjb25kTGlzdE91dGxldERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy90aW1lbGluZS1zZWNvbmQtbGlzdC1vdXRsZXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lUG9zaXRpb25Db250cm9sU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGltZWxpbmUtcG9zaXRpb24tY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVMaW5lUG9zaXRpb25TdHJhdGVneSwgVGltZWxpbmVBeGlzLCBUaW1lbGluZVNpZGVQb3NpdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRpbWVsaW5lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2VdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3RpbWVsaW5lJyxcbiAgICAgICAgJ2FyaWFsLWxhYmVsJzogJ3RpbWVsaW5lJyxcbiAgICAgICAgY2xhc3M6ICdmZC10aW1lbGluZScsXG4gICAgICAgICdbY2xhc3MuZmQtdGltZWxpbmUtLWhvcml6b250YWxdJzogJ2F4aXMgPT09IFwiaG9yaXpvbnRhbFwiJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10aW1lbGluZS0tdmVydGljYWxdJzogJ2F4aXMgPT09IFwidmVydGljYWxcIidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUaW1lbGluZUZpcnN0TGlzdE91dGxldERpcmVjdGl2ZSxcbiAgICAgICAgVGltZWxpbmVTZWNvbmRMaXN0T3V0bGV0RGlyZWN0aXZlLFxuICAgICAgICBSZXBlYXREaXJlY3RpdmUsXG4gICAgICAgIFRpbWVsaW5lTm9kZUNvbXBvbmVudCxcbiAgICAgICAgVGltZWxpbmVOb2RlSGVhZGVyRGlyZWN0aXZlLFxuICAgICAgICBTa2VsZXRvbkNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBEYXRhIGFycmF5IHRvIHJlbmRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGF0YVNvdXJjZTogVFtdO1xuXG4gICAgLyoqXG4gICAgICogVHJhY2tpbmcgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGhlIGRpZmZlcmVuY2VzIGluIGRhdGEgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRyYWNrQnk6IFRyYWNrQnlGdW5jdGlvbjxUPjtcblxuICAgIC8qKlxuICAgICAqIEF4aXMgZm9yIHRpbWVsaW5lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBheGlzOiBUaW1lbGluZUF4aXMgPSAndmVydGljYWwnO1xuXG4gICAgLyoqXG4gICAgICogTGF5b3V0IGZvciB0aW1lbGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGF5b3V0OiBUaW1lbGluZVNpZGVQb3NpdGlvbiA9ICdyaWdodCc7XG5cbiAgICAvKiBGaXJzdCBvdXRsZXQgd2l0aGluIHRoZSB0aW1lbGluZSB0ZW1wbGF0ZSB3aGVyZSB0aGUgZGF0YU5vZGVzIHdpbGwgYmUgaW5zZXJ0ZWQuICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFRpbWVsaW5lRmlyc3RMaXN0T3V0bGV0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2ZpcnN0TGlzdE91dGxldDogVGltZWxpbmVGaXJzdExpc3RPdXRsZXREaXJlY3RpdmU7XG5cbiAgICAvKiBTZWNvbmQgb3V0bGV0IHdpdGhpbiB0aGUgdGltZWxpbmUgdGVtcGxhdGUgd2hlcmUgdGhlIGRhdGFOb2RlcyB3aWxsIGJlIGluc2VydGVkLiAqL1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUaW1lbGluZVNlY29uZExpc3RPdXRsZXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfc2Vjb25kTGlzdE91dGxldDogVGltZWxpbmVTZWNvbmRMaXN0T3V0bGV0RGlyZWN0aXZlO1xuXG4gICAgLyoqIFRoZSB0aW1lbGluZSBub2RlIHRlbXBsYXRlIGZvciB0aGUgdGltZWxpbmUgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGltZWxpbmVOb2RlRGVmRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfbm9kZURlZnM6IFF1ZXJ5TGlzdDxUaW1lbGluZU5vZGVEZWZEaXJlY3RpdmU8VD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuU2hvd0ZpcnN0TGlzdCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5TaG93U2Vjb25kTGlzdCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9sb2FkaW5nID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbG9hZGluZ1RlbXBsYXRlJylcbiAgICBfbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBEaWZmZXIgdXNlZCB0byBmaW5kIHRoZSBjaGFuZ2VzIGluIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYXRhRGlmZmVyRm9yRmlyc3RMaXN0OiBJdGVyYWJsZURpZmZlcjxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGF0YURpZmZlckZvclNlY29uZExpc3Q6IEl0ZXJhYmxlRGlmZmVyPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfdGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlOiBUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGF0YURpZmZlckZvckZpcnN0TGlzdCA9IHRoaXMuX2RpZmZlcnMuZmluZChbXSkuY3JlYXRlKHRoaXMudHJhY2tCeSk7XG4gICAgICAgIHRoaXMuX2RhdGFEaWZmZXJGb3JTZWNvbmRMaXN0ID0gdGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGUodGhpcy50cmFja0J5KTtcblxuICAgICAgICB0aGlzLl9jYW5TaG93Rmlyc3RMaXN0ID0gdGhpcy5sYXlvdXQgIT09ICdyaWdodCcgJiYgdGhpcy5sYXlvdXQgIT09ICdib3R0b20nO1xuICAgICAgICB0aGlzLl9jYW5TaG93U2Vjb25kTGlzdCA9IHRoaXMubGF5b3V0ICE9PSAnbGVmdCcgJiYgdGhpcy5sYXlvdXQgIT09ICd0b3AnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2F4aXMnIGluIGNoYW5nZXMgfHwgJ2xheW91dCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fY2FuU2hvd0ZpcnN0TGlzdCA9IHRoaXMubGF5b3V0ICE9PSAncmlnaHQnICYmIHRoaXMubGF5b3V0ICE9PSAnYm90dG9tJztcbiAgICAgICAgICAgIHRoaXMuX2NhblNob3dTZWNvbmRMaXN0ID0gdGhpcy5sYXlvdXQgIT09ICdsZWZ0JyAmJiB0aGlzLmxheW91dCAhPT0gJ3RvcCc7XG4gICAgICAgICAgICB0aGlzLl9zZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgICAgICB0aGlzLnN3aXRjaERhdGFTb3VyY2UodGhpcy5kYXRhU291cmNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2RhdGFTb3VyY2UnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXNbJ2RhdGFTb3VyY2UnXS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjaGFuZ2VzWydkYXRhU291cmNlJ10uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hEYXRhU291cmNlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl90aW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UuY2FsY3VsYXRlUG9zaXRpb25zKCkpO1xuICAgICAgICB0aGlzLl9zZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgIHRoaXMuc3dpdGNoRGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpcnN0TGlzdE91dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHN0YXRlIGJ5IG5ldyBkYXRhIHNvdXJjZVxuICAgICAqIElmIHRoZSBkYXRhIHNvdXJjZSBpcyBudWxsLCBpbnRlcnByZXQgdGhpcyBieSBjbGVhcmluZyB0aGUgbm9kZSBvdXRsZXQuXG4gICAgICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHN3aXRjaERhdGFTb3VyY2UoZGF0YTogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpcnN0TGlzdE91dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLl9maXJzdExpc3RPdXRsZXQudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbG9hZGluZ1RlbXBsYXRlKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lUG9zaXRpb25Db250cm9sU2VydmljZS5jYWxjdWxhdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbm9kZURlZnMpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IHRoaXMuX3NwbGl0TGlzdChkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlck5vZGVDaGFuZ2VzKGZpcnN0LCB0aGlzLl9kYXRhRGlmZmVyRm9yRmlyc3RMaXN0LCB0aGlzLl9maXJzdExpc3RPdXRsZXQ/LnZpZXdDb250YWluZXIpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyTm9kZUNoYW5nZXMoc2Vjb25kLCB0aGlzLl9kYXRhRGlmZmVyRm9yU2Vjb25kTGlzdCwgdGhpcy5fc2Vjb25kTGlzdE91dGxldD8udmlld0NvbnRhaW5lcik7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl90aW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UuY2FsY3VsYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgZm9yIGNoYW5nZXMgbWFkZSBpbiB0aGUgZGF0YSBhbmQgcmVuZGVyIGVhY2ggY2hhbmdlIChub2RlIGFkZGVkL3JlbW92ZWQvbW92ZWQpLiAqL1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVuZGVyTm9kZUNoYW5nZXMoZGF0YTogVFtdLCBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPFQ+LCB2Y3I6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IGRpZmZlci5kaWZmKGRhdGEpO1xuICAgICAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjaGFuZ2VzLmZvckVhY2hPcGVyYXRpb24oXG4gICAgICAgICAgICAoaXRlbTogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8VD4sIGFkanVzdGVkUHJldmlvdXNJbmRleDogbnVtYmVyIHwgbnVsbCwgY3VycmVudEluZGV4OiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCAhPSBudWxsICYmIGl0ZW0ucHJldmlvdXNJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnROb2RlKGRhdGFbY3VycmVudEluZGV4XSwgY3VycmVudEluZGV4LCB2Y3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEluZGV4ID09PSBudWxsICYmIGFkanVzdGVkUHJldmlvdXNJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZjci5yZW1vdmUoYWRqdXN0ZWRQcmV2aW91c0luZGV4KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFkanVzdGVkUHJldmlvdXNJbmRleCAhPSBudWxsICYmIGN1cnJlbnRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB2Y3IuZ2V0KGFkanVzdGVkUHJldmlvdXNJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2Y3IubW92ZSh2aWV3LCBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0UG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlLnNldFN0cmF0ZWd5KGAke3RoaXMuYXhpc30tJHt0aGlzLmxheW91dH1gIGFzIFRpbWVMaW5lUG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHRoZSBlbWJlZGRlZCB2aWV3IGZvciB0aGUgZGF0YSBub2RlIHRlbXBsYXRlIGFuZCBwbGFjZSBpdCBpbiB0aGUgY29ycmVjdCBpbmRleCBsb2NhdGlvblxuICAgICAqIHdpdGhpbiB0aGUgZGF0YSBub2RlIHZpZXcgY29udGFpbmVyLlxuICAgICAqL1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5zZXJ0Tm9kZShub2RlRGF0YTogVCwgaW5kZXg6IG51bWJlciwgdmNyOiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLl9nZXROb2RlRGVmKGluZGV4KTtcblxuICAgICAgICAvLyBOb2RlIGNvbnRleHQgdGhhdCB3aWxsIGJlIHByb3ZpZGVkIHRvIGNyZWF0ZWQgZW1iZWRkZWQgdmlld1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFRpbWVsaW5lTm9kZU91dGxldENvbnRleHQ8VD4obm9kZURhdGEpO1xuXG4gICAgICAgIHZjci5jcmVhdGVFbWJlZGRlZFZpZXcobm9kZS50ZW1wbGF0ZSwgY29udGV4dCwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIHRoZSBtYXRjaGluZyBub2RlIGRlZmluaXRpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhpcyBub2RlIGRhdGEuIElmIHRoZXJlIGlzIG9ubHlcbiAgICAgKiBvbmUgbm9kZSBkZWZpbml0aW9uLCBpdCBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE5vZGVEZWYoaTogbnVtYmVyKTogVGltZWxpbmVOb2RlRGVmRGlyZWN0aXZlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX25vZGVEZWZzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVEZWZzLmZpcnN0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2RlRGVmc1tpXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdCBkYXRhIGxpc3QgdG8gdHdvIGxpc3QgZmlyc3QgYW5kIHNlY29uZCB0byByZXByZXNlbnQgdGltZWxpbmVzIGluIHR3byBsaXN0cy5cbiAgICAgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NwbGl0TGlzdChkYXRhU291cmNlOiBUW10pOiBUW11bXSB7XG4gICAgICAgIGxldCBkYXRhRm9yRmlyc3RMaXN0OiBUW10gPSBbXTtcbiAgICAgICAgbGV0IGRhdGFGb3JTZWNvbmRMaXN0OiBUW10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAnbGVmdCcgfHwgdGhpcy5sYXlvdXQgPT09ICd0b3AnKSB7XG4gICAgICAgICAgICBkYXRhRm9yRmlyc3RMaXN0ID0gWy4uLmRhdGFTb3VyY2VdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGF5b3V0ID09PSAncmlnaHQnIHx8IHRoaXMubGF5b3V0ID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgZGF0YUZvclNlY29uZExpc3QgPSBbLi4uZGF0YVNvdXJjZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhRm9yRmlyc3RMaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUZvclNlY29uZExpc3QucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2RhdGFGb3JGaXJzdExpc3QsIGRhdGFGb3JTZWNvbmRMaXN0XTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2NsYXNzLmZkLXRpbWVsaW5lX19saXN0LS1lbXB0eV09XCIhX2NhblNob3dGaXJzdExpc3QgJiYgIV9sb2FkaW5nXCJcbiAgICBjbGFzcz1cImZkLXRpbWVsaW5lX19saXN0IGZkLXRpbWVsaW5lX19saXN0LS1maXJzdFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBmZFRpbWVsaW5lRmlyc3RMaXN0T3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmQtdGltZWxpbmVfX21haW4tbGluZVwiPjwvZGl2PlxuPGRpdlxuICAgIFtjbGFzcy5mZC10aW1lbGluZV9fbGlzdC0tZW1wdHldPVwiIV9jYW5TaG93U2Vjb25kTGlzdFwiXG4gICAgW2NsYXNzLmZkLXRpbWVsaW5lX19saXN0LS13aXRoLW9mZnNldF09XCJfY2FuU2hvd0ZpcnN0TGlzdFwiXG4gICAgY2xhc3M9XCJmZC10aW1lbGluZV9fbGlzdCBmZC10aW1lbGluZV9fbGlzdC0tc2Vjb25kXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGZkVGltZWxpbmVTZWNvbmRMaXN0T3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RlbXBsYXRlPlxuICAgIDxmZC10aW1lbGluZS1ub2RlICpmZGtSZXBlYXQ9XCIzXCI+XG4gICAgICAgIDxmZC10aW1lbGluZS1ub2RlLWhlYWRlcj5cbiAgICAgICAgICAgIDxmZC1za2VsZXRvbiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIzMnB4XCI+XG4gICAgICAgICAgICAgICAgPHN2ZzpjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMTZcIiByPVwiMTZcIiByeD1cIjRcIj48L3N2ZzpjaXJjbGU+XG4gICAgICAgICAgICAgICAgPHN2ZzpyZWN0IHg9XCIzN1wiIHk9XCIwXCIgd2lkdGg9XCIxMjBcIiBoZWlnaHQ9XCIxMlwiIHJ4PVwiNFwiPjwvc3ZnOnJlY3Q+XG4gICAgICAgICAgICAgICAgPHN2ZzpyZWN0IHg9XCIzN1wiIHk9XCIyMFwiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4XCIgcng9XCI0XCI+PC9zdmc6cmVjdD5cbiAgICAgICAgICAgIDwvZmQtc2tlbGV0b24+XG4gICAgICAgIDwvZmQtdGltZWxpbmUtbm9kZS1oZWFkZXI+XG5cbiAgICAgICAgPGZkLXNrZWxldG9uIHR5cGU9XCJ0ZXh0XCI+PC9mZC1za2VsZXRvbj5cbiAgICA8L2ZkLXRpbWVsaW5lLW5vZGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUdMLGVBQWUsRUFJZixTQUFTLEVBRVQsV0FBVyxFQUVYLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9HLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUEyQjlGLE1BQU0sT0FB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c0JBRGhCLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUcmFja0J5RnVuY3Rpb24sXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBSZXBlYXREaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9za2VsZXRvbic7XG5pbXBvcnQgeyBUaW1lbGluZU5vZGVIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUtbm9kZS1oZWFkZXIvdGltZWxpbmUtbm9kZS1oZWFkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS1ub2RlL3RpbWVsaW5lLW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVsaW5lRmlyc3RMaXN0T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RpbWVsaW5lLWZpcnN0LWxpc3Qtb3V0bGV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lbGluZU5vZGVEZWZEaXJlY3RpdmUsIFRpbWVsaW5lTm9kZU91dGxldENvbnRleHQgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZWxpbmUtbm9kZS1kZWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lU2Vjb25kTGlzdE91dGxldERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy90aW1lbGluZS1zZWNvbmQtbGlzdC1vdXRsZXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVsaW5lUG9zaXRpb25Db250cm9sU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGltZWxpbmUtcG9zaXRpb24tY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVMaW5lUG9zaXRpb25TdHJhdGVneSwgVGltZWxpbmVBeGlzLCBUaW1lbGluZVNpZGVQb3NpdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRpbWVsaW5lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2VdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3RpbWVsaW5lJyxcbiAgICAgICAgJ2FyaWFsLWxhYmVsJzogJ3RpbWVsaW5lJyxcbiAgICAgICAgY2xhc3M6ICdmZC10aW1lbGluZScsXG4gICAgICAgICdbY2xhc3MuZmQtdGltZWxpbmUtLWhvcml6b250YWxdJzogJ2F4aXMgPT09IFwiaG9yaXpvbnRhbFwiJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10aW1lbGluZS0tdmVydGljYWxdJzogJ2F4aXMgPT09IFwidmVydGljYWxcIidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUaW1lbGluZUZpcnN0TGlzdE91dGxldERpcmVjdGl2ZSxcbiAgICAgICAgVGltZWxpbmVTZWNvbmRMaXN0T3V0bGV0RGlyZWN0aXZlLFxuICAgICAgICBSZXBlYXREaXJlY3RpdmUsXG4gICAgICAgIFRpbWVsaW5lTm9kZUNvbXBvbmVudCxcbiAgICAgICAgVGltZWxpbmVOb2RlSGVhZGVyRGlyZWN0aXZlLFxuICAgICAgICBTa2VsZXRvbkNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBEYXRhIGFycmF5IHRvIHJlbmRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGF0YVNvdXJjZTogVFtdO1xuXG4gICAgLyoqXG4gICAgICogVHJhY2tpbmcgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGhlIGRpZmZlcmVuY2VzIGluIGRhdGEgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRyYWNrQnk6IFRyYWNrQnlGdW5jdGlvbjxUPjtcblxuICAgIC8qKlxuICAgICAqIEF4aXMgZm9yIHRpbWVsaW5lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBheGlzOiBUaW1lbGluZUF4aXMgPSAndmVydGljYWwnO1xuXG4gICAgLyoqXG4gICAgICogTGF5b3V0IGZvciB0aW1lbGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGF5b3V0OiBUaW1lbGluZVNpZGVQb3NpdGlvbiA9ICdyaWdodCc7XG5cbiAgICAvKiBGaXJzdCBvdXRsZXQgd2l0aGluIHRoZSB0aW1lbGluZSB0ZW1wbGF0ZSB3aGVyZSB0aGUgZGF0YU5vZGVzIHdpbGwgYmUgaW5zZXJ0ZWQuICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsb2FkaW5nVGVtcGxhdGUnKVxuICAgIF9sb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVGltZWxpbmVGaXJzdExpc3RPdXRsZXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfZmlyc3RMaXN0T3V0bGV0OiBUaW1lbGluZUZpcnN0TGlzdE91dGxldERpcmVjdGl2ZTtcbiAgICAvKiBTZWNvbmQgb3V0bGV0IHdpdGhpbiB0aGUgdGltZWxpbmUgdGVtcGxhdGUgd2hlcmUgdGhlIGRhdGFOb2RlcyB3aWxsIGJlIGluc2VydGVkLiAqL1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFRpbWVsaW5lU2Vjb25kTGlzdE91dGxldERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIF9zZWNvbmRMaXN0T3V0bGV0OiBUaW1lbGluZVNlY29uZExpc3RPdXRsZXREaXJlY3RpdmU7XG4gICAgLyoqIFRoZSB0aW1lbGluZSBub2RlIHRlbXBsYXRlIGZvciB0aGUgdGltZWxpbmUgKi9cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaW1lbGluZU5vZGVEZWZEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwcml2YXRlIF9ub2RlRGVmczogUXVlcnlMaXN0PFRpbWVsaW5lTm9kZURlZkRpcmVjdGl2ZTxUPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5TaG93Rmlyc3RMaXN0ID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhblNob3dTZWNvbmRMaXN0ID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2xvYWRpbmcgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBEaWZmZXIgdXNlZCB0byBmaW5kIHRoZSBjaGFuZ2VzIGluIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYXRhRGlmZmVyRm9yRmlyc3RMaXN0OiBJdGVyYWJsZURpZmZlcjxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGF0YURpZmZlckZvclNlY29uZExpc3Q6IEl0ZXJhYmxlRGlmZmVyPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfdGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlOiBUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGF0YURpZmZlckZvckZpcnN0TGlzdCA9IHRoaXMuX2RpZmZlcnMuZmluZChbXSkuY3JlYXRlKHRoaXMudHJhY2tCeSk7XG4gICAgICAgIHRoaXMuX2RhdGFEaWZmZXJGb3JTZWNvbmRMaXN0ID0gdGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGUodGhpcy50cmFja0J5KTtcblxuICAgICAgICB0aGlzLl9jYW5TaG93Rmlyc3RMaXN0ID0gdGhpcy5sYXlvdXQgIT09ICdyaWdodCcgJiYgdGhpcy5sYXlvdXQgIT09ICdib3R0b20nO1xuICAgICAgICB0aGlzLl9jYW5TaG93U2Vjb25kTGlzdCA9IHRoaXMubGF5b3V0ICE9PSAnbGVmdCcgJiYgdGhpcy5sYXlvdXQgIT09ICd0b3AnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2F4aXMnIGluIGNoYW5nZXMgfHwgJ2xheW91dCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fY2FuU2hvd0ZpcnN0TGlzdCA9IHRoaXMubGF5b3V0ICE9PSAncmlnaHQnICYmIHRoaXMubGF5b3V0ICE9PSAnYm90dG9tJztcbiAgICAgICAgICAgIHRoaXMuX2NhblNob3dTZWNvbmRMaXN0ID0gdGhpcy5sYXlvdXQgIT09ICdsZWZ0JyAmJiB0aGlzLmxheW91dCAhPT0gJ3RvcCc7XG4gICAgICAgICAgICB0aGlzLl9zZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgICAgICB0aGlzLnN3aXRjaERhdGFTb3VyY2UodGhpcy5kYXRhU291cmNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2RhdGFTb3VyY2UnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXNbJ2RhdGFTb3VyY2UnXS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjaGFuZ2VzWydkYXRhU291cmNlJ10uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hEYXRhU291cmNlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl90aW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UuY2FsY3VsYXRlUG9zaXRpb25zKCkpO1xuICAgICAgICB0aGlzLl9zZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgIHRoaXMuc3dpdGNoRGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpcnN0TGlzdE91dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHN0YXRlIGJ5IG5ldyBkYXRhIHNvdXJjZVxuICAgICAqIElmIHRoZSBkYXRhIHNvdXJjZSBpcyBudWxsLCBpbnRlcnByZXQgdGhpcyBieSBjbGVhcmluZyB0aGUgbm9kZSBvdXRsZXQuXG4gICAgICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHN3aXRjaERhdGFTb3VyY2UoZGF0YTogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpcnN0TGlzdE91dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLl9maXJzdExpc3RPdXRsZXQudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbG9hZGluZ1RlbXBsYXRlKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lUG9zaXRpb25Db250cm9sU2VydmljZS5jYWxjdWxhdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbm9kZURlZnMpIHtcbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdCwgc2Vjb25kXSA9IHRoaXMuX3NwbGl0TGlzdChkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlck5vZGVDaGFuZ2VzKGZpcnN0LCB0aGlzLl9kYXRhRGlmZmVyRm9yRmlyc3RMaXN0LCB0aGlzLl9maXJzdExpc3RPdXRsZXQ/LnZpZXdDb250YWluZXIpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyTm9kZUNoYW5nZXMoc2Vjb25kLCB0aGlzLl9kYXRhRGlmZmVyRm9yU2Vjb25kTGlzdCwgdGhpcy5fc2Vjb25kTGlzdE91dGxldD8udmlld0NvbnRhaW5lcik7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl90aW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UuY2FsY3VsYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgZm9yIGNoYW5nZXMgbWFkZSBpbiB0aGUgZGF0YSBhbmQgcmVuZGVyIGVhY2ggY2hhbmdlIChub2RlIGFkZGVkL3JlbW92ZWQvbW92ZWQpLiAqL1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVuZGVyTm9kZUNoYW5nZXMoZGF0YTogVFtdLCBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPFQ+LCB2Y3I6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IGRpZmZlci5kaWZmKGRhdGEpO1xuICAgICAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjaGFuZ2VzLmZvckVhY2hPcGVyYXRpb24oXG4gICAgICAgICAgICAoaXRlbTogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8VD4sIGFkanVzdGVkUHJldmlvdXNJbmRleDogbnVtYmVyIHwgbnVsbCwgY3VycmVudEluZGV4OiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCAhPSBudWxsICYmIGl0ZW0ucHJldmlvdXNJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnROb2RlKGRhdGFbY3VycmVudEluZGV4XSwgY3VycmVudEluZGV4LCB2Y3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEluZGV4ID09PSBudWxsICYmIGFkanVzdGVkUHJldmlvdXNJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZjci5yZW1vdmUoYWRqdXN0ZWRQcmV2aW91c0luZGV4KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFkanVzdGVkUHJldmlvdXNJbmRleCAhPSBudWxsICYmIGN1cnJlbnRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB2Y3IuZ2V0KGFkanVzdGVkUHJldmlvdXNJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2Y3IubW92ZSh2aWV3LCBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0UG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlLnNldFN0cmF0ZWd5KGAke3RoaXMuYXhpc30tJHt0aGlzLmxheW91dH1gIGFzIFRpbWVMaW5lUG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHRoZSBlbWJlZGRlZCB2aWV3IGZvciB0aGUgZGF0YSBub2RlIHRlbXBsYXRlIGFuZCBwbGFjZSBpdCBpbiB0aGUgY29ycmVjdCBpbmRleCBsb2NhdGlvblxuICAgICAqIHdpdGhpbiB0aGUgZGF0YSBub2RlIHZpZXcgY29udGFpbmVyLlxuICAgICAqL1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5zZXJ0Tm9kZShub2RlRGF0YTogVCwgaW5kZXg6IG51bWJlciwgdmNyOiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLl9nZXROb2RlRGVmKGluZGV4KTtcblxuICAgICAgICAvLyBOb2RlIGNvbnRleHQgdGhhdCB3aWxsIGJlIHByb3ZpZGVkIHRvIGNyZWF0ZWQgZW1iZWRkZWQgdmlld1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFRpbWVsaW5lTm9kZU91dGxldENvbnRleHQ8VD4obm9kZURhdGEpO1xuXG4gICAgICAgIHZjci5jcmVhdGVFbWJlZGRlZFZpZXcobm9kZS50ZW1wbGF0ZSwgY29udGV4dCwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIHRoZSBtYXRjaGluZyBub2RlIGRlZmluaXRpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhpcyBub2RlIGRhdGEuIElmIHRoZXJlIGlzIG9ubHlcbiAgICAgKiBvbmUgbm9kZSBkZWZpbml0aW9uLCBpdCBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE5vZGVEZWYoaTogbnVtYmVyKTogVGltZWxpbmVOb2RlRGVmRGlyZWN0aXZlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX25vZGVEZWZzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVEZWZzLmZpcnN0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2RlRGVmc1tpXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdCBkYXRhIGxpc3QgdG8gdHdvIGxpc3QgZmlyc3QgYW5kIHNlY29uZCB0byByZXByZXNlbnQgdGltZWxpbmVzIGluIHR3byBsaXN0cy5cbiAgICAgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NwbGl0TGlzdChkYXRhU291cmNlOiBUW10pOiBUW11bXSB7XG4gICAgICAgIGxldCBkYXRhRm9yRmlyc3RMaXN0OiBUW10gPSBbXTtcbiAgICAgICAgbGV0IGRhdGFGb3JTZWNvbmRMaXN0OiBUW10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAnbGVmdCcgfHwgdGhpcy5sYXlvdXQgPT09ICd0b3AnKSB7XG4gICAgICAgICAgICBkYXRhRm9yRmlyc3RMaXN0ID0gWy4uLmRhdGFTb3VyY2VdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGF5b3V0ID09PSAncmlnaHQnIHx8IHRoaXMubGF5b3V0ID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgZGF0YUZvclNlY29uZExpc3QgPSBbLi4uZGF0YVNvdXJjZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhRm9yRmlyc3RMaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUZvclNlY29uZExpc3QucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2RhdGFGb3JGaXJzdExpc3QsIGRhdGFGb3JTZWNvbmRMaXN0XTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2NsYXNzLmZkLXRpbWVsaW5lX19saXN0LS1lbXB0eV09XCIhX2NhblNob3dGaXJzdExpc3QgJiYgIV9sb2FkaW5nXCJcbiAgICBjbGFzcz1cImZkLXRpbWVsaW5lX19saXN0IGZkLXRpbWVsaW5lX19saXN0LS1maXJzdFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBmZFRpbWVsaW5lRmlyc3RMaXN0T3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmQtdGltZWxpbmVfX21haW4tbGluZVwiPjwvZGl2PlxuPGRpdlxuICAgIFtjbGFzcy5mZC10aW1lbGluZV9fbGlzdC0tZW1wdHldPVwiIV9jYW5TaG93U2Vjb25kTGlzdFwiXG4gICAgW2NsYXNzLmZkLXRpbWVsaW5lX19saXN0LS13aXRoLW9mZnNldF09XCJfY2FuU2hvd0ZpcnN0TGlzdFwiXG4gICAgY2xhc3M9XCJmZC10aW1lbGluZV9fbGlzdCBmZC10aW1lbGluZV9fbGlzdC0tc2Vjb25kXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGZkVGltZWxpbmVTZWNvbmRMaXN0T3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RlbXBsYXRlPlxuICAgIDxmZC10aW1lbGluZS1ub2RlICpmZGtSZXBlYXQ9XCIzXCI+XG4gICAgICAgIDxmZC10aW1lbGluZS1ub2RlLWhlYWRlcj5cbiAgICAgICAgICAgIDxmZC1za2VsZXRvbiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIzMnB4XCI+XG4gICAgICAgICAgICAgICAgPHN2ZzpjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMTZcIiByPVwiMTZcIiByeD1cIjRcIj48L3N2ZzpjaXJjbGU+XG4gICAgICAgICAgICAgICAgPHN2ZzpyZWN0IHg9XCIzN1wiIHk9XCIwXCIgd2lkdGg9XCIxMjBcIiBoZWlnaHQ9XCIxMlwiIHJ4PVwiNFwiPjwvc3ZnOnJlY3Q+XG4gICAgICAgICAgICAgICAgPHN2ZzpyZWN0IHg9XCIzN1wiIHk9XCIyMFwiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4XCIgcng9XCI0XCI+PC9zdmc6cmVjdD5cbiAgICAgICAgICAgIDwvZmQtc2tlbGV0b24+XG4gICAgICAgIDwvZmQtdGltZWxpbmUtbm9kZS1oZWFkZXI+XG5cbiAgICAgICAgPGZkLXNrZWxldG9uIHR5cGU9XCJ0ZXh0XCI+PC9mZC1za2VsZXRvbj5cbiAgICA8L2ZkLXRpbWVsaW5lLW5vZGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|