@elderbyte/ngx-starter 18.11.0 → 18.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +38 -33
- package/esm2022/lib/common/arrays.mjs +1 -1
- package/esm2022/lib/common/async/public_api.mjs +1 -1
- package/esm2022/lib/common/async/refreshing-entity.mjs +5 -3
- package/esm2022/lib/common/csv/csv-serializer.mjs +5 -5
- package/esm2022/lib/common/csv/csv-spec.mjs +2 -2
- package/esm2022/lib/common/csv/public_api.mjs +1 -1
- package/esm2022/lib/common/data/continuable-listing.mjs +1 -1
- package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +5 -4
- package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +7 -5
- package/esm2022/lib/common/data/data-context/data-context-base.mjs +19 -12
- package/esm2022/lib/common/data/data-context/data-context-builder.mjs +5 -7
- package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +5 -7
- package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +2 -2
- package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +17 -7
- package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +2 -2
- package/esm2022/lib/common/data/data-context/data-context-simple.mjs +5 -4
- package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +2 -2
- package/esm2022/lib/common/data/data-context/data-context-status.mjs +1 -1
- package/esm2022/lib/common/data/data-context/data-context.mjs +5 -5
- package/esm2022/lib/common/data/data-context/indexed-entities.mjs +2 -2
- package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +14 -8
- package/esm2022/lib/common/data/data-context/public_api.mjs +1 -1
- package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +9 -5
- package/esm2022/lib/common/data/datasource/data-source-base.mjs +1 -1
- package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +1 -1
- package/esm2022/lib/common/data/datasource/data-source-processor.mjs +14 -15
- package/esm2022/lib/common/data/datasource/data-source.mjs +4 -4
- package/esm2022/lib/common/data/datasource/entity-id-util.mjs +2 -2
- package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +2 -2
- package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +9 -11
- package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +4 -2
- package/esm2022/lib/common/data/datasource/public_api.mjs +1 -1
- package/esm2022/lib/common/data/datasource/rest/public_api.mjs +1 -1
- package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +44 -39
- package/esm2022/lib/common/data/entity-set-patch.mjs +6 -9
- package/esm2022/lib/common/data/field-comparator.mjs +2 -2
- package/esm2022/lib/common/data/filters/filter-commons.mjs +1 -1
- package/esm2022/lib/common/data/filters/filter-context.mjs +9 -9
- package/esm2022/lib/common/data/filters/filter-value.mjs +1 -1
- package/esm2022/lib/common/data/filters/filter.mjs +2 -2
- package/esm2022/lib/common/data/http-params-builder.mjs +5 -7
- package/esm2022/lib/common/data/page.mjs +1 -1
- package/esm2022/lib/common/data/public_api.mjs +1 -1
- package/esm2022/lib/common/data/required-filter-evaluator.mjs +7 -10
- package/esm2022/lib/common/data/sort-context.mjs +4 -6
- package/esm2022/lib/common/data/sort.mjs +1 -1
- package/esm2022/lib/common/data/token-chunk-request.mjs +1 -1
- package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +9 -9
- package/esm2022/lib/common/enums/public_api.mjs +1 -1
- package/esm2022/lib/common/errors/exception-detail.mjs +1 -1
- package/esm2022/lib/common/errors/public_api.mjs +1 -1
- package/esm2022/lib/common/errors/standard-error-detail.mjs +1 -1
- package/esm2022/lib/common/format/bytes-format.mjs +2 -9
- package/esm2022/lib/common/format/bytes-per-second-format.mjs +1 -1
- package/esm2022/lib/common/format/curency-format-util.mjs +1 -1
- package/esm2022/lib/common/format/duration-format-util.mjs +1 -1
- package/esm2022/lib/common/format/iso-interval-format-util.mjs +6 -4
- package/esm2022/lib/common/format/public_api.mjs +1 -1
- package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +7 -7
- package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +7 -7
- package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
- package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +1 -1
- package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +5 -5
- package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +7 -7
- package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +7 -7
- package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -4
- package/esm2022/lib/common/forms/multi-model-base.component.mjs +2 -2
- package/esm2022/lib/common/forms/public_api.mjs +1 -1
- package/esm2022/lib/common/forms/template-composite-control.mjs +17 -13
- package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
- package/esm2022/lib/common/forms/view-providers.mjs +1 -1
- package/esm2022/lib/common/http/http-client-builder.service.mjs +2 -2
- package/esm2022/lib/common/http/http-client-pristine.mjs +2 -2
- package/esm2022/lib/common/http/public_api.mjs +1 -1
- package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +2 -2
- package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
- package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +6 -5
- package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +1 -1
- package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +1 -1
- package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +1 -1
- package/esm2022/lib/common/http/transfer/data-transfer.mjs +1 -1
- package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +9 -9
- package/esm2022/lib/common/http/transfer/public_api.mjs +1 -1
- package/esm2022/lib/common/http/upload/file-upload-client.mjs +2 -2
- package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/impl/translated.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/language-tag.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/locale.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +4 -4
- package/esm2022/lib/common/i18n/entity/localized.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/public_api.mjs +1 -1
- package/esm2022/lib/common/i18n/entity/translated-converter.mjs +4 -4
- package/esm2022/lib/common/i18n/entity/translated.mjs +1 -1
- package/esm2022/lib/common/i18n/public_api.mjs +1 -1
- package/esm2022/lib/common/json-map.mjs +3 -4
- package/esm2022/lib/common/objects.mjs +1 -1
- package/esm2022/lib/common/public_api.mjs +1 -1
- package/esm2022/lib/common/reactive-map.mjs +5 -5
- package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +2 -2
- package/esm2022/lib/common/rxjs/public_api.mjs +1 -1
- package/esm2022/lib/common/selection/public_api.mjs +1 -1
- package/esm2022/lib/common/selection/selection-model.mjs +8 -8
- package/esm2022/lib/common/sets.mjs +3 -2
- package/esm2022/lib/common/suggestion-provider.mjs +1 -1
- package/esm2022/lib/common/templates/template-slot-manager.mjs +2 -2
- package/esm2022/lib/common/theme-sizes.mjs +1 -1
- package/esm2022/lib/common/time/date-util.mjs +8 -10
- package/esm2022/lib/common/time/interval-coerce.mjs +3 -3
- package/esm2022/lib/common/time/interval.mjs +19 -16
- package/esm2022/lib/common/time/period-duration.mjs +1 -1
- package/esm2022/lib/common/time/public_api.mjs +1 -1
- package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +1 -1
- package/esm2022/lib/common/time/temporal-util.mjs +1 -1
- package/esm2022/lib/common/time/time-util.mjs +3 -6
- package/esm2022/lib/common/url/elder-router.service.mjs +2 -2
- package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -6
- package/esm2022/lib/common/url/public_api.mjs +1 -1
- package/esm2022/lib/common/url/url-query-params.mjs +2 -2
- package/esm2022/lib/common/utils/batcher.mjs +2 -2
- package/esm2022/lib/common/utils/collection-util.mjs +7 -5
- package/esm2022/lib/common/utils/filter-util.mjs +10 -8
- package/esm2022/lib/common/utils/focus-util.mjs +1 -1
- package/esm2022/lib/common/utils/input-utils.mjs +1 -1
- package/esm2022/lib/common/utils/next-number-util.mjs +4 -3
- package/esm2022/lib/common/utils/ng-zone-utils.mjs +2 -2
- package/esm2022/lib/common/utils/parse-util.mjs +1 -1
- package/esm2022/lib/common/utils/property-path-util.mjs +2 -2
- package/esm2022/lib/common/utils/public_api.mjs +1 -1
- package/esm2022/lib/common/utils/query-list-binding.mjs +5 -4
- package/esm2022/lib/common/utils/sort-util.mjs +2 -2
- package/esm2022/lib/common/utils/url-builder.mjs +1 -1
- package/esm2022/lib/common/utils/uuid-util.mjs +3 -4
- package/esm2022/lib/common/utils/value-wrapper.mjs +1 -1
- package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -5
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -15
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +16 -6
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -6
- package/esm2022/lib/components/auditing/i-audited-entity.mjs +1 -1
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +18 -12
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +7 -7
- package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -5
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -20
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -5
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +2 -2
- package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +7 -7
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +24 -12
- package/esm2022/lib/components/card-organizer/card-stack.mjs +3 -3
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +18 -7
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +9 -9
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +16 -10
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
- package/esm2022/lib/components/chips/elder-chips.module.mjs +3 -5
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +9 -8
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +10 -12
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
- package/esm2022/lib/components/connectivity/public_api.mjs +1 -1
- package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -10
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
- package/esm2022/lib/components/containers/public_api.mjs +1 -1
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +6 -6
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +2 -4
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +2 -2
- package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +12 -12
- package/esm2022/lib/components/csv/elder-csv.module.mjs +6 -19
- package/esm2022/lib/components/currency/elder-currency.module.mjs +6 -18
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +2 -2
- package/esm2022/lib/components/currency/model/currency-code.mjs +1 -1
- package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +1 -1
- package/esm2022/lib/components/currency/model/currency-unit.mjs +1 -1
- package/esm2022/lib/components/currency/model/currency.mjs +1 -1
- package/esm2022/lib/components/currency/public_api.mjs +1 -1
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +28 -16
- package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +12 -10
- package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +23 -12
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +13 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +11 -3
- package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +4 -2
- package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -5
- package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +1 -1
- package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +1 -1
- package/esm2022/lib/components/data-view/base/elder-data-view.mjs +1 -1
- package/esm2022/lib/components/data-view/base/public_api.mjs +1 -1
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +2 -2
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +5 -7
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +4 -5
- package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +6 -6
- package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -5
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +38 -20
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +5 -13
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +16 -6
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +6 -4
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -5
- package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +1 -1
- package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +1 -1
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +46 -26
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +30 -21
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +15 -9
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +5 -7
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +8 -6
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +2 -2
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +19 -25
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +5 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +2 -2
- package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +1 -1
- package/esm2022/lib/components/data-view/public_api.mjs +1 -1
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -5
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +41 -16
- package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +1 -1
- package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +1 -1
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +6 -6
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +1 -1
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +23 -15
- package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +1 -1
- package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +1 -1
- package/esm2022/lib/components/data-view/table/activation/public_api.mjs +1 -1
- package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +4 -5
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +8 -7
- package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +2 -2
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +54 -38
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +2 -2
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +6 -11
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -8
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +8 -6
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +2 -2
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +57 -25
- package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +7 -7
- package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +15 -11
- package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +4 -4
- package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +11 -9
- package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +7 -5
- package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +13 -3
- package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +1 -1
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +34 -13
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +19 -22
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +17 -5
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -5
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +5 -5
- package/esm2022/lib/components/errors/elder-error.module.mjs +4 -6
- package/esm2022/lib/components/errors/error-util.mjs +4 -4
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +17 -6
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +15 -8
- package/esm2022/lib/components/files/blob-url.mjs +1 -1
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +16 -11
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
- package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
- package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +7 -7
- package/esm2022/lib/components/files/elder-file-select-input.mjs +3 -3
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +14 -16
- package/esm2022/lib/components/files/elder-file.module.mjs +16 -10
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +5 -6
- package/esm2022/lib/components/files/file-system-api.mjs +2 -2
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +16 -3
- package/esm2022/lib/components/files/listing/file-entry.mjs +3 -3
- package/esm2022/lib/components/files/listing/file-listing-rx.mjs +5 -5
- package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +3 -3
- package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +10 -11
- package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +2 -2
- package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +1 -1
- package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +5 -3
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +1 -1
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -6
- package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +5 -5
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +6 -6
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +13 -10
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +2 -2
- package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +5 -3
- package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +2 -2
- package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +2 -2
- package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +1 -1
- package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -6
- package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +1 -1
- package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -9
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -9
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +12 -11
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
- package/esm2022/lib/components/forms/elder-forms.module.mjs +1 -1
- package/esm2022/lib/components/forms/public_api.mjs +1 -1
- package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +7 -3
- package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +2 -2
- package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +1 -1
- package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +2 -2
- package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
- package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +1 -1
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +14 -8
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +15 -12
- package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +3 -3
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +30 -25
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +14 -19
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +24 -13
- package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +2 -4
- package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +1 -1
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +27 -8
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +19 -10
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +24 -6
- package/esm2022/lib/components/global-search/elder-global-search.service.mjs +8 -6
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +6 -6
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -10
- package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +1 -1
- package/esm2022/lib/components/graph/public_api.mjs +1 -1
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
- package/esm2022/lib/components/headers/elder-header.module.mjs +12 -14
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -9
- package/esm2022/lib/components/http-support/public_api.mjs +1 -1
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +31 -20
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +14 -5
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +42 -19
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +2 -2
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -5
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +2 -2
- package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +6 -6
- package/esm2022/lib/components/i18n/language/elder-language-config.mjs +1 -1
- package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +8 -7
- package/esm2022/lib/components/i18n/language/elder-language.module.mjs +11 -10
- package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -4
- package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +17 -5
- package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +7 -7
- package/esm2022/lib/components/i18n/public_api.mjs +1 -1
- package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +13 -13
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +13 -11
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +2 -3
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +12 -4
- package/esm2022/lib/components/iframes/iframe-messages.mjs +1 -1
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +11 -9
- package/esm2022/lib/components/iframes/iframe.service.mjs +7 -5
- package/esm2022/lib/components/iframes/typed-event-message.mjs +1 -1
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +10 -6
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +12 -7
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -10
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +26 -17
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +11 -7
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +8 -6
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +9 -6
- package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +1 -1
- package/esm2022/lib/components/input/public_api.mjs +1 -1
- package/esm2022/lib/components/labels/elder-labels.module.mjs +26 -8
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +28 -11
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +22 -21
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +2 -2
- package/esm2022/lib/components/measures/elder-measures.module.mjs +7 -19
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +2 -2
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +2 -2
- package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -6
- package/esm2022/lib/components/measures/model/dimensions.mjs +1 -1
- package/esm2022/lib/components/measures/model/quantity.mjs +1 -1
- package/esm2022/lib/components/measures/model/unit-dimension.mjs +1 -1
- package/esm2022/lib/components/measures/model/unit-registry.mjs +1 -1
- package/esm2022/lib/components/measures/model/unit.mjs +1 -1
- package/esm2022/lib/components/measures/public_api.mjs +1 -1
- package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +13 -3
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +18 -16
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -8
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -8
- package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +15 -10
- package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +26 -6
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +12 -8
- package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +1 -1
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +26 -20
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +15 -21
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +20 -7
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
- package/esm2022/lib/components/navigation/public_api.mjs +1 -1
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +2 -2
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +26 -20
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +2 -2
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +12 -7
- package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +1 -1
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -5
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +5 -4
- package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +2 -2
- package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +1 -1
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +23 -14
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -10
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +5 -12
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +6 -6
- package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +3 -5
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -8
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +3 -7
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
- package/esm2022/lib/components/panels/elder-panel.module.mjs +10 -7
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +2 -2
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +6 -6
- package/esm2022/lib/components/public_api.mjs +1 -1
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +2 -2
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +2 -2
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +5 -8
- package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +1 -1
- package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +7 -9
- package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +7 -4
- package/esm2022/lib/components/select/elder-select-base.mjs +12 -13
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +4 -4
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +10 -5
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +2 -2
- package/esm2022/lib/components/select/elder-select.module.mjs +65 -29
- package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +9 -9
- package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +19 -15
- package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
- package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +6 -8
- package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +7 -11
- package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +2 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +29 -27
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +12 -10
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +40 -29
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +41 -21
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +2 -2
- package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +7 -8
- package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +8 -10
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +7 -5
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +13 -13
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +15 -5
- package/esm2022/lib/components/select/public_api.mjs +1 -1
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +5 -3
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +39 -29
- package/esm2022/lib/components/select/single/elder-select-form-field.mjs +1 -1
- package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +11 -12
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +3 -5
- package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +8 -4
- package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +6 -4
- package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +7 -7
- package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +2 -2
- package/esm2022/lib/components/shell/elder-shell.module.mjs +10 -7
- package/esm2022/lib/components/shell/elder-shell.service.mjs +6 -9
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +6 -6
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +34 -14
- package/esm2022/lib/components/shell/shell-content-slot.mjs +1 -1
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +5 -5
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +2 -2
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +12 -12
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -14
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +5 -6
- package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -4
- package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +6 -7
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +5 -3
- package/esm2022/lib/components/theme/elder-theme.module.mjs +9 -15
- package/esm2022/lib/components/theme/elder-theme.service.mjs +7 -9
- package/esm2022/lib/components/theme/known-elder-themes.mjs +1 -1
- package/esm2022/lib/components/theme/public_api.mjs +1 -1
- package/esm2022/lib/components/theme/theme-spec.mjs +3 -7
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +1 -1
- package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +2 -2
- package/esm2022/lib/components/time/duration/duration-bucket.mjs +3 -2
- package/esm2022/lib/components/time/duration/duration-format.mjs +1 -1
- package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +6 -12
- package/esm2022/lib/components/time/duration/iso-duration-str.mjs +1 -1
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +13 -7
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +7 -13
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +27 -27
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-binding.directive.mjs +1 -1
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.mjs +7 -14
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +5 -11
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.service.mjs +4 -9
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +22 -13
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +7 -13
- package/esm2022/lib/components/time/elder-time.module.mjs +29 -21
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +6 -12
- package/esm2022/lib/components/time/period/period-bucket.mjs +1 -1
- package/esm2022/lib/components/time/period/period-format.mjs +1 -1
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +2 -2
- package/esm2022/lib/components/time/public_api.mjs +1 -1
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +18 -4
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +9 -10
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +21 -14
- package/esm2022/lib/components/toasts/toast-type.mjs +1 -1
- package/esm2022/lib/components/toasts/toast.mjs +1 -1
- package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +1 -1
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +3 -5
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +16 -5
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -4
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -10
- package/esm2022/lib/features/event-source/fetch/public_api.mjs +1 -1
- package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +14 -14
- package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +2 -2
- package/esm2022/lib/features/event-source/public_api.mjs +1 -1
- package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +2 -2
- package/esm2022/lib/features/event-source/standard/public_api.mjs +1 -1
- package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +8 -7
- package/esm2022/lib/features/kafent/access-token-provider.mjs +1 -1
- package/esm2022/lib/features/kafent/kafent-config.mjs +1 -1
- package/esm2022/lib/features/kafent/kafent-event-stream.mjs +1 -1
- package/esm2022/lib/features/kafent/kafent-event.mjs +1 -1
- package/esm2022/lib/features/kafent/kafent-event.service.mjs +16 -8
- package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +1 -1
- package/esm2022/lib/features/kafent/kafent.module.mjs +10 -13
- package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +12 -9
- package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +2 -3
- package/esm2022/lib/features/public_api.mjs +1 -1
- package/esm2022/lib/pipes/bytes.pipe.mjs +2 -2
- package/esm2022/lib/pipes/elder-pipes.module.mjs +52 -8
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +2 -2
- package/esm2022/lib/pipes/elder-round.pipe.mjs +2 -2
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +2 -2
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +2 -2
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -5
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +2 -2
- package/esm2022/lib/pipes/public_api.mjs +1 -1
- package/esm2022/lib/pipes/time-ago.pipe.mjs +12 -7
- package/esm2022/lib/pipes/time-duration.pipe.mjs +6 -4
- package/esm2022/lib/pipes/weight.pipe.mjs +4 -3
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/elderbyte-ngx-starter.mjs +2928 -2310
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/arrays.d.ts +1 -1
- package/lib/common/data/data-context/data-context-active-page.d.ts +1 -1
- package/lib/common/data/data-context/data-context-base.d.ts +1 -1
- package/lib/common/data/data-context/data-context-builder.d.ts +2 -2
- package/lib/common/data/data-context/data-context-continuable-base.d.ts +1 -1
- package/lib/common/data/data-context/data-context-continuable-paged.d.ts +1 -1
- package/lib/common/data/data-context/data-context-continuable-token.d.ts +1 -1
- package/lib/common/data/data-context/data-context-simple.d.ts +1 -1
- package/lib/common/data/datasource/local/local-list-data-source.d.ts +3 -3
- package/lib/common/data/datasource/local/local-paged-data-source.d.ts +1 -1
- package/lib/common/json-map.d.ts +1 -1
- package/lib/common/selection/selection-model.d.ts +2 -2
- package/lib/common/time/interval.d.ts +4 -4
- package/lib/common/utils/collection-util.d.ts +1 -1
- package/lib/components/card-organizer/card-organizer-data.d.ts +3 -3
- package/lib/components/card-organizer/card-stack.d.ts +2 -2
- package/lib/components/data-view/base/elder-data-view-options-provider.d.ts +1 -1
- package/lib/components/data-view/common/elder-data-common.module.d.ts +1 -1
- package/lib/components/data-view/elder-data-view-interaction-mode.d.ts +2 -2
- package/lib/components/data-view/grid/elder-grid.module.d.ts +1 -1
- package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
- package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar-column-position.d.ts +3 -3
- package/lib/components/select/elder-select.module.d.ts +1 -1
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +4 -4
- package/package.json +1 -1
- package/src/assets/i18n/de.json +0 -1
- package/src/assets/i18n/en.json +0 -1
- package/src/lib/components/access-denied/elder-access-denied.component.scss +1 -5
- package/src/lib/components/auditing/audited-entity/elder-audited-entity.component.scss +0 -1
- package/src/lib/components/badge/elder-badge/elder-badge.component.scss +2 -7
- package/src/lib/components/card-organizer/card-organizer/elder-card-organizer.component.scss +0 -1
- package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +4 -14
- package/src/lib/components/cards/elder-card/elder-card.component.scss +3 -9
- package/src/lib/components/chips/_elder-chip-theme.scss +5 -9
- package/src/lib/components/containers/elder-scroll-container/elder-scroll-container.component.scss +0 -1
- package/src/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.scss +0 -1
- package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +0 -1
- package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +4 -5
- package/src/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.scss +1 -1
- package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +21 -13
- package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +12 -21
- package/src/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.scss +2 -3
- package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -4
- package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +0 -4
- package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +2 -4
- package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +2 -7
- package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +0 -2
- package/src/lib/components/global-search/elder-global-search.component.scss +1 -2
- package/src/lib/components/graph/elder-progress-bar/elder-progress-bar.component.scss +0 -1
- package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +0 -1
- package/src/lib/components/labels/labels-input/labels-input.component.scss +0 -2
- package/src/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.scss +0 -2
- package/src/lib/components/navigation/nav/_elder-nav-theme.scss +4 -8
- package/src/lib/components/navigation/nav/nav-group/elder-nav-group.component.scss +6 -6
- package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +0 -1
- package/src/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.scss +1 -2
- package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +0 -3
- package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +0 -1
- package/src/lib/components/panels/flat/_elder-panel-theme.scss +0 -2
- package/src/lib/components/panels/flat/elder-panel.component.scss +1 -2
- package/src/lib/components/select/_elder-select-base.scss +0 -1
- package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +7 -7
- package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +3 -4
- package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +7 -7
- package/src/lib/components/select/single/elder-select/elder-select.component.scss +1 -1
- package/src/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.scss +2 -3
- package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +1 -2
- package/src/lib/components/shell/shell/elder-shell.component.scss +0 -1
- package/src/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.scss +1 -2
- package/src/lib/components/time/_elder-time-input.theme.scss +2 -2
- package/src/lib/components/time/duration/elder-duration-input/elder-duration-input.component.scss +0 -4
- package/src/lib/components/time/elder-date-time-input/elder-date-time-input.component.scss +1 -3
- package/src/lib/components/time/elder-interval-input/elder-interval-input.component.scss +0 -1
- package/src/lib/components/time/elder-local-date-input/elder-local-date-input.component.scss +2 -5
- package/src/lib/components/time/period/elder-period-input/elder-period-input.component.scss +0 -4
- package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +0 -1
- package/src/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.scss +0 -5
- package/src/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.scss +0 -1
- package/theming/_elder-common.scss +10 -11
- package/theming/_elder-defaults.scss +2 -4
- package/theming/_elder-flex-layout.scss +7 -8
- package/theming/_elder-mdc-support.scss +22 -19
- package/theming/_elder-palettes.scss +28 -25
- package/theming/_elder-scrollbar-theme.scss +0 -2
- package/theming/_elder-style-fixes.scss +10 -7
- package/theming/_elder-theme.scss +6 -1
- package/theming/_elder-toast-theme.scss +0 -2
- package/theming/_mat-icon-button-size.scss +3 -2
- package/theming/_mixins.scss +11 -9
|
@@ -51,16 +51,23 @@ export class DataContextBase extends DataSource {
|
|
|
51
51
|
this._reloadQueue = new Subject();
|
|
52
52
|
this._reloaded = new Subject();
|
|
53
53
|
this.destroy$ = new Subject();
|
|
54
|
-
this.id = 'DataContext#' +
|
|
54
|
+
this.id = 'DataContext#' + ++DataContextBase.DC_ID_COUNTER;
|
|
55
55
|
this._dataSource = dataSource;
|
|
56
|
-
this._data = new IndexedEntities(e => dataSource.getId(e), _localSort, this._sort);
|
|
57
|
-
this._loading = this._status.pipe(map(status => status.loading));
|
|
58
|
-
this._filter.filters
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
this._data = new IndexedEntities((e) => dataSource.getId(e), _localSort, this._sort);
|
|
57
|
+
this._loading = this._status.pipe(map((status) => status.loading));
|
|
58
|
+
this._filter.filters
|
|
59
|
+
.pipe(filter(() => this.started), takeUntil(this.destroy$))
|
|
60
|
+
.subscribe((filters) => this.onFiltersChanged(filters));
|
|
61
|
+
this._sort.sorts
|
|
62
|
+
.pipe(filter(() => this.started), takeUntil(this.destroy$))
|
|
63
|
+
.subscribe((sorts) => this.onSortsChanged(sorts));
|
|
64
|
+
this._reloadQueue
|
|
65
|
+
.pipe(takeUntil(this.destroy$), filter((request) => this.started), debounceTime(50), switchMap((request) => this.reloadNow(request).pipe(map((result) => new AfterReload(request, result)), catchError((err) => {
|
|
66
|
+
// Dont die on errors
|
|
61
67
|
this.baselog.error(this.id + ': Reload queue detected error, bad!', err);
|
|
62
68
|
return of(new AfterReload(request, err));
|
|
63
|
-
}))))
|
|
69
|
+
}))))
|
|
70
|
+
.subscribe((afterReload) => this._reloaded.next(afterReload));
|
|
64
71
|
}
|
|
65
72
|
/***************************************************************************
|
|
66
73
|
* *
|
|
@@ -147,7 +154,7 @@ export class DataContextBase extends DataSource {
|
|
|
147
154
|
this.baselog.debug(this.id + ': Start ...', {
|
|
148
155
|
dataSource: this.dataSource,
|
|
149
156
|
sort: this._sort.sortsSnapshot,
|
|
150
|
-
filter: this._filter.filtersSnapshot
|
|
157
|
+
filter: this._filter.filtersSnapshot,
|
|
151
158
|
});
|
|
152
159
|
this.started = true;
|
|
153
160
|
return this.reload('START');
|
|
@@ -156,7 +163,7 @@ export class DataContextBase extends DataSource {
|
|
|
156
163
|
const request = new ReloadRequest(++this._reloadCounter, reason);
|
|
157
164
|
this.baselog.debug(this.id + ': Enqueuing reload request #' + request.number + ' [' + reason + ']');
|
|
158
165
|
this._reloadQueue.next(request);
|
|
159
|
-
return this._reloaded.pipe(filter(reload => reload.fulfills(request)), map(reload => reload.result));
|
|
166
|
+
return this._reloaded.pipe(filter((reload) => reload.fulfills(request)), map((reload) => reload.result));
|
|
160
167
|
}
|
|
161
168
|
findByIndex(key) {
|
|
162
169
|
if (!this._indexFn) {
|
|
@@ -197,7 +204,7 @@ export class DataContextBase extends DataSource {
|
|
|
197
204
|
filter: this._filter.filtersSnapshot,
|
|
198
205
|
sort: this._sort.sortsSnapshot,
|
|
199
206
|
dataSource: this.dataSource,
|
|
200
|
-
request: request
|
|
207
|
+
request: request,
|
|
201
208
|
});
|
|
202
209
|
return this.reloadInternal(); // TODO This should actually return the real (http) request
|
|
203
210
|
}
|
|
@@ -274,7 +281,7 @@ export class DataContextBase extends DataSource {
|
|
|
274
281
|
*/
|
|
275
282
|
indexAll(items) {
|
|
276
283
|
if (this._indexFn) {
|
|
277
|
-
items.forEach(item => this.indexItem(item));
|
|
284
|
+
items.forEach((item) => this.indexItem(item));
|
|
278
285
|
}
|
|
279
286
|
}
|
|
280
287
|
getItemKey(item) {
|
|
@@ -329,4 +336,4 @@ export class DataContextBase extends DataSource {
|
|
|
329
336
|
this._customIndex.clear();
|
|
330
337
|
}
|
|
331
338
|
}
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sYUFBYTtJQUVqQixZQUNrQixNQUFjLEVBQ2QsTUFBZTtRQURmLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQzlCLENBQUM7Q0FDTDtBQUVELE1BQU0sV0FBVztJQUNmLFlBQ2tCLE9BQXNCLEVBQ3RCLE1BQVc7UUFEWCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQUs7SUFDMUIsQ0FBQztJQUVHLFFBQVEsQ0FBQyxVQUF5QjtR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QUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCLENBQUMsT0FBaUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxPQUFPLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFUyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2dnZXIsIExvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7SW5kZXhlZEVudGl0aWVzfSBmcm9tICcuL2luZGV4ZWQtZW50aXRpZXMnO1xuXG5jbGFzcyBSZWxvYWRSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbnVtYmVyOiBudW1iZXIsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlYXNvbj86IHN0cmluZ1xuICApIHt9XG59XG5cbmNsYXNzIEFmdGVyUmVsb2FkIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHJlcXVlc3Q6IFJlbG9hZFJlcXVlc3QsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlc3VsdDogYW55XG4gICkge31cblxuICBwdWJsaWMgZnVsZmlsbHMobWluUmVxdWVzdDogUmVsb2FkUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QubnVtYmVyID49IG1pblJlcXVlc3QubnVtYmVyO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhQ29udGV4dEJhc2U8VCwgVElkID0gYW55PiBleHRlbmRzIERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIERDX0lEX0NPVU5URVIgPSAwO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlbG9nOiBMb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignRGF0YUNvbnRleHRCYXNlJyk7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoaXMgRGF0YUNvbnRleHRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlciA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnQgPSBuZXcgU29ydENvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGE6IEluZGV4ZWRFbnRpdGllczxULCBUSWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFDb250ZXh0U3RhdHVzPihEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tSW5kZXggPSBuZXcgTWFwPGFueSwgVD4oKTtcblxuICBwcml2YXRlIF9yZWxvYWRDb3VudGVyID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDxSZWxvYWRSZXF1ZXN0PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWxvYWRlZCA9IG5ldyBTdWJqZWN0PEFmdGVyUmVsb2FkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+LFxuICAgIHByaXZhdGUgX2luZGV4Rm46ICgoaXRlbTogVCkgPT4gYW55KSxcbiAgICBwcml2YXRlIF9sb2NhbEFwcGx5OiAoKGRhdGE6IFRbXSkgPT4gVFtdKSxcbiAgICBwcml2YXRlIF9sb2NhbFNvcnQ6ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSAnRGF0YUNvbnRleHQjJyArICgrK0RhdGFDb250ZXh0QmFzZS5EQ19JRF9DT1VOVEVSKTtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLl9kYXRhID0gbmV3IEluZGV4ZWRFbnRpdGllcyhlID0+IGRhdGFTb3VyY2UuZ2V0SWQoZSksIF9sb2NhbFNvcnQsIHRoaXMuX3NvcnQpO1xuXG4gICAgdGhpcy5fbG9hZGluZyA9IHRoaXMuX3N0YXR1cy5waXBlKFxuICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMubG9hZGluZylcbiAgICApO1xuXG4gICAgdGhpcy5fZmlsdGVyLmZpbHRlcnMucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBmaWx0ZXJzID0+IHRoaXMub25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzKVxuICAgICk7XG5cbiAgICB0aGlzLl9zb3J0LnNvcnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgc29ydHMgPT4gdGhpcy5vblNvcnRzQ2hhbmdlZChzb3J0cylcbiAgICApO1xuXG4gICAgdGhpcy5fcmVsb2FkUXVldWUucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIGZpbHRlcihyZXF1ZXN0ID0+IHRoaXMuc3RhcnRlZCksXG4gICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgc3dpdGNoTWFwKFxuICAgICAgICByZXF1ZXN0ID0+IHRoaXMucmVsb2FkTm93KHJlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdCA9PiBuZXcgQWZ0ZXJSZWxvYWQocmVxdWVzdCwgcmVzdWx0KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4geyAgLy8gRG9udCBkaWUgb24gZXJyb3JzXG4gICAgICAgICAgICB0aGlzLmJhc2Vsb2cuZXJyb3IodGhpcy5pZCArICc6IFJlbG9hZCBxdWV1ZSBkZXRlY3RlZCBlcnJvciwgYmFkIScsIGVycik7XG4gICAgICAgICAgICByZXR1cm4gb2YobmV3IEFmdGVyUmVsb2FkKHJlcXVlc3QsIGVycikpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICApXG4gICAgKS5zdWJzY3JpYmUoYWZ0ZXJSZWxvYWQgPT4gdGhpcy5fcmVsb2FkZWQubmV4dChhZnRlclJlbG9hZCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgTWF0ZXJpYWwgREMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmNsb3NlKCk7IENsb3Npbmcgd2lsbCBkZXN0cm95IHRoZSBEQ1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IElEYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc25hcHNob3QoKTogRGF0YUNvbnRleHRTbmFwc2hvdDxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dFNuYXBzaG90KFxuICAgICAgdGhpcy5kYXRhU25hcHNob3QsXG4gICAgICB0aGlzLmlzRW1wdHksXG4gICAgICB0aGlzLmxvYWRpbmdTbmFwc2hvdCxcbiAgICAgIHRoaXMudG90YWxTbmFwc2hvdCxcbiAgICAgIHRoaXMuc3RhdHVzU25hcHNob3RcbiAgICApO1xuICB9XG5cblxuICBwdWJsaWMgZ2V0IHRvdGFsKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB0b3RhbFNuYXBzaG90KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnQoKTogU29ydENvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9zb3J0O1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXIoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZ1NuYXBzaG90KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NuYXBzaG90Py5sb2FkaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZW50aXRpZXMkO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU25hcHNob3QoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5lbnRpdGllc1NuYXBzaG90O1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXMoKTogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1c1NuYXBzaG90KCk6IERhdGFDb250ZXh0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNuYXBzaG90Lmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdGFydGVkKHN0YXJ0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGFydGVkLm5leHQoc3RhcnRlZCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuaWQgKyAnOiBSZXN0YXJ0aW5nIGEgY2xvc2VkIERhdGFDb250ZXh0IGlzIG5vdCBwb3NzaWJsZSEnKTsgLy8gU2VlIHVuc3Vic2NyaWJlJFxuICAgIH1cblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc29ydC5yZXBsYWNlU29ydHMoc29ydHMgfHwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuICAgIHRoaXMuX2ZpbHRlci5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzIHx8IHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdCk7XG5cbiAgICB0aGlzLmJhc2Vsb2cuZGVidWcodGhpcy5pZCArJzogU3RhcnQgLi4uJywge1xuICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgICAgc29ydDogdGhpcy5fc29ydC5zb3J0c1NuYXBzaG90LFxuICAgICAgZmlsdGVyOiB0aGlzLl9maWx0ZXIuZmlsdGVyc1NuYXBzaG90XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkKCdTVEFSVCcpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZChyZWFzb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVsb2FkUmVxdWVzdCgrK3RoaXMuX3JlbG9hZENvdW50ZXIsIHJlYXNvbik7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKHRoaXMuaWQgKyc6IEVucXVldWluZyByZWxvYWQgcmVxdWVzdCAjJytyZXF1ZXN0Lm51bWJlcisnIFsnICsgcmVhc29uICsgJ10nKTtcbiAgICB0aGlzLl9yZWxvYWRRdWV1ZS5uZXh0KHJlcXVlc3QpO1xuICAgIHJldHVybiB0aGlzLl9yZWxvYWRlZC5waXBlKFxuICAgICAgZmlsdGVyKHJlbG9hZCA9PiByZWxvYWQuZnVsZmlsbHMocmVxdWVzdCkpLFxuICAgICAgbWFwKHJlbG9hZCA9PiByZWxvYWQucmVzdWx0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SW5kZXgoa2V5OiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmlkICsnOiBmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tSW5kZXguZ2V0KGtleSk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmdldEJ5SWQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIERhdGFDb250ZXh0IGFuZCBjbGVhbnMgdXAgYWxsIHVzZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Nsb3NlZC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5fZGF0YS5kZXN0cm95KCk7XG4gICAgdGhpcy5fdG90YWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdGF0dXMuY29tcGxldGUoKTtcblxuICAgIHRoaXMuY2xlYXJBbGwoKTtcbiAgICB0aGlzLmJhc2Vsb2cuZGVidWcodGhpcy5pZCArJzogSGFzIGJlZW4gY2xvc2VkIGFuZCByZXNvdXJjZXMgY2xlYW5lZCB1cCEnKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGEubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhLnVwZGF0ZVNvbWUoZW50aXRpZXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWxvYWROb3cocmVxdWVzdDogUmVsb2FkUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKHRoaXMuaWQgKyAnOiByZWxvYWROb3cgdHJpZ2dlcmVkLiBSZXF1ZXN0ICMnICsgcmVxdWVzdC5udW1iZXIgKyAnICcgKyByZXF1ZXN0LnJlYXNvbiAsIHtcbiAgICAgIGZpbHRlcjogdGhpcy5fZmlsdGVyLmZpbHRlcnNTbmFwc2hvdCxcbiAgICAgIHNvcnQ6IHRoaXMuX3NvcnQuc29ydHNTbmFwc2hvdCxcbiAgICAgIGRhdGFTb3VyY2U6IHRoaXMuZGF0YVNvdXJjZSxcbiAgICAgIHJlcXVlc3Q6IHJlcXVlc3RcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5yZWxvYWRJbnRlcm5hbCgpOyAvLyBUT0RPIFRoaXMgc2hvdWxkIGFjdHVhbGx5IHJldHVybiB0aGUgcmVhbCAoaHR0cCkgcmVxdWVzdFxuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCB0aGUgZ2l2ZW4gcm93cyB0byB0aGUgZXhpc3Rpbmcgb25lcy5cbiAgICovXG4gIHByb3RlY3RlZCBhcHBlbmREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10pOiB2b2lkIHtcbiAgICBhZGRpdGlvbmFsRGF0YSA9IHRoaXMubG9jYWxBcHBseShhZGRpdGlvbmFsRGF0YSk7XG4gICAgdGhpcy5pbmRleEFsbChhZGRpdGlvbmFsRGF0YSk7XG4gICAgdGhpcy5fZGF0YS5hcHBlbmQoYWRkaXRpb25hbERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCB0aGUgZ2l2ZW4gcm93cyBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5zZXJ0RGF0YShhZGRpdGlvbmFsRGF0YTogVFtdLCBvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIGFkZGl0aW9uYWxEYXRhID0gdGhpcy5sb2NhbEFwcGx5KGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLl9kYXRhLmluc2VydChhZGRpdGlvbmFsRGF0YSwgb2Zmc2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgZXhpc3RpbmcgZGF0YSB3aXRoIHRoZSBuZXcgc2V0LlxuICAgKiBAcGFyYW0gbmV3RGF0YSBUaGUgbmV3IGRhdGEgc2V0LlxuICAgKiBAcGFyYW0gYWxyZWFkeUluZGV4ZWQgVGhlIHJvd3Mgd2lsbCBiZSBpbmRleGVkIHVubGVzcyB0aGV5IGFscmVhZHkgaGF2ZSBiZWVuLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldERhdGEobmV3RGF0YTogVFtdLCBhbHJlYWR5SW5kZXhlZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgbmV3RGF0YSA9IHRoaXMubG9jYWxBcHBseShuZXdEYXRhKTtcbiAgICBpZiAoIWFscmVhZHlJbmRleGVkKSB7XG4gICAgICB0aGlzLmNsZWFySW5kZXgoKTtcbiAgICAgIHRoaXMuaW5kZXhBbGwobmV3RGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEucmVwbGFjZUFsbChuZXdEYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhckRhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5zZXREYXRhKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxBcHBseShkYXRhOiBUW10pOiBUW10ge1xuICAgIGlmICh0aGlzLl9sb2NhbEFwcGx5KSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9jYWxBcHBseShkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRvdGFsKHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3RhbC5uZXh0KHRvdGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGN1cnJlbnQgZGF0YS1jb250ZXh0IGNhY2hlZCBkYXRhLlxuICAgKiBTdGF0ZSBzdWNoIGFzIGN1cnJlbnQgc29ydGluZyBhbmQgZmlsdGVyc1NuYXBzaG90IGFyZSBrZXB0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKHNpbGVudCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KCk7XG5cbiAgICBpZiAoIXNpbGVudCkge1xuICAgICAgdGhpcy5zZXRUb3RhbCgwKTtcbiAgICAgIHRoaXMuY2xlYXJEYXRhKCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbklkbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFySW5kZXgoKTtcbiAgICB0aGlzLmluZGV4QWxsKHRoaXMuZGF0YVNuYXBzaG90KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRleGVzIHRoZSBnaXZlbiBpdGVtIGJ5IGtleSBpZiB0aGVyZSBpcyBhbiBpbmRleCBmdW5jdGlvbiBkZWZpbmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluZGV4SXRlbShpdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pO1xuICAgIGlmIChrZXkpIHtcbiAgICAgIHRoaXMuX2N1c3RvbUluZGV4LnNldChrZXksIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRleGVzIGFsbCB0aGUgZ2l2ZW4gaXRlbXMgYnkga2V5IGlmIHRoZXJlIGlzIGFuIGluZGV4IGZ1bmN0aW9uIGRlZmluZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5kZXhBbGwoaXRlbXM6IFRbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmRleEZuKSB7XG4gICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5pbmRleEl0ZW0oaXRlbSkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtS2V5KGl0ZW06IFQpOiBhbnkge1xuICAgIGlmICh0aGlzLl9pbmRleEZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5kZXhGbihpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbUlkKGl0ZW06IFQpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZ2V0SWQoaXRlbSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXZlbnQgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHNvcnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Tb3J0c0NoYW5nZWQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbG9jYWxTb3J0KSB7XG4gICAgICB0aGlzLnJlbG9hZCgnU29ydCBDaGFuZ2VkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh0aGlzLmRhdGFTbmFwc2hvdCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXIgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCdGaWx0ZXJzIENoYW5nZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkVycm9yKGVycjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblN0YXR1cyhEYXRhQ29udGV4dFN0YXR1cy5lcnJvcihlcnIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbklkbGUoKTogdm9pZCB7XG4gICAgdGhpcy5vblN0YXR1cyhEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTG9hZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmxvYWRpbmcoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TdGF0dXMoc3RhdHVzOiBEYXRhQ29udGV4dFN0YXR1cyk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXR1cy5uZXh0KHN0YXR1cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQWJzdHJhY3QgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCBhbmRcbiAgICogcmVsb2FkIHRoZSBjdXJyZW50bHkgaGVsZCBkYXRhLlxuICAgKiBJZiBwb3NzaWJsZSwgdGhlIGN1cnJlbnQgdmlldyBzdGF0ZSBzaG91bGQgYmUga2VwdC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlbG9hZCBqb2IuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVsb2FkSW50ZXJuYWwoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2xlYXJJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXN0b21JbmRleC5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRzVELE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixNQUFNLGdCQUFnQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVwRCxNQUFNLGFBQWE7SUFDakIsWUFDa0IsTUFBYyxFQUNkLE1BQWU7UUFEZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUM5QixDQUFDO0NBQ0w7QUFFRCxNQUFNLFdBQVc7SUFDZixZQUNrQixPQUFzQixFQUN0QixNQUFXO1FBRFgsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFLO0lBQzFCLENBQUM7SUFFRyxRQUFRLENBQUMsVUFBeUI7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QztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCLENBQUMsT0FBaUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFUyxPQUFPLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFUyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyLCBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi9maWx0ZXJzL2ZpbHRlcidcbmltcG9ydCB7IFNvcnQgfSBmcm9tICcuLi9zb3J0J1xuaW1wb3J0IHsgQ29sbGVjdGlvblZpZXdlciwgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucydcbmltcG9ydCB7IERhdGFDb250ZXh0U3RhdHVzIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi9maWx0ZXJzL2ZpbHRlci1jb250ZXh0J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTbmFwc2hvdCwgSURhdGFDb250ZXh0IH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFNvcnRDb250ZXh0IH0gZnJvbSAnLi4vc29ydC1jb250ZXh0J1xuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuaW1wb3J0IHsgSW5kZXhlZEVudGl0aWVzIH0gZnJvbSAnLi9pbmRleGVkLWVudGl0aWVzJ1xuXG5jbGFzcyBSZWxvYWRSZXF1ZXN0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG51bWJlcjogbnVtYmVyLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb24/OiBzdHJpbmdcbiAgKSB7fVxufVxuXG5jbGFzcyBBZnRlclJlbG9hZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZXF1ZXN0OiBSZWxvYWRSZXF1ZXN0LFxuICAgIHB1YmxpYyByZWFkb25seSByZXN1bHQ6IGFueVxuICApIHt9XG5cbiAgcHVibGljIGZ1bGZpbGxzKG1pblJlcXVlc3Q6IFJlbG9hZFJlcXVlc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0Lm51bWJlciA+PSBtaW5SZXF1ZXN0Lm51bWJlclxuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhQ29udGV4dEJhc2U8VCwgVElkID0gYW55PlxuICBleHRlbmRzIERhdGFTb3VyY2U8VD5cbiAgaW1wbGVtZW50cyBJRGF0YUNvbnRleHQ8VD5cbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgRENfSURfQ09VTlRFUiA9IDBcblxuICBwcml2YXRlIHJlYWRvbmx5IGJhc2Vsb2c6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdEYXRhQ29udGV4dEJhc2UnKVxuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGlzIERhdGFDb250ZXh0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyID0gbmV3IEZpbHRlckNvbnRleHQoKVxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0ID0gbmV3IFNvcnRDb250ZXh0KClcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGF0YTogSW5kZXhlZEVudGl0aWVzPFQsIFRJZD5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFDb250ZXh0U3RhdHVzPihEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnRlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tSW5kZXggPSBuZXcgTWFwPGFueSwgVD4oKVxuXG4gIHByaXZhdGUgX3JlbG9hZENvdW50ZXIgPSAwXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlbG9hZFF1ZXVlID0gbmV3IFN1YmplY3Q8UmVsb2FkUmVxdWVzdD4oKVxuICBwcml2YXRlIHJlYWRvbmx5IF9yZWxvYWRlZCA9IG5ldyBTdWJqZWN0PEFmdGVyUmVsb2FkPigpXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPixcbiAgICBwcml2YXRlIF9pbmRleEZuOiAoaXRlbTogVCkgPT4gYW55LFxuICAgIHByaXZhdGUgX2xvY2FsQXBwbHk6IChkYXRhOiBUW10pID0+IFRbXSxcbiAgICBwcml2YXRlIF9sb2NhbFNvcnQ6IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXVxuICApIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5pZCA9ICdEYXRhQ29udGV4dCMnICsgKytEYXRhQ29udGV4dEJhc2UuRENfSURfQ09VTlRFUlxuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBkYXRhU291cmNlXG4gICAgdGhpcy5fZGF0YSA9IG5ldyBJbmRleGVkRW50aXRpZXMoKGUpID0+IGRhdGFTb3VyY2UuZ2V0SWQoZSksIF9sb2NhbFNvcnQsIHRoaXMuX3NvcnQpXG5cbiAgICB0aGlzLl9sb2FkaW5nID0gdGhpcy5fc3RhdHVzLnBpcGUobWFwKChzdGF0dXMpID0+IHN0YXR1cy5sb2FkaW5nKSlcblxuICAgIHRoaXMuX2ZpbHRlci5maWx0ZXJzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc3RhcnRlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZmlsdGVycykgPT4gdGhpcy5vbkZpbHRlcnNDaGFuZ2VkKGZpbHRlcnMpKVxuXG4gICAgdGhpcy5fc29ydC5zb3J0c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNvcnRzKSA9PiB0aGlzLm9uU29ydHNDaGFuZ2VkKHNvcnRzKSlcblxuICAgIHRoaXMuX3JlbG9hZFF1ZXVlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoKHJlcXVlc3QpID0+IHRoaXMuc3RhcnRlZCksXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHN3aXRjaE1hcCgocmVxdWVzdCkgPT5cbiAgICAgICAgICB0aGlzLnJlbG9hZE5vdyhyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHQpID0+IG5ldyBBZnRlclJlbG9hZChyZXF1ZXN0LCByZXN1bHQpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAvLyBEb250IGRpZSBvbiBlcnJvcnNcbiAgICAgICAgICAgICAgdGhpcy5iYXNlbG9nLmVycm9yKHRoaXMuaWQgKyAnOiBSZWxvYWQgcXVldWUgZGV0ZWN0ZWQgZXJyb3IsIGJhZCEnLCBlcnIpXG4gICAgICAgICAgICAgIHJldHVybiBvZihuZXcgQWZ0ZXJSZWxvYWQocmVxdWVzdCwgZXJyKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhZnRlclJlbG9hZCkgPT4gdGhpcy5fcmVsb2FkZWQubmV4dChhZnRlclJlbG9hZCkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSBNYXRlcmlhbCBEQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhXG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbG9zZSgpOyBDbG9zaW5nIHdpbGwgZGVzdHJveSB0aGUgRENcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc25hcHNob3QoKTogRGF0YUNvbnRleHRTbmFwc2hvdDxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dFNuYXBzaG90KFxuICAgICAgdGhpcy5kYXRhU25hcHNob3QsXG4gICAgICB0aGlzLmlzRW1wdHksXG4gICAgICB0aGlzLmxvYWRpbmdTbmFwc2hvdCxcbiAgICAgIHRoaXMudG90YWxTbmFwc2hvdCxcbiAgICAgIHRoaXMuc3RhdHVzU25hcHNob3RcbiAgICApXG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsU25hcHNob3QoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWwuZ2V0VmFsdWUoKVxuICB9XG5cbiAgcHVibGljIGdldCBzb3J0KCk6IFNvcnRDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydFxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXIoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlclxuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nXG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmdTbmFwc2hvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTbmFwc2hvdD8ubG9hZGluZ1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZW50aXRpZXMkXG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFTbmFwc2hvdCgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmVudGl0aWVzU25hcHNob3RcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdHVzKCk6IE9ic2VydmFibGU8RGF0YUNvbnRleHRTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzXG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1c1NuYXBzaG90KCk6IERhdGFDb250ZXh0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzLmdldFZhbHVlKClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU25hcHNob3QubGVuZ3RoID09PSAwXG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydGVkXG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZC5nZXRWYWx1ZSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuZ2V0VmFsdWUoKVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdGFydGVkKHN0YXJ0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGFydGVkLm5leHQoc3RhcnRlZClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdGFydChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuaWQgKyAnOiBSZXN0YXJ0aW5nIGEgY2xvc2VkIERhdGFDb250ZXh0IGlzIG5vdCBwb3NzaWJsZSEnKSAvLyBTZWUgdW5zdWJzY3JpYmUkXG4gICAgfVxuXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2VcblxuICAgIHRoaXMuX3NvcnQucmVwbGFjZVNvcnRzKHNvcnRzIHx8IHRoaXMuc29ydC5zb3J0c1NuYXBzaG90KVxuICAgIHRoaXMuX2ZpbHRlci5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzIHx8IHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdClcblxuICAgIHRoaXMuYmFzZWxvZy5kZWJ1Zyh0aGlzLmlkICsgJzogU3RhcnQgLi4uJywge1xuICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgICAgc29ydDogdGhpcy5fc29ydC5zb3J0c1NuYXBzaG90LFxuICAgICAgZmlsdGVyOiB0aGlzLl9maWx0ZXIuZmlsdGVyc1NuYXBzaG90LFxuICAgIH0pXG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlXG5cbiAgICByZXR1cm4gdGhpcy5yZWxvYWQoJ1NUQVJUJylcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQocmVhc29uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlbG9hZFJlcXVlc3QoKyt0aGlzLl9yZWxvYWRDb3VudGVyLCByZWFzb24pXG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKFxuICAgICAgdGhpcy5pZCArICc6IEVucXVldWluZyByZWxvYWQgcmVxdWVzdCAjJyArIHJlcXVlc3QubnVtYmVyICsgJyBbJyArIHJlYXNvbiArICddJ1xuICAgIClcbiAgICB0aGlzLl9yZWxvYWRRdWV1ZS5uZXh0KHJlcXVlc3QpXG4gICAgcmV0dXJuIHRoaXMuX3JlbG9hZGVkLnBpcGUoXG4gICAgICBmaWx0ZXIoKHJlbG9hZCkgPT4gcmVsb2FkLmZ1bGZpbGxzKHJlcXVlc3QpKSxcbiAgICAgIG1hcCgocmVsb2FkKSA9PiByZWxvYWQucmVzdWx0KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJbmRleChrZXk6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5faW5kZXhGbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuaWQgKyAnOiBmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jdXN0b21JbmRleC5nZXQoa2V5KVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkKGlkOiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5nZXRCeUlkKGlkKVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIERhdGFDb250ZXh0IGFuZCBjbGVhbnMgdXAgYWxsIHVzZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KClcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKClcbiAgICB0aGlzLl9jbG9zZWQubmV4dCh0cnVlKVxuXG4gICAgdGhpcy5fZGF0YS5kZXN0cm95KClcbiAgICB0aGlzLl90b3RhbC5jb21wbGV0ZSgpXG4gICAgdGhpcy5fc3RhdHVzLmNvbXBsZXRlKClcblxuICAgIHRoaXMuY2xlYXJBbGwoKVxuICAgIHRoaXMuYmFzZWxvZy5kZWJ1Zyh0aGlzLmlkICsgJzogSGFzIGJlZW4gY2xvc2VkIGFuZCByZXNvdXJjZXMgY2xlYW5lZCB1cCEnKVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YS5ub3RpZnkoKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZShlbnRpdGllczogVFtdKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YS51cGRhdGVTb21lKGVudGl0aWVzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWxvYWROb3cocmVxdWVzdDogUmVsb2FkUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKFxuICAgICAgdGhpcy5pZCArICc6IHJlbG9hZE5vdyB0cmlnZ2VyZWQuIFJlcXVlc3QgIycgKyByZXF1ZXN0Lm51bWJlciArICcgJyArIHJlcXVlc3QucmVhc29uLFxuICAgICAge1xuICAgICAgICBmaWx0ZXI6IHRoaXMuX2ZpbHRlci5maWx0ZXJzU25hcHNob3QsXG4gICAgICAgIHNvcnQ6IHRoaXMuX3NvcnQuc29ydHNTbmFwc2hvdCxcbiAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgICAgICByZXF1ZXN0OiByZXF1ZXN0LFxuICAgICAgfVxuICAgIClcbiAgICByZXR1cm4gdGhpcy5yZWxvYWRJbnRlcm5hbCgpIC8vIFRPRE8gVGhpcyBzaG91bGQgYWN0dWFsbHkgcmV0dXJuIHRoZSByZWFsIChodHRwKSByZXF1ZXN0XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHRoZSBnaXZlbiByb3dzIHRvIHRoZSBleGlzdGluZyBvbmVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGVuZERhdGEoYWRkaXRpb25hbERhdGE6IFRbXSk6IHZvaWQge1xuICAgIGFkZGl0aW9uYWxEYXRhID0gdGhpcy5sb2NhbEFwcGx5KGFkZGl0aW9uYWxEYXRhKVxuICAgIHRoaXMuaW5kZXhBbGwoYWRkaXRpb25hbERhdGEpXG4gICAgdGhpcy5fZGF0YS5hcHBlbmQoYWRkaXRpb25hbERhdGEpXG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0IHRoZSBnaXZlbiByb3dzIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBpbnNlcnREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10sIG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgYWRkaXRpb25hbERhdGEgPSB0aGlzLmxvY2FsQXBwbHkoYWRkaXRpb25hbERhdGEpXG4gICAgdGhpcy5pbmRleEFsbChhZGRpdGlvbmFsRGF0YSlcbiAgICB0aGlzLl9kYXRhLmluc2VydChhZGRpdGlvbmFsRGF0YSwgb2Zmc2V0KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSBleGlzdGluZyBkYXRhIHdpdGggdGhlIG5ldyBzZXQuXG4gICAqIEBwYXJhbSBuZXdEYXRhIFRoZSBuZXcgZGF0YSBzZXQuXG4gICAqIEBwYXJhbSBhbHJlYWR5SW5kZXhlZCBUaGUgcm93cyB3aWxsIGJlIGluZGV4ZWQgdW5sZXNzIHRoZXkgYWxyZWFkeSBoYXZlIGJlZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0RGF0YShuZXdEYXRhOiBUW10sIGFscmVhZHlJbmRleGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICBuZXdEYXRhID0gdGhpcy5sb2NhbEFwcGx5KG5ld0RhdGEpXG4gICAgaWYgKCFhbHJlYWR5SW5kZXhlZCkge1xuICAgICAgdGhpcy5jbGVhckluZGV4KClcbiAgICAgIHRoaXMuaW5kZXhBbGwobmV3RGF0YSlcbiAgICB9XG4gICAgdGhpcy5fZGF0YS5yZXBsYWNlQWxsKG5ld0RhdGEpXG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGF0YShbXSlcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxBcHBseShkYXRhOiBUW10pOiBUW10ge1xuICAgIGlmICh0aGlzLl9sb2NhbEFwcGx5KSB7XG4gICAgICByZXR1cm4gdGhpcy5fbG9jYWxBcHBseShkYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGF0YVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb3RhbCh0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fdG90YWwubmV4dCh0b3RhbClcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGN1cnJlbnQgZGF0YS1jb250ZXh0IGNhY2hlZCBkYXRhLlxuICAgKiBTdGF0ZSBzdWNoIGFzIGN1cnJlbnQgc29ydGluZyBhbmQgZmlsdGVyc1NuYXBzaG90IGFyZSBrZXB0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKHNpbGVudCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KClcblxuICAgIGlmICghc2lsZW50KSB7XG4gICAgICB0aGlzLnNldFRvdGFsKDApXG4gICAgICB0aGlzLmNsZWFyRGF0YSgpXG4gICAgfVxuXG4gICAgdGhpcy5vbklkbGUoKVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpXG4gICAgdGhpcy5pbmRleEFsbCh0aGlzLmRhdGFTbmFwc2hvdClcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRleGVzIHRoZSBnaXZlbiBpdGVtIGJ5IGtleSBpZiB0aGVyZSBpcyBhbiBpbmRleCBmdW5jdGlvbiBkZWZpbmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluZGV4SXRlbShpdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pXG4gICAgaWYgKGtleSkge1xuICAgICAgdGhpcy5fY3VzdG9tSW5kZXguc2V0KGtleSwgaXRlbSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kZXhlcyBhbGwgdGhlIGdpdmVuIGl0ZW1zIGJ5IGtleSBpZiB0aGVyZSBpcyBhbiBpbmRleCBmdW5jdGlvbiBkZWZpbmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluZGV4QWxsKGl0ZW1zOiBUW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5kZXhGbikge1xuICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gdGhpcy5pbmRleEl0ZW0oaXRlbSkpXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbmRleEZuKGl0ZW0pXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbUlkKGl0ZW06IFQpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZ2V0SWQoaXRlbSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFdmVudCBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc29ydCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvblNvcnRzQ2hhbmdlZChzb3J0czogU29ydFtdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCdTb3J0IENoYW5nZWQnKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGEodGhpcy5kYXRhU25hcHNob3QsIHRydWUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXIgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCdGaWx0ZXJzIENoYW5nZWQnKVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmVycm9yKGVycikpXG4gIH1cblxuICBwcm90ZWN0ZWQgb25JZGxlKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uTG9hZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmxvYWRpbmcoKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN0YXR1cyhzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLm5leHQoc3RhdHVzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgYW5kXG4gICAqIHJlbG9hZCB0aGUgY3VycmVudGx5IGhlbGQgZGF0YS5cbiAgICogSWYgcG9zc2libGUsIHRoZSBjdXJyZW50IHZpZXcgc3RhdGUgc2hvdWxkIGJlIGtlcHQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWxvYWQgam9iLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbG9hZEludGVybmFsKCk6IE9ic2VydmFibGU8YW55PlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2xlYXJJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXN0b21JbmRleC5jbGVhcigpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,7 +7,7 @@ import { DataContextSourceEventBinding } from './data-context-source-event-bindi
|
|
|
7
7
|
import { LocalPagedDataSource } from '../datasource/local/local-paged-data-source';
|
|
8
8
|
import { LocalListDataSource } from '../datasource/local/local-list-data-source';
|
|
9
9
|
import { SortUtil } from '../../utils/sort-util';
|
|
10
|
-
import { isContinuableDataSource, isListDataSource, isPagedDataSource } from '../datasource/data-source';
|
|
10
|
+
import { isContinuableDataSource, isListDataSource, isPagedDataSource, } from '../datasource/data-source';
|
|
11
11
|
import { DelegateDataSource } from '../datasource/fetcher/delegate-data-source';
|
|
12
12
|
import { AutoStartSpec, DataContextAutoStarter } from './data-context-auto-starter';
|
|
13
13
|
import { FilterUtil } from '../../utils/filter-util';
|
|
@@ -141,7 +141,7 @@ export class DataContextBuilder {
|
|
|
141
141
|
buildLocalActivePaged(items, idProperty) {
|
|
142
142
|
this._skipLocalSort = true;
|
|
143
143
|
this.activePaged();
|
|
144
|
-
return this.build(LocalPagedDataSource.of(this.localListSource(items, idProperty)));
|
|
144
|
+
return (this.build(LocalPagedDataSource.of(this.localListSource(items, idProperty))));
|
|
145
145
|
}
|
|
146
146
|
localListSource(items, idProperty) {
|
|
147
147
|
return LocalListDataSource.from(items, idProperty, this._localSort, FilterUtil.filterData);
|
|
@@ -158,9 +158,7 @@ export class DataContextBuilder {
|
|
|
158
158
|
return this.build(DelegateDataSource.emptyContinuableFetcher());
|
|
159
159
|
}
|
|
160
160
|
buildEmptyActivePaged() {
|
|
161
|
-
return this
|
|
162
|
-
.activePaged()
|
|
163
|
-
.build(DelegateDataSource.emptyPageFetcher());
|
|
161
|
+
return (this.activePaged().build(DelegateDataSource.emptyPageFetcher()));
|
|
164
162
|
}
|
|
165
163
|
/***************************************************************************
|
|
166
164
|
* *
|
|
@@ -213,7 +211,7 @@ export class DataContextBuilder {
|
|
|
213
211
|
dataContext = this.fromContinuationSource(ds);
|
|
214
212
|
}
|
|
215
213
|
else {
|
|
216
|
-
throw new Error('Unsupported IDataSource type: ' + typeof
|
|
214
|
+
throw new Error('Unsupported IDataSource type: ' + typeof ds);
|
|
217
215
|
}
|
|
218
216
|
if (this._autoStartSpec) {
|
|
219
217
|
this.setupDataContextAutoStart(dataContext, this._autoStartSpec);
|
|
@@ -244,4 +242,4 @@ export class DataContextBuilder {
|
|
|
244
242
|
return dc;
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBS0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0I7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNJLE1BQU0s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LEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RGF0YUNvbnRleHRTaW1wbGV9IGZyb20gJy4vZGF0YS1jb250ZXh0LXNpbXBsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QWN0aXZlUGFnZX0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYWN0aXZlLXBhZ2UnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcbmltcG9ydCB7RGF0YUNvbnRleHRDb250aW51YWJsZVRva2VufSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS10b2tlbic7XG5pbXBvcnQge0lEYXRhQ29udGV4dCwgSURhdGFDb250ZXh0QWN0aXZlUGFnZSwgSURhdGFDb250ZXh0Q29udGludWFibGV9IGZyb20gJy4vZGF0YS1jb250ZXh0JztcbmltcG9ydCB7RGF0YUNvbnRleHRTb3VyY2VFdmVudEJpbmRpbmd9IGZyb20gJy4vZGF0YS1jb250ZXh0LXNvdXJjZS1ldmVudC1iaW5kaW5nJztcbmltcG9ydCB7TG9jYWxQYWdlZERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtcGFnZWQtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtMb2NhbExpc3REYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtTb3J0VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7XG4gIElDb250aW51YWJsZURhdGFTb3VyY2UsXG4gIElEYXRhU291cmNlLFxuICBJTGlzdERhdGFTb3VyY2UsXG4gIElQYWdlZERhdGFTb3VyY2UsXG4gIGlzQ29udGludWFibGVEYXRhU291cmNlLFxuICBpc0xpc3REYXRhU291cmNlLFxuICBpc1BhZ2VkRGF0YVNvdXJjZVxufSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RGVsZWdhdGVEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2ZldGNoZXIvZGVsZWdhdGUtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtBdXRvU3RhcnRTcGVjLCBEYXRhQ29udGV4dEF1dG9TdGFydGVyfSBmcm9tICcuL2RhdGEtY29udGV4dC1hdXRvLXN0YXJ0ZXInO1xuaW1wb3J0IHtGaWx0ZXJVdGlsfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXItdXRpbCc7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnVpbGQgYSBJRGF0YUNvbnRleHQ8VD4uXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dEJ1aWxkZXI8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9pbmRleEZuPzogKChpdGVtOiBUKSA9PiBhbnkpO1xuICBwcml2YXRlIF9sb2NhbEFwcGx5PzogKChkYXRhOiBUW10pID0+IFRbXSk7XG4gIHByaXZhdGUgX2xvY2FsU29ydD86ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pO1xuICBwcml2YXRlIF9za2lwTG9jYWxTb3J0ID0gZmFsc2U7XG4gIHByaXZhdGUgX3BhZ2VTaXplID0gNTA7XG4gIHByaXZhdGUgX3JlbG9hZE9uTG9jYWxDaGFuZ2VzID0gZmFsc2U7XG4gIHByaXZhdGUgX2FjdGl2ZVBhZ2VkID0gZmFsc2U7XG4gIHByaXZhdGUgX2F1dG9TdGFydFNwZWM/OiBBdXRvU3RhcnRTcGVjO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IERhdGFDb250ZXh0QnVpbGRlci5cbiAgICogQHJldHVybnMgQSBuZXcgRGF0YUNvbnRleHRCdWlsZGVyIGZvciB0aGUgZ2l2ZW4gZGF0YSB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdGFydDxUPigpOiBEYXRhQ29udGV4dEJ1aWxkZXI8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRCdWlsZGVyPFQ+KCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbmRleCBmdW5jdGlvbiB3aGVyZSBlYWNoIGVsZW1lbnQgd2lsbCBiZSBpbmRleGVkIGJ5LlxuICAgKiBJZiB5b3UgaGF2ZSBjb25maWd1cmVkIHRoaXMsIHlvdSBjYW4gdXNlIHRoZSBmaW5kQnlJbmRleChrZXkpIG9uIHRoZSBkYXRhLWNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgaW5kZXhCeShpbmRleEZuPzogKChpdGVtOiBUKSA9PiBhbnkpKTogdGhpcyB7XG4gICAgdGhpcy5faW5kZXhGbiA9IGluZGV4Rm47XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRlc2lyZWQgc2l6ZSBvZiBhIHBhZ2UvY2h1bmsgd2hlbiBsb2FkaW5nIGRhdGEuXG4gICAqIE5vdGUgdGhhdCBjb250aW51YWJsZSBhcGlzIG1pZ2h0IGp1c3QgdGFrZSB0aGlzIGFzIGEgd2lzaCBvciBldmVuIGNvbXBsZXRlbHkgaWdub3JlIHRoaXMgcGFyYW0uXG4gICAqL1xuICBwdWJsaWMgcGFnZVNpemUoc2l6ZTogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fcGFnZVNpemUgPSBzaXplO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvcnQgdGhlIGRhdGEgY29udGV4dCBsb2NhbGx5LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBtaWdodCBiZSBhIGNvc3RseSBvcGVyYXRpb24gd2hlbiB0aGVyZSBhcmUgYSBsb3Qgb2YgZWxlbWVudHMgcHJlc2VudC5cbiAgICogUHJlZmVyIHNlcnZlciBzaWRlIHNvcnRpbmcgaWYgcG9zc2libGUuXG4gICAqL1xuICBwdWJsaWMgbG9jYWxTb3J0KGxvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSk6IHRoaXMge1xuICAgIHRoaXMuX2xvY2FsU29ydCA9IGxvY2FsU29ydCA/IGxvY2FsU29ydCA6IFNvcnRVdGlsLnNvcnREYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhY3RpdmUgcGFnaW5nIChpbiBjb250cmFzdCB0byB0aGUgaW5maW5pdGUgbG9hZCkgaW4gdGhlIGRhdGEgY29udGV4dC5cbiAgICogT25seSBzdXBwb3J0ZWQgaWYgdGhlIHVuZGVybHlpbmcgZGF0YXNvdXJjZSBzdXBwb3J0cyBwYWdpbmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVBhZ2VkKCk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBlbGVtZW50IHdoaWNoIGlzIGFkZGVkIHRvIHRoZSBkYXRhY29udGV4dCwgYXBwbHkgdGhlIGdpdmVuIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGxvY2FsQXBwbHkobG9jYWxBcHBseTogKChkYXRhOiBUW10pID0+IFRbXSkpOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbEFwcGx5ID0gbG9jYWxBcHBseTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBhIGxvY2FsIGNoYW5nZSBldmVudCwgYXV0b21hdGljYWxseSByZWxvYWQgZGF0YSBpbiB0aGUgZGF0YS1jb250ZXh0LlxuICAgKiBUaGlzIG1lYW5zIHdoZW5ldmVyIHRoZXJlIHdhcyBhbiBtb2RpZnkgb3BlcmF0aW9uIG9uIHRoZSByZXN0IGNsaWVudCxcbiAgICogc3VjaCBhcyBVcGRhdGUsIERlbGV0ZSBvciBDcmVhdGUsIHRoZSBkYXRhIHdpbGwgYmUgcmVsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVsb2FkT25Mb2NhbENoYW5nZXMoKTogdGhpcyB7XG4gICAgdGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXMgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydEFzYXAoc29ydD86IFNvcnRbXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmF1dG9TdGFydE9uKFxuICAgICAgQXV0b1N0YXJ0U3BlYy5hc2FwKHNvcnQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRPbkZpbHRlcnMoZmlsdGVyczogQXJyYXk8c3RyaW5nW10+LCBzb3J0PzogU29ydFtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b1N0YXJ0T24oXG4gICAgICBBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzKGZpbHRlcnMsIHNvcnQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRPbkZpbHRlcnNBbGwoZmlsdGVyczogc3RyaW5nW10sIHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihcbiAgICAgIEF1dG9TdGFydFNwZWMucmVxdWlyZUZpbHRlcnNBbGwoZmlsdGVycywgc29ydClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydE9uRmlsdGVyc0FueShmaWx0ZXJzOiBzdHJpbmdbXSwgc29ydD86IFNvcnRbXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmF1dG9TdGFydE9uKFxuICAgICAgQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVyc0FueShmaWx0ZXJzLCBzb3J0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T24oc3BlYzogQXV0b1N0YXJ0U3BlYyk6IHRoaXMge1xuICAgIHRoaXMuX2F1dG9TdGFydFNwZWMgPSBzcGVjO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIERhdGFTb3VyY2UgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgbmV3IERhdGFDb250ZXh0IGZyb20gdGhlIGdpdmVuIERhdGFTb3VyY2UuXG4gICAqXG4gICAqIENvbW1vbiBEYXRhU291cmNlcyBhcmUgUmVzdENsaWVudCwgTG9jYWxMaXN0RGF0YVNvdXJjZSBhbmQgRGVsZWdhdGVEYXRhU291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0gZHNcbiAgICovXG4gIHB1YmxpYyBidWlsZChkczogSURhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkRnJvbVNvdXJjZShkcyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTG9jYWwgRGF0YSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYnVpbGRMb2NhbChpdGVtczogVFtdLCBpZFByb3BlcnR5Pzogc3RyaW5nKTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZChcbiAgICAgIHRoaXMubG9jYWxMaXN0U291cmNlKGl0ZW1zLCBpZFByb3BlcnR5KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRMb2NhbEFjdGl2ZVBhZ2VkKFxuICAgIGl0ZW1zOiBUW10sXG4gICAgaWRQcm9wZXJ0eT86IHN0cmluZ1xuICApOiBJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+IHtcbiAgICB0aGlzLl9za2lwTG9jYWxTb3J0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2ZVBhZ2VkKCk7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PnRoaXMuYnVpbGQoXG4gICAgICBMb2NhbFBhZ2VkRGF0YVNvdXJjZS5vZihcbiAgICAgICAgdGhpcy5sb2NhbExpc3RTb3VyY2UoaXRlbXMsIGlkUHJvcGVydHkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxMaXN0U291cmNlKGl0ZW1zOiBUW10sIGlkUHJvcGVydHk/OiBzdHJpbmcpOiBMb2NhbExpc3REYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gTG9jYWxMaXN0RGF0YVNvdXJjZS5mcm9tKGl0ZW1zLCBpZFByb3BlcnR5LCB0aGlzLl9sb2NhbFNvcnQsIEZpbHRlclV0aWwuZmlsdGVyRGF0YSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRW1wdHkgRGF0YSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYnVpbGRFbXB0eSgpOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKFxuICAgICAgRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5TGlzdEZldGNoZXIoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbXB0eUNvbnRpbnVhYmxlKCk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+PnRoaXMuYnVpbGQoXG4gICAgICBEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlDb250aW51YWJsZUZldGNoZXIoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbXB0eUFjdGl2ZVBhZ2VkKCk6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPj50aGlzXG4gICAgICAuYWN0aXZlUGFnZWQoKVxuICAgICAgLmJ1aWxkKFxuICAgICAgICBEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlQYWdlRmV0Y2hlcigpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMZWdhY3kgQ2xpZW50IEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENsaWVudChcbiAgICBkYXRhU291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZFBhZ2VkQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENvbnRpbnVhdGlvblRva2VuQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gLmFjdGl2ZVBhZ2VkKCkuYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZEFjdGl2ZVBhZ2VkQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PnRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYnVpbGRGcm9tU291cmNlKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG5cbiAgICBsZXQgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPjtcblxuICAgIGlmIChpc0xpc3REYXRhU291cmNlKGRzKSkge1xuICAgICAgZGF0YUNvbnRleHQgPSB0aGlzLmZyb21MaXN0U291cmNlKGRzKTtcbiAgICB9IGVsc2UgaWYgKGlzUGFnZWREYXRhU291cmNlKGRzKSkge1xuICAgICAgaWYgKHRoaXMuX2FjdGl2ZVBhZ2VkKSB7XG4gICAgICAgIGRhdGFDb250ZXh0ID0gdGhpcy5mcm9tQWN0aXZlUGFnZVNvdXJjZShkcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbVBhZ2VTb3VyY2UoZHMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNDb250aW51YWJsZURhdGFTb3VyY2UoZHMpKSB7XG4gICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUNvbnRpbnVhdGlvblNvdXJjZShkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgSURhdGFTb3VyY2UgdHlwZTogJyArIHR5cGVvZiAoZHMpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXV0b1N0YXJ0U3BlYykge1xuICAgICAgdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1N0YXJ0KGRhdGFDb250ZXh0LCB0aGlzLl9hdXRvU3RhcnRTcGVjKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1JlbG9hZChkYXRhQ29udGV4dCwgZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tTGlzdFNvdXJjZShsaXN0U291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTaW1wbGU8VD4oXG4gICAgICBsaXN0U291cmNlLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkPFQ+KFxuICAgICAgcGFnZVNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQ29udGludWF0aW9uU291cmNlKGNvbnRpbnVhdGlvblNvdXJjZTogSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0Q29udGludWFibGVUb2tlbjxUPihcbiAgICAgIGNvbnRpbnVhdGlvblNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQWN0aXZlUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4oXG4gICAgICBwYWdlU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX3NraXBMb2NhbFNvcnQgPyBudWxsIDogdGhpcy5fbG9jYWxTb3J0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9SZWxvYWQ8REMgZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4+KGRjOiBEQywgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8YW55Pik6IERDIHtcbiAgICBjb25zdCBiaW5kaW5nID0gbmV3IERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nKFxuICAgICAgZGMsXG4gICAgICBkYXRhU291cmNlLFxuICAgICAgdGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXNcbiAgICApO1xuICAgIHJldHVybiBkYztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9TdGFydDxEQyBleHRlbmRzIElEYXRhQ29udGV4dDxUPj4oZGM6IERDLCBhdXRvU3RhcnRTcGVjOiBBdXRvU3RhcnRTcGVjKTogREMge1xuICAgIGlmICh0aGlzLl9hdXRvU3RhcnRTcGVjKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyB1cCBkYXRhIGNvbnRleHQgYXV0byBzdGFydCB3aXRoIHNwZWM6JywgdGhpcy5fYXV0b1N0YXJ0U3BlYyk7XG4gICAgICBjb25zdCBiaW5kaW5nID0gbmV3IERhdGFDb250ZXh0QXV0b1N0YXJ0ZXIoZGMsIGF1dG9TdGFydFNwZWMpO1xuICAgIH1cbiAgICByZXR1cm4gZGM7XG4gIH1cblxufVxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRTlFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRCxPQUFPLEVBS0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWtCN0I7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sSUFBSSxrQkFBa0IsRUFBSyxDQUFBO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7UUFyQ0E7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFLaEUsbUJBQWMsR0FBRyxLQUFLLENBQUE7UUFDdEIsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNkLDBCQUFxQixHQUFHLEtBQUssQ0FBQTtRQUM3QixpQkFBWSxHQUFHLEtBQUssQ0FBQTtJQXVCYixDQUFDO0lBRWhCOzs7O2dGQUk0RTtJQUU1RTs7O09BR0c7SUFDSSxPQUFPLENBQUMsT0FBMEI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsU0FBNkM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQTtRQUMzRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLFVBQThCO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBQzdCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQTtRQUNqQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUF3QixFQUFFLElBQWE7UUFDL0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE9BQWlCLEVBQUUsSUFBYTtRQUMzRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxPQUFpQixFQUFFLElBQWE7UUFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQW1CO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFBO1FBQzFCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsRUFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsVUFBVSxDQUFDLEtBQVUsRUFBRSxVQUFtQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsS0FBVSxFQUFFLFVBQW1CO1FBQzFELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFBO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNsQixPQUFrQyxDQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQzdFLENBQUE7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQVUsRUFBRSxVQUFtQjtRQUNyRCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzVGLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFtQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtJQUM3RixDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQWtDLENBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUNoRSxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNJLFdBQVcsQ0FBQyxVQUE4QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsVUFBK0I7UUFDckQsT0FBbUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSw0QkFBNEIsQ0FDakMsVUFBcUM7UUFFckMsT0FBbUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQkFBc0IsQ0FBQyxVQUErQjtRQUMzRCxPQUFrQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZUFBZSxDQUFDLEVBQWtCO1FBQ3hDLElBQUksV0FBNEIsQ0FBQTtRQUVoQyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDekIsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdkMsQ0FBQzthQUFNLElBQUksaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUM3QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsV0FBVyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDbEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQThCO1FBQ25ELE9BQU8sSUFBSSxpQkFBaUIsQ0FBSSxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQStCO1FBQ3BELE9BQU8sSUFBSSwyQkFBMkIsQ0FDcEMsVUFBVSxFQUNWLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFBO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixrQkFBNkM7UUFFN0MsT0FBTyxJQUFJLDJCQUEyQixDQUNwQyxrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUE7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsVUFBK0I7UUFDMUQsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixVQUFVLEVBQ1YsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsRUFBTSxFQUNOLFVBQTRCO1FBRTVCLE1BQU0sT0FBTyxHQUFHLElBQUksNkJBQTZCLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUM3RixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFTyx5QkFBeUIsQ0FDL0IsRUFBTSxFQUNOLGFBQTRCO1FBRTVCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtDQUErQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUN2RixNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhQ29udGV4dENvbnRpbnVhYmxlUGFnZWQgfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZCdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IERhdGFDb250ZXh0U2ltcGxlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtc2ltcGxlJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRBY3RpdmVQYWdlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYWN0aXZlLXBhZ2UnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vc29ydCdcbmltcG9ydCB7IERhdGFDb250ZXh0Q29udGludWFibGVUb2tlbiB9IGZyb20gJy4vZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLXRva2VuJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0LCBJRGF0YUNvbnRleHRBY3RpdmVQYWdlLCBJRGF0YUNvbnRleHRDb250aW51YWJsZSB9IGZyb20gJy4vZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTb3VyY2VFdmVudEJpbmRpbmcgfSBmcm9tICcuL2RhdGEtY29udGV4dC1zb3VyY2UtZXZlbnQtYmluZGluZydcbmltcG9ydCB7IExvY2FsUGFnZWREYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9sb2NhbC9sb2NhbC1wYWdlZC1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IExvY2FsTGlzdERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBTb3J0VXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL3NvcnQtdXRpbCdcbmltcG9ydCB7XG4gIElDb250aW51YWJsZURhdGFTb3VyY2UsXG4gIElEYXRhU291cmNlLFxuICBJTGlzdERhdGFTb3VyY2UsXG4gIElQYWdlZERhdGFTb3VyY2UsXG4gIGlzQ29udGludWFibGVEYXRhU291cmNlLFxuICBpc0xpc3REYXRhU291cmNlLFxuICBpc1BhZ2VkRGF0YVNvdXJjZSxcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSdcbmltcG9ydCB7IERlbGVnYXRlRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvZmV0Y2hlci9kZWxlZ2F0ZS1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IEF1dG9TdGFydFNwZWMsIERhdGFDb250ZXh0QXV0b1N0YXJ0ZXIgfSBmcm9tICcuL2RhdGEtY29udGV4dC1hdXRvLXN0YXJ0ZXInXG5pbXBvcnQgeyBGaWx0ZXJVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsdGVyLXV0aWwnXG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnVpbGQgYSBJRGF0YUNvbnRleHQ8VD4uXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dEJ1aWxkZXI8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBwcml2YXRlIF9pbmRleEZuPzogKGl0ZW06IFQpID0+IGFueVxuICBwcml2YXRlIF9sb2NhbEFwcGx5PzogKGRhdGE6IFRbXSkgPT4gVFtdXG4gIHByaXZhdGUgX2xvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXVxuICBwcml2YXRlIF9za2lwTG9jYWxTb3J0ID0gZmFsc2VcbiAgcHJpdmF0ZSBfcGFnZVNpemUgPSA1MFxuICBwcml2YXRlIF9yZWxvYWRPbkxvY2FsQ2hhbmdlcyA9IGZhbHNlXG4gIHByaXZhdGUgX2FjdGl2ZVBhZ2VkID0gZmFsc2VcbiAgcHJpdmF0ZSBfYXV0b1N0YXJ0U3BlYz86IEF1dG9TdGFydFNwZWNcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBEYXRhQ29udGV4dEJ1aWxkZXIuXG4gICAqIEByZXR1cm5zIEEgbmV3IERhdGFDb250ZXh0QnVpbGRlciBmb3IgdGhlIGdpdmVuIGRhdGEgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RhcnQ8VD4oKTogRGF0YUNvbnRleHRCdWlsZGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0QnVpbGRlcjxUPigpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGluZGV4IGZ1bmN0aW9uIHdoZXJlIGVhY2ggZWxlbWVudCB3aWxsIGJlIGluZGV4ZWQgYnkuXG4gICAqIElmIHlvdSBoYXZlIGNvbmZpZ3VyZWQgdGhpcywgeW91IGNhbiB1c2UgdGhlIGZpbmRCeUluZGV4KGtleSkgb24gdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBpbmRleEJ5KGluZGV4Rm4/OiAoaXRlbTogVCkgPT4gYW55KTogdGhpcyB7XG4gICAgdGhpcy5faW5kZXhGbiA9IGluZGV4Rm5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNpcmVkIHNpemUgb2YgYSBwYWdlL2NodW5rIHdoZW4gbG9hZGluZyBkYXRhLlxuICAgKiBOb3RlIHRoYXQgY29udGludWFibGUgYXBpcyBtaWdodCBqdXN0IHRha2UgdGhpcyBhcyBhIHdpc2ggb3IgZXZlbiBjb21wbGV0ZWx5IGlnbm9yZSB0aGlzIHBhcmFtLlxuICAgKi9cbiAgcHVibGljIHBhZ2VTaXplKHNpemU6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3BhZ2VTaXplID0gc2l6ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU29ydCB0aGUgZGF0YSBjb250ZXh0IGxvY2FsbHkuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIG1pZ2h0IGJlIGEgY29zdGx5IG9wZXJhdGlvbiB3aGVuIHRoZXJlIGFyZSBhIGxvdCBvZiBlbGVtZW50cyBwcmVzZW50LlxuICAgKiBQcmVmZXIgc2VydmVyIHNpZGUgc29ydGluZyBpZiBwb3NzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBsb2NhbFNvcnQobG9jYWxTb3J0PzogKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKTogdGhpcyB7XG4gICAgdGhpcy5fbG9jYWxTb3J0ID0gbG9jYWxTb3J0ID8gbG9jYWxTb3J0IDogU29ydFV0aWwuc29ydERhdGFcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhY3RpdmUgcGFnaW5nIChpbiBjb250cmFzdCB0byB0aGUgaW5maW5pdGUgbG9hZCkgaW4gdGhlIGRhdGEgY29udGV4dC5cbiAgICogT25seSBzdXBwb3J0ZWQgaWYgdGhlIHVuZGVybHlpbmcgZGF0YXNvdXJjZSBzdXBwb3J0cyBwYWdpbmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVBhZ2VkKCk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2VkID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogRm9yIGVhY2ggZWxlbWVudCB3aGljaCBpcyBhZGRlZCB0byB0aGUgZGF0YWNvbnRleHQsIGFwcGx5IHRoZSBnaXZlbiBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBsb2NhbEFwcGx5KGxvY2FsQXBwbHk6IChkYXRhOiBUW10pID0+IFRbXSk6IHRoaXMge1xuICAgIHRoaXMuX2xvY2FsQXBwbHkgPSBsb2NhbEFwcGx5XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBhIGxvY2FsIGNoYW5nZSBldmVudCwgYXV0b21hdGljYWxseSByZWxvYWQgZGF0YSBpbiB0aGUgZGF0YS1jb250ZXh0LlxuICAgKiBUaGlzIG1lYW5zIHdoZW5ldmVyIHRoZXJlIHdhcyBhbiBtb2RpZnkgb3BlcmF0aW9uIG9uIHRoZSByZXN0IGNsaWVudCxcbiAgICogc3VjaCBhcyBVcGRhdGUsIERlbGV0ZSBvciBDcmVhdGUsIHRoZSBkYXRhIHdpbGwgYmUgcmVsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVsb2FkT25Mb2NhbENoYW5nZXMoKTogdGhpcyB7XG4gICAgdGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXMgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRBc2FwKHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihBdXRvU3RhcnRTcGVjLmFzYXAoc29ydCkpXG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T25GaWx0ZXJzKGZpbHRlcnM6IEFycmF5PHN0cmluZ1tdPiwgc29ydD86IFNvcnRbXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmF1dG9TdGFydE9uKEF1dG9TdGFydFNwZWMucmVxdWlyZUZpbHRlcnMoZmlsdGVycywgc29ydCkpXG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T25GaWx0ZXJzQWxsKGZpbHRlcnM6IHN0cmluZ1tdLCBzb3J0PzogU29ydFtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b1N0YXJ0T24oQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVyc0FsbChmaWx0ZXJzLCBzb3J0KSlcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRPbkZpbHRlcnNBbnkoZmlsdGVyczogc3RyaW5nW10sIHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzQW55KGZpbHRlcnMsIHNvcnQpKVxuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydE9uKHNwZWM6IEF1dG9TdGFydFNwZWMpOiB0aGlzIHtcbiAgICB0aGlzLl9hdXRvU3RhcnRTcGVjID0gc3BlY1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRGF0YVNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQnVpbGQgYSBuZXcgRGF0YUNvbnRleHQgZnJvbSB0aGUgZ2l2ZW4gRGF0YVNvdXJjZS5cbiAgICpcbiAgICogQ29tbW9uIERhdGFTb3VyY2VzIGFyZSBSZXN0Q2xpZW50LCBMb2NhbExpc3REYXRhU291cmNlIGFuZCBEZWxlZ2F0ZURhdGFTb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBkc1xuICAgKi9cbiAgcHVibGljIGJ1aWxkKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRGcm9tU291cmNlKGRzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExvY2FsIERhdGEgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGJ1aWxkTG9jYWwoaXRlbXM6IFRbXSwgaWRQcm9wZXJ0eT86IHN0cmluZyk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQodGhpcy5sb2NhbExpc3RTb3VyY2UoaXRlbXMsIGlkUHJvcGVydHkpKVxuICB9XG5cbiAgcHVibGljIGJ1aWxkTG9jYWxBY3RpdmVQYWdlZChpdGVtczogVFtdLCBpZFByb3BlcnR5Pzogc3RyaW5nKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgdGhpcy5fc2tpcExvY2FsU29ydCA9IHRydWVcbiAgICB0aGlzLmFjdGl2ZVBhZ2VkKClcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4+KFxuICAgICAgdGhpcy5idWlsZChMb2NhbFBhZ2VkRGF0YVNvdXJjZS5vZih0aGlzLmxvY2FsTGlzdFNvdXJjZShpdGVtcywgaWRQcm9wZXJ0eSkpKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxMaXN0U291cmNlKGl0ZW1zOiBUW10sIGlkUHJvcGVydHk/OiBzdHJpbmcpOiBMb2NhbExpc3REYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gTG9jYWxMaXN0RGF0YVNvdXJjZS5mcm9tKGl0ZW1zLCBpZFByb3BlcnR5LCB0aGlzLl9sb2NhbFNvcnQsIEZpbHRlclV0aWwuZmlsdGVyRGF0YSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFbXB0eSBEYXRhIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBidWlsZEVtcHR5KCk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQoRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5TGlzdEZldGNoZXIoKSlcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVtcHR5Q29udGludWFibGUoKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlDb250aW51YWJsZUZldGNoZXIoKSlcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVtcHR5QWN0aXZlUGFnZWQoKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PihcbiAgICAgIHRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlQYWdlRmV0Y2hlcigpKVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMZWdhY3kgQ2xpZW50IEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENsaWVudChkYXRhU291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKGRhdGFTb3VyY2UpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIGJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRQYWdlZENsaWVudChkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFN3aXRjaCB0byBidWlsZChkYXRhU291cmNlKVxuICAgKi9cbiAgcHVibGljIGJ1aWxkQ29udGludWF0aW9uVG9rZW5DbGllbnQoXG4gICAgZGF0YVNvdXJjZTogSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPlxuICApOiBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPj50aGlzLmJ1aWxkKGRhdGFTb3VyY2UpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIC5hY3RpdmVQYWdlZCgpLmJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBY3RpdmVQYWdlZENsaWVudChkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PnRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChkYXRhU291cmNlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZEZyb21Tb3VyY2UoZHM6IElEYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICBsZXQgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPlxuXG4gICAgaWYgKGlzTGlzdERhdGFTb3VyY2UoZHMpKSB7XG4gICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUxpc3RTb3VyY2UoZHMpXG4gICAgfSBlbHNlIGlmIChpc1BhZ2VkRGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmVQYWdlZCkge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUFjdGl2ZVBhZ2VTb3VyY2UoZHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbVBhZ2VTb3VyY2UoZHMpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0NvbnRpbnVhYmxlRGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGRhdGFDb250ZXh0ID0gdGhpcy5mcm9tQ29udGludWF0aW9uU291cmNlKGRzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIElEYXRhU291cmNlIHR5cGU6ICcgKyB0eXBlb2YgZHMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2F1dG9TdGFydFNwZWMpIHtcbiAgICAgIHRoaXMuc2V0dXBEYXRhQ29udGV4dEF1dG9TdGFydChkYXRhQ29udGV4dCwgdGhpcy5fYXV0b1N0YXJ0U3BlYylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1JlbG9hZChkYXRhQ29udGV4dCwgZHMpXG4gIH1cblxuICBwcml2YXRlIGZyb21MaXN0U291cmNlKGxpc3RTb3VyY2U6IElMaXN0RGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dFNpbXBsZTxUPihsaXN0U291cmNlLCB0aGlzLl9pbmRleEZuLCB0aGlzLl9sb2NhbEFwcGx5LCB0aGlzLl9sb2NhbFNvcnQpXG4gIH1cblxuICBwcml2YXRlIGZyb21QYWdlU291cmNlKHBhZ2VTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dENvbnRpbnVhYmxlUGFnZWQ8VD4oXG4gICAgICBwYWdlU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZnJvbUNvbnRpbnVhdGlvblNvdXJjZShcbiAgICBjb250aW51YXRpb25Tb3VyY2U6IElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRDb250aW51YWJsZVRva2VuPFQ+KFxuICAgICAgY29udGludWF0aW9uU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZnJvbUFjdGl2ZVBhZ2VTb3VyY2UocGFnZVNvdXJjZTogSVBhZ2VkRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+KFxuICAgICAgcGFnZVNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9za2lwTG9jYWxTb3J0ID8gbnVsbCA6IHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9SZWxvYWQ8REMgZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4+KFxuICAgIGRjOiBEQyxcbiAgICBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxhbnk+XG4gICk6IERDIHtcbiAgICBjb25zdCBiaW5kaW5nID0gbmV3IERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nKGRjLCBkYXRhU291cmNlLCB0aGlzLl9yZWxvYWRPbkxvY2FsQ2hhbmdlcylcbiAgICByZXR1cm4gZGNcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9TdGFydDxEQyBleHRlbmRzIElEYXRhQ29udGV4dDxUPj4oXG4gICAgZGM6IERDLFxuICAgIGF1dG9TdGFydFNwZWM6IEF1dG9TdGFydFNwZWNcbiAgKTogREMge1xuICAgIGlmICh0aGlzLl9hdXRvU3RhcnRTcGVjKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyB1cCBkYXRhIGNvbnRleHQgYXV0byBzdGFydCB3aXRoIHNwZWM6JywgdGhpcy5fYXV0b1N0YXJ0U3BlYylcbiAgICAgIGNvbnN0IGJpbmRpbmcgPSBuZXcgRGF0YUNvbnRleHRBdXRvU3RhcnRlcihkYywgYXV0b1N0YXJ0U3BlYylcbiAgICB9XG4gICAgcmV0dXJuIGRjXG4gIH1cbn1cbiJdfQ==
|
|
@@ -28,12 +28,11 @@ export class DataContextContinuableBase extends DataContextBase {
|
|
|
28
28
|
loadAll(sorts, filters) {
|
|
29
29
|
this.cblogger.debug(this.id + ': Starting to load all data ...');
|
|
30
30
|
// load first page
|
|
31
|
-
this.start(sorts, filters)
|
|
32
|
-
.subscribe(() => {
|
|
31
|
+
this.start(sorts, filters).subscribe(() => {
|
|
33
32
|
this.cblogger.debug(this.id + ': First page has been loaded. Loading remaining data ...');
|
|
34
33
|
// load rest in a recursive manner
|
|
35
34
|
this.loadAllRec();
|
|
36
|
-
}, err => {
|
|
35
|
+
}, (err) => {
|
|
37
36
|
this.onError(err);
|
|
38
37
|
this.cblogger.error(this.id + ': Failed to load first page of load all procedure!', err);
|
|
39
38
|
});
|
|
@@ -54,11 +53,10 @@ export class DataContextContinuableBase extends DataContextBase {
|
|
|
54
53
|
**************************************************************************/
|
|
55
54
|
onChunkSizeChanged(newSize) { }
|
|
56
55
|
loadAllRec() {
|
|
57
|
-
this.loadMore()
|
|
58
|
-
.subscribe(() => {
|
|
56
|
+
this.loadMore().subscribe(() => {
|
|
59
57
|
this.cblogger.debug(this.id + ': Loading data chunk finished, loading next...');
|
|
60
58
|
this.loadAllRec();
|
|
61
|
-
}, err => {
|
|
59
|
+
}, (err) => {
|
|
62
60
|
this.onError(err);
|
|
63
61
|
this.cblogger.error(this.id + ': Loading all failed!', err);
|
|
64
62
|
}, () => {
|
|
@@ -66,4 +64,4 @@ export class DataContextContinuableBase extends DataContextBase {
|
|
|
66
64
|
});
|
|
67
65
|
}
|
|
68
66
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBR3JELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUs1RDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLDBCQUNwQixTQUFRLGVBQWtCO0lBYTFCOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQzFCLFNBQWlCLEVBQ2pCLE9BQXlCLEVBQ3pCLFVBQThCLEVBQzlCLFNBQTRDO1FBRTVDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQXZCbkQ7Ozs7b0ZBSTRFO1FBRTNELGFBQVEsR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFrQmhGLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO0lBQzdCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsT0FBTyxDQUFDLEtBQWMsRUFBRSxPQUFrQjtRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLGlDQUFpQyxDQUFDLENBQUE7UUFFaEUsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDbEMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRywwREFBMEQsQ0FBQyxDQUFBO1lBQ3pGLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsb0RBQW9ELEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDMUYsQ0FBQyxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLGtCQUFrQixDQUFDLE9BQWUsSUFBUyxDQUFDO0lBRTlDLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FDdkIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxnREFBZ0QsQ0FBQyxDQUFBO1lBQy9FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNuQixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3RCxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRywrQkFBK0IsQ0FBQyxDQUFBO1FBQy9ELENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUNvbnRleHRCYXNlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYmFzZSdcbmltcG9ydCB7IFNvcnQgfSBmcm9tICcuLi9zb3J0J1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXInXG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0Q29udGludWFibGUgfSBmcm9tICcuL2RhdGEtY29udGV4dCdcbmltcG9ydCB7IElEYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSdcblxuLyoqXG4gKiBFeHRlbmRzIGEgc2ltcGxlIGZsYXQgbGlzdCBkYXRhLWNvbnRleHQgd2l0aCBpbmZpbml0ZS1zY3JvbGwgcGFnaW5hdGlvbiBzdXBwb3J0LlxuICpcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFDb250ZXh0Q29udGludWFibGVCYXNlPFQ+XG4gIGV4dGVuZHMgRGF0YUNvbnRleHRCYXNlPFQ+XG4gIGltcGxlbWVudHMgSURhdGFDb250ZXh0Q29udGludWFibGU8VD5cbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYmxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2NodW5rU2l6ZTogbnVtYmVyXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+LFxuICAgIGNodW5rU2l6ZTogbnVtYmVyLFxuICAgIGluZGV4Rm46IChpdGVtOiBUKSA9PiBhbnksXG4gICAgbG9jYWxBcHBseTogKGRhdGE6IFRbXSkgPT4gVFtdLFxuICAgIGxvY2FsU29ydDogKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdXG4gICkge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UsIGluZGV4Rm4sIGxvY2FsQXBwbHksIGxvY2FsU29ydClcbiAgICB0aGlzLl9jaHVua1NpemUgPSBjaHVua1NpemVcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBsb2FkQWxsKHNvcnRzPzogU29ydFtdLCBmaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLmNibG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBTdGFydGluZyB0byBsb2FkIGFsbCBkYXRhIC4uLicpXG5cbiAgICAvLyBsb2FkIGZpcnN0IHBhZ2VcbiAgICB0aGlzLnN0YXJ0KHNvcnRzLCBmaWx0ZXJzKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZGVidWcodGhpcy5pZCArICc6IEZpcnN0IHBhZ2UgaGFzIGJlZW4gbG9hZGVkLiBMb2FkaW5nIHJlbWFpbmluZyBkYXRhIC4uLicpXG4gICAgICAgIC8vIGxvYWQgcmVzdCBpbiBhIHJlY3Vyc2l2ZSBtYW5uZXJcbiAgICAgICAgdGhpcy5sb2FkQWxsUmVjKClcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZXJyb3IodGhpcy5pZCArICc6IEZhaWxlZCB0byBsb2FkIGZpcnN0IHBhZ2Ugb2YgbG9hZCBhbGwgcHJvY2VkdXJlIScsIGVycilcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNodW5rU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jaHVua1NpemVcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY2h1bmtTaXplKHNpemU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9jaHVua1NpemUgIT09IHNpemUpIHtcbiAgICAgIHRoaXMuX2NodW5rU2l6ZSA9IHNpemVcbiAgICAgIHRoaXMub25DaHVua1NpemVDaGFuZ2VkKHNpemUpXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG9uQ2h1bmtTaXplQ2hhbmdlZChuZXdTaXplOiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgcHJpdmF0ZSBsb2FkQWxsUmVjKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUoKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZGVidWcodGhpcy5pZCArICc6IExvYWRpbmcgZGF0YSBjaHVuayBmaW5pc2hlZCwgbG9hZGluZyBuZXh0Li4uJylcbiAgICAgICAgdGhpcy5sb2FkQWxsUmVjKClcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZXJyb3IodGhpcy5pZCArICc6IExvYWRpbmcgYWxsIGZhaWxlZCEnLCBlcnIpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmNibG9nZ2VyLmluZm8odGhpcy5pZCArICc6IEFsbCBkYXRhIGxvYWRlZCBjb21wbGV0ZWx5LicpXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PlxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGhhc01vcmVEYXRhU25hcHNob3QoKTogYm9vbGVhblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGhhc01vcmVEYXRhKCk6IE9ic2VydmFibGU8Ym9vbGVhbj5cbn1cbiJdfQ==
|
|
@@ -109,7 +109,7 @@ export class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
109
109
|
}
|
|
110
110
|
subject.next();
|
|
111
111
|
this.onIdle();
|
|
112
|
-
}, err => {
|
|
112
|
+
}, (err) => {
|
|
113
113
|
this.onError(err);
|
|
114
114
|
this.clearData();
|
|
115
115
|
this.setTotal(0);
|
|
@@ -139,4 +139,4 @@ export class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLXBhZ2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQVMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJckQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLDBCQUE2QjtJQWUvRTs7OztnRkFJNEU7SUFFNUUsWUFDRSxVQUErQixFQUMvQixRQUFnQixFQUNoQixPQUEyQixFQUMzQixVQUFnQyxFQUNoQyxTQUE4QztRQUU5QyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBMUI5RDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RSxlQUFVLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFtQnRCLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJ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QyxJQUFJLENBQUMsRUFBRSxHQUFFLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLElBQWEsRUFBRSxLQUFjO1FBQ3BELElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFFLHFDQUFxQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BhZ2UsIFBhZ2VhYmxlfSBmcm9tICcuLi9wYWdlJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0RhdGFDb250ZXh0Q29udGludWFibGVCYXNlfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1iYXNlJztcbmltcG9ydCB7Zmlyc3QsIG1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtJUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuLyoqXG4gKiBFeHRlbmRzIGEgc2ltcGxlIGZsYXQgbGlzdCBkYXRhLWNvbnRleHQgd2l0aCBpbmZpbml0ZS1zY3JvbGwgcGFnaW5hdGlvbiBzdXBwb3J0LlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0Q29udGludWFibGVQYWdlZDxUPiBleHRlbmRzIERhdGFDb250ZXh0Q29udGludWFibGVCYXNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9wYWdlQ2FjaGU6IE1hcDxudW1iZXIsIE9ic2VydmFibGU8UGFnZTxUPj4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIF9sYXRlc3RQYWdlID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNNb3JlRGF0YTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+LFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgaW5kZXhGbjogKChpdGVtOiBUKSA9PiBhbnkpLFxuICAgIGxvY2FsQXBwbHk6ICgoZGF0YTogVFtdKSA9PiBUW10pLFxuICAgIGxvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSlcbiAgKSB7XG4gICAgc3VwZXIoZGF0YVNvdXJjZSwgcGFnZVNpemUsIGluZGV4Rm4sIGxvY2FsQXBwbHksIGxvY2FsU29ydCk7XG5cbiAgICB0aGlzLl9oYXNNb3JlRGF0YSA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudG90YWwsIHRoaXMuZGF0YV0pLnBpcGUoXG4gICAgICBtYXAoKFt0b3RhbCwgZGF0YV0pID0+IHRoaXMuY2hlY2tIYXNNb3JlRGF0YSh0b3RhbCwgZGF0YSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gPElQYWdlZERhdGFTb3VyY2U8VD4+c3VwZXIuZGF0YVNvdXJjZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBuZXh0IGNodW5rIG9mIGRhdGEuXG4gICAqIFVzZWZ1bCBmb3IgaW5maW5pdGUgc2Nyb2xsIGxpa2UgZGF0YSBmbG93cy5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBsb2FkTW9yZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLmhhc01vcmVEYXRhU25hcHNob3QpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8odGhpcy5pZCArJzogTG9hZGluZyBtb3JlLi4uJyArIHRoaXMuX2xhdGVzdFBhZ2UpO1xuXG4gICAgICBpZiAodGhpcy5sb2FkaW5nU25hcHNob3QpIHtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLl9sYXRlc3RQYWdlICsgMTtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoUGFnZShuZXh0UGFnZSwgdGhpcy5jaHVua1NpemUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zyh0aGlzLmlkICsnOiBDYW5ub3QgbG9hZCBtb3JlIGRhdGEsIHNpbmNlIG5vIG1vcmUgZGF0YSBhdmFpbGFibGUuJyk7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNNb3JlRGF0YSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faGFzTW9yZURhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc01vcmVEYXRhU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tIYXNNb3JlRGF0YSh0aGlzLnRvdGFsU25hcHNob3QsIHRoaXMuZGF0YVNuYXBzaG90KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2hlY2tIYXNNb3JlRGF0YSh0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkLCBkYXRhOiBUW10pOiBib29sZWFuIHtcbiAgICBpZiAodG90YWwpIHtcbiAgICAgIHJldHVybiB0b3RhbCA+IGRhdGEubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaHVua1NpemVDaGFuZ2VkKG5ld1NpemU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCdDaHVua1NpemVDaGFuZ2VkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVsb2FkSW50ZXJuYWwoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBTaW5jZSBjb250aW51YWJsZSBkYXRhLWNvbnRleHRzIGFyZSBhcHBlbmRpbmcgZGF0YSxcbiAgICAvLyB3ZSBuZWVkIHRvIGNsZWFyIGl0IGZvciBhIHJlbG9hZC5cbiAgICB0aGlzLmNsZWFyQWxsKHRydWUpO1xuICAgIHJldHVybiB0aGlzLmZldGNoUGFnZSgwLCB0aGlzLmNodW5rU2l6ZSwgdHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJBbGwoc2lsZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhckFsbChzaWxlbnQpO1xuICAgIHRoaXMuX3BhZ2VDYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLl9sYXRlc3RQYWdlID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQYWdlKHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBjbGVhciA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3QgcGFnZVJlcXVlc3QgPSBuZXcgUGFnZWFibGUocGFnZUluZGV4LCBwYWdlU2l6ZSwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuXG4gICAgaWYgKHRoaXMuX3BhZ2VDYWNoZS5oYXMocGFnZUluZGV4KSkge1xuICAgICAgLy8gUGFnZSBhbHJlYWR5IGxvYWRlZCAtIHNraXBwaW5nIHJlcXVlc3QhXG4gICAgICB0aGlzLmxvZ2dlci50cmFjZSh0aGlzLmlkICsnOiBTa2lwcGluZyBmZXRjaGluZyBwYWdlIHNpbmNlIGl0cyBhbHJlYWR5IGluIHBhZ2Ugb2JzZXJ2YWJsZSBjYWNoZS4nKTtcbiAgICAgIHN1YmplY3QubmV4dCgpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIHRoaXMub25Mb2FkaW5nKCk7XG5cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuaWQgK2A6IExvYWRpbmcgcGFnZSAke3BhZ2VJbmRleH0gdXNpbmcgcGFnZWFibGU6YCwgcGFnZVJlcXVlc3QpO1xuXG4gICAgICBjb25zdCBwYWdlT2JzID0gdGhpcy5kYXRhU291cmNlLmZpbmRBbGxQYWdlZChwYWdlUmVxdWVzdCwgdGhpcy5maWx0ZXIuZmlsdGVyc1NuYXBzaG90KTtcblxuICAgICAgdGhpcy5fcGFnZUNhY2hlLnNldChwYWdlSW5kZXgsIHBhZ2VPYnMpO1xuXG4gICAgICBwYWdlT2JzLnN1YnNjcmliZSgocGFnZTogUGFnZTxUPikgPT4ge1xuXG5cbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcodGhpcy5pZCArJzogR290IHBhZ2UgZGF0YTonLCBwYWdlKTtcblxuICAgICAgICB0aGlzLnBvcHVsYXRlUGFnZURhdGEocGFnZSwgY2xlYXIpO1xuXG4gICAgICAgIGlmICh0aGlzLl9sYXRlc3RQYWdlIDwgcGFnZS5udW1iZXIpIHtcbiAgICAgICAgICB0aGlzLl9sYXRlc3RQYWdlID0gcGFnZS5udW1iZXI7IC8vIFRPRE8gVGhpcyBtaWdodCBjYXVzZSB0aGF0IHBhZ2VzIGFyZSBza2lwcGVkXG4gICAgICAgIH1cblxuICAgICAgICBzdWJqZWN0Lm5leHQoKTtcbiAgICAgICAgdGhpcy5vbklkbGUoKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpO1xuICAgICAgICB0aGlzLmNsZWFyRGF0YSgpO1xuICAgICAgICB0aGlzLnNldFRvdGFsKDApO1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcih0aGlzLmlkICsnOiBGYWlsZWQgdG8gcXVlcnkgZGF0YScsIGVycik7XG4gICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJqZWN0LnBpcGUoZmlyc3QoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgZGF0YSBmcm9tIHRoZSBnaXZlbiBwYWdlIGludG8gdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0XG4gICAqL1xuICBwcml2YXRlIHBvcHVsYXRlUGFnZURhdGEocGFnZTogUGFnZTxUPiwgY2xlYXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRUb3RhbChwYWdlLnRvdGFsRWxlbWVudHMpO1xuICAgICAgY29uc3Qgc3RhcnQgPSBwYWdlLm51bWJlciAqIHBhZ2Uuc2l6ZTtcbiAgICAgIGlmIChjbGVhcikge1xuICAgICAgICB0aGlzLnNldERhdGEocGFnZS5jb250ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0RGF0YShwYWdlLmNvbnRlbnQsIHN0YXJ0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMub25FcnJvcihlcnIpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IodGhpcy5pZCArJzogRmFpbGVkIHRvIHBvcHVsYXRlIGRhdGEgd2l0aCBwYWdlJywgcGFnZSwgZXJyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLXBhZ2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEUsT0FBTyxFQUFRLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN4QyxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJdEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLDBCQUE2QjtJQWMvRTs7OztnRkFJNEU7SUFFNUUsWUFDRSxVQUErQixFQUMvQixRQUFnQixFQUNoQixPQUF5QixFQUN6QixVQUE4QixFQUM5QixTQUE0QztRQUU1QyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBMUI3RDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV4RSxlQUFVLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUE7UUFDeEQsZ0JBQVcsR0FBRyxDQUFDLENBQUE7UUFtQnJCLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJ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LENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNwQixDQUFDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxJQUFhLEVBQUUsS0FBYztRQUNwRCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFDckMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxxQ0FBcUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDL0UsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFBhZ2UsIFBhZ2VhYmxlIH0gZnJvbSAnLi4vcGFnZSdcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRDb250aW51YWJsZUJhc2UgfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1iYXNlJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vc29ydCdcbmltcG9ydCB7IElQYWdlZERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuXG4vKipcbiAqIEV4dGVuZHMgYSBzaW1wbGUgZmxhdCBsaXN0IGRhdGEtY29udGV4dCB3aXRoIGluZmluaXRlLXNjcm9sbCBwYWdpbmF0aW9uIHN1cHBvcnQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkPFQ+IGV4dGVuZHMgRGF0YUNvbnRleHRDb250aW51YWJsZUJhc2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX3BhZ2VDYWNoZTogTWFwPG51bWJlciwgT2JzZXJ2YWJsZTxQYWdlPFQ+Pj4gPSBuZXcgTWFwKClcbiAgcHJpdmF0ZSBfbGF0ZXN0UGFnZSA9IDBcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNNb3JlRGF0YTogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD4sXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBpbmRleEZuOiAoaXRlbTogVCkgPT4gYW55LFxuICAgIGxvY2FsQXBwbHk6IChkYXRhOiBUW10pID0+IFRbXSxcbiAgICBsb2NhbFNvcnQ6IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXVxuICApIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCBwYWdlU2l6ZSwgaW5kZXhGbiwgbG9jYWxBcHBseSwgbG9jYWxTb3J0KVxuXG4gICAgdGhpcy5faGFzTW9yZURhdGEgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRvdGFsLCB0aGlzLmRhdGFdKS5waXBlKFxuICAgICAgbWFwKChbdG90YWwsIGRhdGFdKSA9PiB0aGlzLmNoZWNrSGFzTW9yZURhdGEodG90YWwsIGRhdGEpKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gPElQYWdlZERhdGFTb3VyY2U8VD4+c3VwZXIuZGF0YVNvdXJjZVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIG5leHQgY2h1bmsgb2YgZGF0YS5cbiAgICogVXNlZnVsIGZvciBpbmZpbml0ZSBzY3JvbGwgbGlrZSBkYXRhIGZsb3dzLlxuICAgKlxuICAgKi9cbiAgcHVibGljIGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyh0aGlzLmlkICsgJzogTG9hZGluZyBtb3JlLi4uJyArIHRoaXMuX2xhdGVzdFBhZ2UpXG5cbiAgICAgIGlmICh0aGlzLmxvYWRpbmdTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5fbGF0ZXN0UGFnZSArIDFcbiAgICAgIHJldHVybiB0aGlzLmZldGNoUGFnZShuZXh0UGFnZSwgdGhpcy5jaHVua1NpemUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBDYW5ub3QgbG9hZCBtb3JlIGRhdGEsIHNpbmNlIG5vIG1vcmUgZGF0YSBhdmFpbGFibGUuJylcbiAgICAgIHJldHVybiBFTVBUWVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzTW9yZURhdGEoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc01vcmVEYXRhXG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc01vcmVEYXRhU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tIYXNNb3JlRGF0YSh0aGlzLnRvdGFsU25hcHNob3QsIHRoaXMuZGF0YVNuYXBzaG90KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjaGVja0hhc01vcmVEYXRhKHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQsIGRhdGE6IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICh0b3RhbCkge1xuICAgICAgcmV0dXJuIHRvdGFsID4gZGF0YS5sZW5ndGhcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaHVua1NpemVDaGFuZ2VkKG5ld1NpemU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCdDaHVua1NpemVDaGFuZ2VkJylcbiAgfVxuXG4gIHByb3RlY3RlZCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIFNpbmNlIGNvbnRpbnVhYmxlIGRhdGEtY29udGV4dHMgYXJlIGFwcGVuZGluZyBkYXRhLFxuICAgIC8vIHdlIG5lZWQgdG8gY2xlYXIgaXQgZm9yIGEgcmVsb2FkLlxuICAgIHRoaXMuY2xlYXJBbGwodHJ1ZSlcbiAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2UoMCwgdGhpcy5jaHVua1NpemUsIHRydWUpXG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJBbGwoc2lsZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhckFsbChzaWxlbnQpXG4gICAgdGhpcy5fcGFnZUNhY2hlID0gbmV3IE1hcCgpXG4gICAgdGhpcy5fbGF0ZXN0UGFnZSA9IDBcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQYWdlKHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBjbGVhciA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gICAgY29uc3QgcGFnZVJlcXVlc3QgPSBuZXcgUGFnZWFibGUocGFnZUluZGV4LCBwYWdlU2l6ZSwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpXG5cbiAgICBpZiAodGhpcy5fcGFnZUNhY2hlLmhhcyhwYWdlSW5kZXgpKSB7XG4gICAgICAvLyBQYWdlIGFscmVhZHkgbG9hZGVkIC0gc2tpcHBpbmcgcmVxdWVzdCFcbiAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKFxuICAgICAgICB0aGlzLmlkICsgJzogU2tpcHBpbmcgZmV0Y2hpbmcgcGFnZSBzaW5jZSBpdHMgYWxyZWFkeSBpbiBwYWdlIG9ic2VydmFibGUgY2FjaGUuJ1xuICAgICAgKVxuICAgICAgc3ViamVjdC5uZXh0KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkxvYWRpbmcoKVxuXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zyh0aGlzLmlkICsgYDogTG9hZGluZyBwYWdlICR7cGFnZUluZGV4fSB1c2luZyBwYWdlYWJsZTpgLCBwYWdlUmVxdWVzdClcblxuICAgICAgY29uc3QgcGFnZU9icyA9IHRoaXMuZGF0YVNvdXJjZS5maW5kQWxsUGFnZWQocGFnZVJlcXVlc3QsIHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdClcblxuICAgICAgdGhpcy5fcGFnZUNhY2hlLnNldChwYWdlSW5kZXgsIHBhZ2VPYnMpXG5cbiAgICAgIHBhZ2VPYnMuc3Vic2NyaWJlKFxuICAgICAgICAocGFnZTogUGFnZTxUPikgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBHb3QgcGFnZSBkYXRhOicsIHBhZ2UpXG5cbiAgICAgICAgICB0aGlzLnBvcHVsYXRlUGFnZURhdGEocGFnZSwgY2xlYXIpXG5cbiAgICAgICAgICBpZiAodGhpcy5fbGF0ZXN0UGFnZSA8IHBhZ2UubnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXRlc3RQYWdlID0gcGFnZS5udW1iZXIgLy8gVE9ETyBUaGlzIG1pZ2h0IGNhdXNlIHRoYXQgcGFnZXMgYXJlIHNraXBwZWRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJqZWN0Lm5leHQoKVxuICAgICAgICAgIHRoaXMub25JZGxlKClcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgICAgdGhpcy5jbGVhckRhdGEoKVxuICAgICAgICAgIHRoaXMuc2V0VG90YWwoMClcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcih0aGlzLmlkICsgJzogRmFpbGVkIHRvIHF1ZXJ5IGRhdGEnLCBlcnIpXG4gICAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViamVjdC5waXBlKGZpcnN0KCkpXG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgZGF0YSBmcm9tIHRoZSBnaXZlbiBwYWdlIGludG8gdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0XG4gICAqL1xuICBwcml2YXRlIHBvcHVsYXRlUGFnZURhdGEocGFnZTogUGFnZTxUPiwgY2xlYXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRUb3RhbChwYWdlLnRvdGFsRWxlbWVudHMpXG4gICAgICBjb25zdCBzdGFydCA9IHBhZ2UubnVtYmVyICogcGFnZS5zaXplXG4gICAgICBpZiAoY2xlYXIpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKHBhZ2UuY29udGVudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0RGF0YShwYWdlLmNvbnRlbnQsIHN0YXJ0KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5vbkVycm9yKGVycilcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKHRoaXMuaWQgKyAnOiBGYWlsZWQgdG8gcG9wdWxhdGUgZGF0YSB3aXRoIHBhZ2UnLCBwYWdlLCBlcnIpXG4gICAgfVxuICB9XG59XG4iXX0=
|